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

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/src/Syntax.cc

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-04-10 17:40:52 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20080410174052-xdnsm7oi8hauyyf1
Tags: 1.0pre4~svn.20080409+dfsg-3
Fix another missing include, this time in Ag++/StdSystem.cc

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
 
2
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
3
 
#ifndef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
4
 
#define __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
5
 
#define __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_Syntax_cc__
6
 
#endif // __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
7
 
 
8
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
9
 
 
10
 
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
 
3
#ifndef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
4
#define __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
5
#define __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_Syntax_cc__
 
6
#endif // __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
7
 
 
8
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
 
9
 
 
10
#line 11 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11
11
 
12
12
#ifndef __ac_h_
13
13
#define __ac_h_
 
14
#ifdef __cplusplus
14
15
namespace AC {
15
16
  typedef const char* Type;
16
17
  enum JPType { CALL = 0x0004, EXECUTION = 0x0008, CONSTRUCTION = 0x0010, DESTRUCTION = 0x0020 };
25
26
    ~ResultBuffer () { ((T*)_data)->T::~T(); }
26
27
    operator T& () const { return *(T*)_data; }
27
28
  };
 
29
  template <typename T, typename N> struct TL {
 
30
    typedef T type; typedef N next; enum { ARGS = next::ARGS + 1 };
 
31
  };
 
32
  struct TLE { enum { ARGS = 0 }; };
 
33
  template <typename T> struct Referred { typedef T type; };
 
34
  template <typename T> struct Referred<T &> { typedef T type; };
 
35
  template <typename TL, int I> struct Arg {
 
36
    typedef typename Arg<typename TL::next, I - 1>::Type Type;
 
37
    typedef typename Referred<Type>::type ReferredType;
 
38
  };
 
39
  template <typename TL> struct Arg<TL, 0> {
 
40
    typedef typename TL::type Type;
 
41
    typedef typename Referred<Type>::type ReferredType;
 
42
  };
28
43
  template <class Aspect, int Index>
29
44
  struct CFlow {
30
45
    static int &instance () {
38
53
}
39
54
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
40
55
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
 
56
#endif // __cplusplus
41
57
#endif // __ac_h_
42
58
 
43
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
 
59
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
44
60
 
45
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
 
61
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
46
62
// This file is part of PUMA.
47
63
// Copyright (C) 1999-2003  The PUMA developer team.
48
64
//                                                                
62
78
// MA  02111-1307  USA                                            
63
79
 
64
80
 
65
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
81
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
66
82
 
67
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83
#line 84 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68
84
 
69
85
#ifndef __ac_fwd_ExtGnu__
70
86
#define __ac_fwd_ExtGnu__
71
87
class ExtGnu;
72
88
namespace AC {
73
 
  template <class JoinPoint, class Binding>
74
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
75
 
  template <class JoinPoint, class Binding>
76
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
77
 
  template <class JoinPoint>
78
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
79
 
  template <class JoinPoint>
80
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
81
 
  template <class JoinPoint>
82
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
83
 
  template <class JoinPoint>
84
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
85
 
  template <class JoinPoint>
86
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
87
 
  template <class JoinPoint, class Binding>
88
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
89
 
  template <class JoinPoint, class Binding>
90
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
91
 
  template <class JoinPoint, class Binding>
92
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
93
 
  template <class JoinPoint, class Binding>
94
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
95
 
  template <class JoinPoint, class Binding>
96
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
97
 
  template <class JoinPoint, class Binding>
98
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
99
 
  template <class JoinPoint>
100
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
101
 
  template <class JoinPoint>
102
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
103
 
  template <class JoinPoint, class Binding>
104
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
89
  template <class JoinPoint>
 
90
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
91
  template <class JoinPoint>
 
92
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
93
  template <class JoinPoint>
 
94
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
95
  template <class JoinPoint>
 
96
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
97
  template <class JoinPoint>
 
98
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
99
  template <class JoinPoint>
 
100
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
101
  template <class JoinPoint>
 
102
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
103
  template <class JoinPoint>
 
104
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
105
  template <class JoinPoint>
 
106
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
107
  template <class JoinPoint>
 
108
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
109
  template <class JoinPoint>
 
110
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
111
  template <class JoinPoint>
 
112
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
113
  template <class JoinPoint>
 
114
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
115
  template <class JoinPoint>
 
116
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
117
  template <class JoinPoint>
 
118
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
119
  template <class JoinPoint>
 
120
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
121
  template <class JoinPoint>
 
122
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
105
123
}
106
124
#endif
107
125
 
108
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
109
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
126
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
127
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
110
128
#endif
111
129
 
112
130
#ifndef __ac_fwd_CMatchSyntax__
114
132
class CMatchSyntax;
115
133
namespace AC {
116
134
  template <class JoinPoint>
117
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
118
 
  template <class JoinPoint>
119
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
120
 
  template <class JoinPoint>
121
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
122
 
  template <class JoinPoint>
123
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
124
 
  template <class JoinPoint>
125
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
126
 
  template <class JoinPoint>
127
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
128
 
  template <class JoinPoint>
129
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
130
 
  template <class JoinPoint>
131
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
132
 
  template <class JoinPoint>
133
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
134
 
  template <class JoinPoint>
135
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
136
 
  template <class JoinPoint>
137
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
138
 
  template <class JoinPoint>
139
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
140
 
  template <class JoinPoint>
141
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
142
 
  template <class JoinPoint>
143
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
144
 
  template <class JoinPoint>
145
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
146
 
  template <class JoinPoint>
147
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
148
 
  template <class JoinPoint>
149
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
150
 
  template <class JoinPoint>
151
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
152
 
  template <class JoinPoint>
153
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
154
 
  template <class JoinPoint>
155
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
156
 
  template <class JoinPoint>
157
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
158
 
  template <class JoinPoint>
159
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
160
 
  template <class JoinPoint>
161
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
162
 
  template <class JoinPoint>
163
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
164
 
  template <class JoinPoint>
165
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
166
 
  template <class JoinPoint, class Binding>
167
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
 
135
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
 
136
  template <class JoinPoint>
 
137
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
 
138
  template <class JoinPoint>
 
139
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
 
140
  template <class JoinPoint>
 
141
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
 
142
  template <class JoinPoint>
 
143
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
 
144
  template <class JoinPoint>
 
145
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
 
146
  template <class JoinPoint>
 
147
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
 
148
  template <class JoinPoint>
 
149
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
 
150
  template <class JoinPoint>
 
151
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
 
152
  template <class JoinPoint>
 
153
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
 
154
  template <class JoinPoint>
 
155
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
 
156
  template <class JoinPoint>
 
157
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
 
158
  template <class JoinPoint>
 
159
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
 
160
  template <class JoinPoint>
 
161
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
 
162
  template <class JoinPoint>
 
163
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
 
164
  template <class JoinPoint>
 
165
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
 
166
  template <class JoinPoint>
 
167
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
 
168
  template <class JoinPoint>
 
169
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
 
170
  template <class JoinPoint>
 
171
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
 
172
  template <class JoinPoint>
 
173
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
 
174
  template <class JoinPoint>
 
175
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
 
176
  template <class JoinPoint>
 
177
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
 
178
  template <class JoinPoint>
 
179
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
 
180
  template <class JoinPoint>
 
181
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
 
182
  template <class JoinPoint>
 
183
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
 
184
  template <class JoinPoint>
 
185
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
168
186
}
169
187
#endif
170
188
 
171
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
172
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
189
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
190
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
173
191
#endif
174
192
 
175
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
193
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
176
194
// This file is part of PUMA.
177
195
// Copyright (C) 1999-2003  The PUMA developer team.
178
196
//                                                                
195
213
#define __Syntax_h__
196
214
 
197
215
 
198
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
216
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
199
217
// This file is part of PUMA.
200
218
// Copyright (C) 1999-2003  The PUMA developer team.
201
219
//                                                                
223
241
 
224
242
#include <stdlib.h>
225
243
 
226
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
244
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
227
245
// This file is part of PUMA.
228
246
// Copyright (C) 1999-2003  The PUMA developer team.
229
247
//                                                                
251
269
 
252
270
 
253
271
 
254
 
#line 255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
272
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
255
273
} // closed Puma
 
274
class CCExprResolve;
 
275
class CExprResolve;
256
276
class WinIfExists;
257
277
class WinImportHandler;
258
278
class WinMacros;
259
 
class CMatchSyntax;
260
 
class ExtGnu;
 
279
class WinAsm;
 
280
class WinDeclSpecs;
 
281
class WinMemberExplSpec;
 
282
class WinTypeKeywords;
 
283
class WinFriend;
261
284
class ExtAC;
262
285
class ExtACBuilderCoupling;
263
286
class ExtACSyntaxCoupling;
264
287
class ExtACTree;
265
288
class ExtACKeywords;
266
 
class WinAsm;
267
 
class WinDeclSpecs;
268
 
class WinMemberExplSpec;
269
 
class WinTypeKeywords;
 
289
class ExtGnu;
270
290
class PragmaOnceUnitState;
271
291
class PragmaOnce;
272
 
class CCExprResolve;
273
 
class CExprResolve;
 
292
class CMatchSyntax;
274
293
namespace Puma {
275
294
 
276
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
295
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
277
296
class LanguageID {
278
 
#line 279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
297
#line 298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
298
  friend class ::CCExprResolve;
 
299
  friend class ::CExprResolve;
279
300
  friend class ::WinIfExists;
280
301
  friend class ::WinImportHandler;
281
302
  friend class ::WinMacros;
282
 
  friend class ::CMatchSyntax;
283
 
  friend class ::ExtGnu;
 
303
  friend class ::WinAsm;
 
304
  friend class ::WinDeclSpecs;
 
305
  friend class ::WinMemberExplSpec;
 
306
  friend class ::WinTypeKeywords;
 
307
  friend class ::WinFriend;
284
308
  friend class ::ExtAC;
285
309
  friend class ::ExtACBuilderCoupling;
286
310
  friend class ::ExtACSyntaxCoupling;
287
311
  friend class ::ExtACTree;
288
312
  friend class ::ExtACKeywords;
289
 
  friend class ::WinAsm;
290
 
  friend class ::WinDeclSpecs;
291
 
  friend class ::WinMemberExplSpec;
292
 
  friend class ::WinTypeKeywords;
 
313
  friend class ::ExtGnu;
293
314
  friend class ::PragmaOnceUnitState;
294
315
  friend class ::PragmaOnce;
295
 
  friend class ::CCExprResolve;
296
 
  friend class ::CExprResolve;
 
316
  friend class ::CMatchSyntax;
297
317
 
298
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
318
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
299
319
 
300
320
  const char *_id;
301
321
 
312
332
 
313
333
#endif /* __language_id_h__ */
314
334
 
315
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
 
335
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
316
336
// This file is part of PUMA.
317
337
// Copyright (C) 1999-2003  The PUMA developer team.
318
338
//                                                                
335
355
#define __location_h__
336
356
 
337
357
 
338
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
358
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
359
// This file is part of PUMA.
 
360
// Copyright (C) 1999-2003  The PUMA developer team.
 
361
//                                                                
 
362
// This program is free software;  you can redistribute it and/or 
 
363
// modify it under the terms of the GNU General Public License as 
 
364
// published by the Free Software Foundation; either version 2 of 
 
365
// the License, or (at your option) any later version.            
 
366
//                                                                
 
367
// This program is distributed in the hope that it will be useful,
 
368
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
369
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
370
// GNU General Public License for more details.                   
 
371
//                                                                
 
372
// You should have received a copy of the GNU General Public      
 
373
// License along with this program; if not, write to the Free     
 
374
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
375
// MA  02111-1307  USA                                            
 
376
 
 
377
#ifndef __filename_h__
 
378
#define __filename_h__
 
379
 
 
380
 
 
381
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
339
382
// This file is part of PUMA.
340
383
// Copyright (C) 1999-2003  The PUMA developer team.
341
384
//                                                                
358
401
#define __smart_ptr_h__
359
402
 
360
403
 
361
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
404
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
362
405
// This file is part of PUMA.
363
406
// Copyright (C) 1999-2003  The PUMA developer team.
364
407
//                                                                
384
427
 
385
428
 
386
429
 
387
 
#line 388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
430
#line 431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
388
431
} // closed Puma
 
432
class CCExprResolve;
 
433
class CExprResolve;
389
434
class WinIfExists;
390
435
class WinImportHandler;
391
436
class WinMacros;
392
 
class CMatchSyntax;
393
 
class ExtGnu;
 
437
class WinAsm;
 
438
class WinDeclSpecs;
 
439
class WinMemberExplSpec;
 
440
class WinTypeKeywords;
 
441
class WinFriend;
394
442
class ExtAC;
395
443
class ExtACBuilderCoupling;
396
444
class ExtACSyntaxCoupling;
397
445
class ExtACTree;
398
446
class ExtACKeywords;
399
 
class WinAsm;
400
 
class WinDeclSpecs;
401
 
class WinMemberExplSpec;
402
 
class WinTypeKeywords;
 
447
class ExtGnu;
403
448
class PragmaOnceUnitState;
404
449
class PragmaOnce;
405
 
class CCExprResolve;
406
 
class CExprResolve;
 
450
class CMatchSyntax;
407
451
namespace Puma {
408
452
 
409
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
453
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
410
454
class RefCnt {
411
 
#line 412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
455
#line 456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
456
  friend class ::CCExprResolve;
 
457
  friend class ::CExprResolve;
412
458
  friend class ::WinIfExists;
413
459
  friend class ::WinImportHandler;
414
460
  friend class ::WinMacros;
415
 
  friend class ::CMatchSyntax;
416
 
  friend class ::ExtGnu;
 
461
  friend class ::WinAsm;
 
462
  friend class ::WinDeclSpecs;
 
463
  friend class ::WinMemberExplSpec;
 
464
  friend class ::WinTypeKeywords;
 
465
  friend class ::WinFriend;
417
466
  friend class ::ExtAC;
418
467
  friend class ::ExtACBuilderCoupling;
419
468
  friend class ::ExtACSyntaxCoupling;
420
469
  friend class ::ExtACTree;
421
470
  friend class ::ExtACKeywords;
422
 
  friend class ::WinAsm;
423
 
  friend class ::WinDeclSpecs;
424
 
  friend class ::WinMemberExplSpec;
425
 
  friend class ::WinTypeKeywords;
 
471
  friend class ::ExtGnu;
426
472
  friend class ::PragmaOnceUnitState;
427
473
  friend class ::PragmaOnce;
428
 
  friend class ::CCExprResolve;
429
 
  friend class ::CExprResolve;
 
474
  friend class ::CMatchSyntax;
430
475
 
431
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
476
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
432
477
 
433
478
  int _counter;
434
479
 
446
491
 
447
492
#endif /* __ref_cnt_h__ */
448
493
 
449
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
494
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
450
495
namespace Puma {
451
496
 
452
497
 
453
498
 
454
 
#line 455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
499
#line 500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
455
500
} // closed Puma
 
501
class CCExprResolve;
 
502
class CExprResolve;
456
503
class WinIfExists;
457
504
class WinImportHandler;
458
505
class WinMacros;
459
 
class CMatchSyntax;
460
 
class ExtGnu;
 
506
class WinAsm;
 
507
class WinDeclSpecs;
 
508
class WinMemberExplSpec;
 
509
class WinTypeKeywords;
 
510
class WinFriend;
461
511
class ExtAC;
462
512
class ExtACBuilderCoupling;
463
513
class ExtACSyntaxCoupling;
464
514
class ExtACTree;
465
515
class ExtACKeywords;
466
 
class WinAsm;
467
 
class WinDeclSpecs;
468
 
class WinMemberExplSpec;
469
 
class WinTypeKeywords;
 
516
class ExtGnu;
470
517
class PragmaOnceUnitState;
471
518
class PragmaOnce;
472
 
class CCExprResolve;
473
 
class CExprResolve;
 
519
class CMatchSyntax;
474
520
namespace Puma {
475
521
 
476
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
522
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
477
523
class SmartPtr {
478
 
#line 479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
524
#line 525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
525
  friend class ::CCExprResolve;
 
526
  friend class ::CExprResolve;
479
527
  friend class ::WinIfExists;
480
528
  friend class ::WinImportHandler;
481
529
  friend class ::WinMacros;
482
 
  friend class ::CMatchSyntax;
483
 
  friend class ::ExtGnu;
 
530
  friend class ::WinAsm;
 
531
  friend class ::WinDeclSpecs;
 
532
  friend class ::WinMemberExplSpec;
 
533
  friend class ::WinTypeKeywords;
 
534
  friend class ::WinFriend;
484
535
  friend class ::ExtAC;
485
536
  friend class ::ExtACBuilderCoupling;
486
537
  friend class ::ExtACSyntaxCoupling;
487
538
  friend class ::ExtACTree;
488
539
  friend class ::ExtACKeywords;
489
 
  friend class ::WinAsm;
490
 
  friend class ::WinDeclSpecs;
491
 
  friend class ::WinMemberExplSpec;
492
 
  friend class ::WinTypeKeywords;
 
540
  friend class ::ExtGnu;
493
541
  friend class ::PragmaOnceUnitState;
494
542
  friend class ::PragmaOnce;
495
 
  friend class ::CCExprResolve;
496
 
  friend class ::CExprResolve;
 
543
  friend class ::CMatchSyntax;
497
544
 
498
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
545
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
499
546
 
500
547
  RefCnt *_data;
501
548
 
517
564
 
518
565
#endif /* __smart_ptr_h__ */
519
566
 
520
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
567
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
521
568
// This file is part of PUMA.
522
569
// Copyright (C) 1999-2003  The PUMA developer team.
523
570
//                                                                
546
593
 
547
594
 
548
595
 
549
 
#line 550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
596
#line 597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
550
597
} // closed Puma
 
598
class CCExprResolve;
 
599
class CExprResolve;
551
600
class WinIfExists;
552
601
class WinImportHandler;
553
602
class WinMacros;
554
 
class CMatchSyntax;
555
 
class ExtGnu;
 
603
class WinAsm;
 
604
class WinDeclSpecs;
 
605
class WinMemberExplSpec;
 
606
class WinTypeKeywords;
 
607
class WinFriend;
556
608
class ExtAC;
557
609
class ExtACBuilderCoupling;
558
610
class ExtACSyntaxCoupling;
559
611
class ExtACTree;
560
612
class ExtACKeywords;
561
 
class WinAsm;
562
 
class WinDeclSpecs;
563
 
class WinMemberExplSpec;
564
 
class WinTypeKeywords;
 
613
class ExtGnu;
565
614
class PragmaOnceUnitState;
566
615
class PragmaOnce;
567
 
class CCExprResolve;
568
 
class CExprResolve;
 
616
class CMatchSyntax;
569
617
namespace Puma {
570
618
 
571
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
619
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
572
620
class Printable {
573
 
#line 574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
621
#line 622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
622
  friend class ::CCExprResolve;
 
623
  friend class ::CExprResolve;
574
624
  friend class ::WinIfExists;
575
625
  friend class ::WinImportHandler;
576
626
  friend class ::WinMacros;
577
 
  friend class ::CMatchSyntax;
578
 
  friend class ::ExtGnu;
 
627
  friend class ::WinAsm;
 
628
  friend class ::WinDeclSpecs;
 
629
  friend class ::WinMemberExplSpec;
 
630
  friend class ::WinTypeKeywords;
 
631
  friend class ::WinFriend;
579
632
  friend class ::ExtAC;
580
633
  friend class ::ExtACBuilderCoupling;
581
634
  friend class ::ExtACSyntaxCoupling;
582
635
  friend class ::ExtACTree;
583
636
  friend class ::ExtACKeywords;
584
 
  friend class ::WinAsm;
585
 
  friend class ::WinDeclSpecs;
586
 
  friend class ::WinMemberExplSpec;
587
 
  friend class ::WinTypeKeywords;
 
637
  friend class ::ExtGnu;
588
638
  friend class ::PragmaOnceUnitState;
589
639
  friend class ::PragmaOnce;
590
 
  friend class ::CCExprResolve;
591
 
  friend class ::CExprResolve;
 
640
  friend class ::CMatchSyntax;
592
641
 
593
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
642
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
594
643
 
595
644
public:
596
645
  virtual ~Printable () {}
608
657
 
609
658
#endif /* __printable_h__ */
610
659
 
611
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
612
 
// This file is part of PUMA.
613
 
// Copyright (C) 1999-2003  The PUMA developer team.
614
 
//                                                                
615
 
// This program is free software;  you can redistribute it and/or 
616
 
// modify it under the terms of the GNU General Public License as 
617
 
// published by the Free Software Foundation; either version 2 of 
618
 
// the License, or (at your option) any later version.            
619
 
//                                                                
620
 
// This program is distributed in the hope that it will be useful,
621
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
622
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
623
 
// GNU General Public License for more details.                   
624
 
//                                                                
625
 
// You should have received a copy of the GNU General Public      
626
 
// License along with this program; if not, write to the Free     
627
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
628
 
// MA  02111-1307  USA                                            
629
 
 
630
 
#ifndef __location_info_h__
631
 
#define __location_info_h__
632
 
 
633
 
 
634
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
635
 
// This file is part of PUMA.
636
 
// Copyright (C) 1999-2003  The PUMA developer team.
637
 
//                                                                
638
 
// This program is free software;  you can redistribute it and/or 
639
 
// modify it under the terms of the GNU General Public License as 
640
 
// published by the Free Software Foundation; either version 2 of 
641
 
// the License, or (at your option) any later version.            
642
 
//                                                                
643
 
// This program is distributed in the hope that it will be useful,
644
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
645
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
646
 
// GNU General Public License for more details.                   
647
 
//                                                                
648
 
// You should have received a copy of the GNU General Public      
649
 
// License along with this program; if not, write to the Free     
650
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
651
 
// MA  02111-1307  USA                                            
652
 
 
653
 
#ifndef __filename_h__
654
 
#define __filename_h__
655
 
 
656
 
 
657
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
660
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
658
661
// This file is part of PUMA.
659
662
// Copyright (C) 1999-2003  The PUMA developer team.
660
663
//                                                                
677
680
#define __filename_info_h__
678
681
 
679
682
 
680
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
683
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
681
684
// This file is part of PUMA.
682
685
// Copyright (C) 1999-2003  The PUMA developer team.
683
686
//                                                                
700
703
#define __DString_h__
701
704
 
702
705
 
703
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
706
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
704
707
// This file is part of PUMA.
705
708
// Copyright (C) 1999-2003  The PUMA developer team.
706
709
//                                                                
723
726
#define __StrHashTable_h__
724
727
 
725
728
 
726
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
729
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
727
730
// This file is part of PUMA.
728
731
// Copyright (C) 1999-2003  The PUMA developer team.
729
732
//                                                                
746
749
#define __StrHashKey_h__
747
750
 
748
751
 
749
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
752
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
750
753
// This file is part of PUMA.
751
754
// Copyright (C) 1999-2003  The PUMA developer team.
752
755
//                                                                
776
779
class Unit;
777
780
 
778
781
 
779
 
#line 780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
782
#line 783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
780
783
} // closed Puma
 
784
class CCExprResolve;
 
785
class CExprResolve;
781
786
class WinIfExists;
782
787
class WinImportHandler;
783
788
class WinMacros;
784
 
class CMatchSyntax;
785
 
class ExtGnu;
 
789
class WinAsm;
 
790
class WinDeclSpecs;
 
791
class WinMemberExplSpec;
 
792
class WinTypeKeywords;
 
793
class WinFriend;
786
794
class ExtAC;
787
795
class ExtACBuilderCoupling;
788
796
class ExtACSyntaxCoupling;
789
797
class ExtACTree;
790
798
class ExtACKeywords;
791
 
class WinAsm;
792
 
class WinDeclSpecs;
793
 
class WinMemberExplSpec;
794
 
class WinTypeKeywords;
 
799
class ExtGnu;
795
800
class PragmaOnceUnitState;
796
801
class PragmaOnce;
797
 
class CCExprResolve;
798
 
class CExprResolve;
 
802
class CMatchSyntax;
799
803
namespace Puma {
800
804
 
801
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
805
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
802
806
class StrCol {
803
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
807
#line 808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
808
  friend class ::CCExprResolve;
 
809
  friend class ::CExprResolve;
804
810
  friend class ::WinIfExists;
805
811
  friend class ::WinImportHandler;
806
812
  friend class ::WinMacros;
807
 
  friend class ::CMatchSyntax;
808
 
  friend class ::ExtGnu;
 
813
  friend class ::WinAsm;
 
814
  friend class ::WinDeclSpecs;
 
815
  friend class ::WinMemberExplSpec;
 
816
  friend class ::WinTypeKeywords;
 
817
  friend class ::WinFriend;
809
818
  friend class ::ExtAC;
810
819
  friend class ::ExtACBuilderCoupling;
811
820
  friend class ::ExtACSyntaxCoupling;
812
821
  friend class ::ExtACTree;
813
822
  friend class ::ExtACKeywords;
814
 
  friend class ::WinAsm;
815
 
  friend class ::WinDeclSpecs;
816
 
  friend class ::WinMemberExplSpec;
817
 
  friend class ::WinTypeKeywords;
 
823
  friend class ::ExtGnu;
818
824
  friend class ::PragmaOnceUnitState;
819
825
  friend class ::PragmaOnce;
820
 
  friend class ::CCExprResolve;
821
 
  friend class ::CExprResolve;
 
826
  friend class ::CMatchSyntax;
822
827
 
823
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
828
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
824
829
 
825
830
protected:
826
831
  StrCol () {}
848
853
 
849
854
#endif /* __str_col__ */
850
855
 
851
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
856
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
852
857
// This file is part of PUMA.
853
858
// Copyright (C) 1999-2003  The PUMA developer team.
854
859
//                                                                
883
888
 
884
889
 
885
890
 
886
 
#line 887 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
891
#line 892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
887
892
} // closed Puma
 
893
class CCExprResolve;
 
894
class CExprResolve;
888
895
class WinIfExists;
889
896
class WinImportHandler;
890
897
class WinMacros;
891
 
class CMatchSyntax;
892
 
class ExtGnu;
 
898
class WinAsm;
 
899
class WinDeclSpecs;
 
900
class WinMemberExplSpec;
 
901
class WinTypeKeywords;
 
902
class WinFriend;
893
903
class ExtAC;
894
904
class ExtACBuilderCoupling;
895
905
class ExtACSyntaxCoupling;
896
906
class ExtACTree;
897
907
class ExtACKeywords;
898
 
class WinAsm;
899
 
class WinDeclSpecs;
900
 
class WinMemberExplSpec;
901
 
class WinTypeKeywords;
 
908
class ExtGnu;
902
909
class PragmaOnceUnitState;
903
910
class PragmaOnce;
904
 
class CCExprResolve;
905
 
class CExprResolve;
 
911
class CMatchSyntax;
906
912
namespace Puma {
907
913
 
908
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
914
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
909
915
class Chain {
910
 
#line 911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
916
#line 917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
917
  friend class ::CCExprResolve;
 
918
  friend class ::CExprResolve;
911
919
  friend class ::WinIfExists;
912
920
  friend class ::WinImportHandler;
913
921
  friend class ::WinMacros;
914
 
  friend class ::CMatchSyntax;
915
 
  friend class ::ExtGnu;
 
922
  friend class ::WinAsm;
 
923
  friend class ::WinDeclSpecs;
 
924
  friend class ::WinMemberExplSpec;
 
925
  friend class ::WinTypeKeywords;
 
926
  friend class ::WinFriend;
916
927
  friend class ::ExtAC;
917
928
  friend class ::ExtACBuilderCoupling;
918
929
  friend class ::ExtACSyntaxCoupling;
919
930
  friend class ::ExtACTree;
920
931
  friend class ::ExtACKeywords;
921
 
  friend class ::WinAsm;
922
 
  friend class ::WinDeclSpecs;
923
 
  friend class ::WinMemberExplSpec;
924
 
  friend class ::WinTypeKeywords;
 
932
  friend class ::ExtGnu;
925
933
  friend class ::PragmaOnceUnitState;
926
934
  friend class ::PragmaOnce;
927
 
  friend class ::CCExprResolve;
928
 
  friend class ::CExprResolve;
 
935
  friend class ::CMatchSyntax;
929
936
 
930
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
937
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
931
938
 
932
939
  Chain *next;
933
940
 
991
998
 
992
999
#endif /* __Chain_h__ */
993
1000
 
994
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1001
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
995
1002
namespace Puma {
996
1003
 
997
1004
 
998
1005
 
999
 
#line 1000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1006
#line 1007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
1000
1007
} // closed Puma
 
1008
class CCExprResolve;
 
1009
class CExprResolve;
1001
1010
class WinIfExists;
1002
1011
class WinImportHandler;
1003
1012
class WinMacros;
1004
 
class CMatchSyntax;
1005
 
class ExtGnu;
 
1013
class WinAsm;
 
1014
class WinDeclSpecs;
 
1015
class WinMemberExplSpec;
 
1016
class WinTypeKeywords;
 
1017
class WinFriend;
1006
1018
class ExtAC;
1007
1019
class ExtACBuilderCoupling;
1008
1020
class ExtACSyntaxCoupling;
1009
1021
class ExtACTree;
1010
1022
class ExtACKeywords;
1011
 
class WinAsm;
1012
 
class WinDeclSpecs;
1013
 
class WinMemberExplSpec;
1014
 
class WinTypeKeywords;
 
1023
class ExtGnu;
1015
1024
class PragmaOnceUnitState;
1016
1025
class PragmaOnce;
1017
 
class CCExprResolve;
1018
 
class CExprResolve;
 
1026
class CMatchSyntax;
1019
1027
namespace Puma {
1020
1028
 
1021
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1029
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1022
1030
class StrHashKey : public Chain {
1023
 
#line 1024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1031
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
1032
  friend class ::CCExprResolve;
 
1033
  friend class ::CExprResolve;
1024
1034
  friend class ::WinIfExists;
1025
1035
  friend class ::WinImportHandler;
1026
1036
  friend class ::WinMacros;
1027
 
  friend class ::CMatchSyntax;
1028
 
  friend class ::ExtGnu;
 
1037
  friend class ::WinAsm;
 
1038
  friend class ::WinDeclSpecs;
 
1039
  friend class ::WinMemberExplSpec;
 
1040
  friend class ::WinTypeKeywords;
 
1041
  friend class ::WinFriend;
1029
1042
  friend class ::ExtAC;
1030
1043
  friend class ::ExtACBuilderCoupling;
1031
1044
  friend class ::ExtACSyntaxCoupling;
1032
1045
  friend class ::ExtACTree;
1033
1046
  friend class ::ExtACKeywords;
1034
 
  friend class ::WinAsm;
1035
 
  friend class ::WinDeclSpecs;
1036
 
  friend class ::WinMemberExplSpec;
1037
 
  friend class ::WinTypeKeywords;
 
1047
  friend class ::ExtGnu;
1038
1048
  friend class ::PragmaOnceUnitState;
1039
1049
  friend class ::PragmaOnce;
1040
 
  friend class ::CCExprResolve;
1041
 
  friend class ::CExprResolve;
 
1050
  friend class ::CMatchSyntax;
1042
1051
 
1043
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1052
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1044
1053
 
1045
1054
  unsigned int m_Magic;
1046
1055
  unsigned int m_Len;
1051
1060
public:
1052
1061
  StrHashKey (int m, const char *s, int l) : 
1053
1062
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
 
1063
  ~StrHashKey () { if (m_Str) delete[] m_Str; }
1054
1064
 
1055
1065
  unsigned int getMagic () const { return m_Magic; }
1056
1066
  unsigned int length () const { return m_Len; }
1062
1072
 
1063
1073
#endif /* __StrHashKey_h__ */
1064
1074
 
1065
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1075
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1066
1076
#include <assert.h>
1067
1077
 
1068
1078
namespace Puma {
1069
1079
 
1070
1080
 
1071
1081
 
1072
 
#line 1073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1082
#line 1083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
1073
1083
} // closed Puma
 
1084
class CCExprResolve;
 
1085
class CExprResolve;
1074
1086
class WinIfExists;
1075
1087
class WinImportHandler;
1076
1088
class WinMacros;
1077
 
class CMatchSyntax;
1078
 
class ExtGnu;
 
1089
class WinAsm;
 
1090
class WinDeclSpecs;
 
1091
class WinMemberExplSpec;
 
1092
class WinTypeKeywords;
 
1093
class WinFriend;
1079
1094
class ExtAC;
1080
1095
class ExtACBuilderCoupling;
1081
1096
class ExtACSyntaxCoupling;
1082
1097
class ExtACTree;
1083
1098
class ExtACKeywords;
1084
 
class WinAsm;
1085
 
class WinDeclSpecs;
1086
 
class WinMemberExplSpec;
1087
 
class WinTypeKeywords;
 
1099
class ExtGnu;
1088
1100
class PragmaOnceUnitState;
1089
1101
class PragmaOnce;
1090
 
class CCExprResolve;
1091
 
class CExprResolve;
 
1102
class CMatchSyntax;
1092
1103
namespace Puma {
1093
1104
 
1094
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1105
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1095
1106
class StrHashTable {
1096
 
#line 1097 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1107
#line 1108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
1108
  friend class ::CCExprResolve;
 
1109
  friend class ::CExprResolve;
1097
1110
  friend class ::WinIfExists;
1098
1111
  friend class ::WinImportHandler;
1099
1112
  friend class ::WinMacros;
1100
 
  friend class ::CMatchSyntax;
1101
 
  friend class ::ExtGnu;
 
1113
  friend class ::WinAsm;
 
1114
  friend class ::WinDeclSpecs;
 
1115
  friend class ::WinMemberExplSpec;
 
1116
  friend class ::WinTypeKeywords;
 
1117
  friend class ::WinFriend;
1102
1118
  friend class ::ExtAC;
1103
1119
  friend class ::ExtACBuilderCoupling;
1104
1120
  friend class ::ExtACSyntaxCoupling;
1105
1121
  friend class ::ExtACTree;
1106
1122
  friend class ::ExtACKeywords;
1107
 
  friend class ::WinAsm;
1108
 
  friend class ::WinDeclSpecs;
1109
 
  friend class ::WinMemberExplSpec;
1110
 
  friend class ::WinTypeKeywords;
 
1123
  friend class ::ExtGnu;
1111
1124
  friend class ::PragmaOnceUnitState;
1112
1125
  friend class ::PragmaOnce;
1113
 
  friend class ::CCExprResolve;
1114
 
  friend class ::CExprResolve;
 
1126
  friend class ::CMatchSyntax;
1115
1127
 
1116
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1128
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1117
1129
 
1118
1130
  StrHashKey *_emptyKey;
1119
1131
 
1126
1138
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
1127
1139
  StrHashKey *insert (const char *);
1128
1140
  void remove (StrHashKey *);
 
1141
  void clear ();
1129
1142
 
1130
1143
  enum { STRHASHTABLE_SIZE=0xffff };
1131
1144
  
1133
1146
  Chain m_Table[STRHASHTABLE_SIZE];
1134
1147
 
1135
1148
  StrHashKey *find (unsigned int, const char *, unsigned int);
1136
 
  unsigned int hash (const char *, unsigned int);
 
1149
  unsigned int hash (const char *, unsigned int &);
1137
1150
};
1138
1151
 
1139
1152
 
1141
1154
 
1142
1155
#endif /* __StrHashTable_h__ */
1143
1156
 
1144
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1157
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1145
1158
#include <assert.h>
1146
1159
 
1147
1160
namespace Puma {
1150
1163
extern StrHashTable ___str_dict;
1151
1164
 
1152
1165
 
1153
 
#line 1154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1166
#line 1167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
1154
1167
} // closed Puma
 
1168
class CCExprResolve;
 
1169
class CExprResolve;
1155
1170
class WinIfExists;
1156
1171
class WinImportHandler;
1157
1172
class WinMacros;
1158
 
class CMatchSyntax;
1159
 
class ExtGnu;
 
1173
class WinAsm;
 
1174
class WinDeclSpecs;
 
1175
class WinMemberExplSpec;
 
1176
class WinTypeKeywords;
 
1177
class WinFriend;
1160
1178
class ExtAC;
1161
1179
class ExtACBuilderCoupling;
1162
1180
class ExtACSyntaxCoupling;
1163
1181
class ExtACTree;
1164
1182
class ExtACKeywords;
1165
 
class WinAsm;
1166
 
class WinDeclSpecs;
1167
 
class WinMemberExplSpec;
1168
 
class WinTypeKeywords;
 
1183
class ExtGnu;
1169
1184
class PragmaOnceUnitState;
1170
1185
class PragmaOnce;
1171
 
class CCExprResolve;
1172
 
class CExprResolve;
 
1186
class CMatchSyntax;
1173
1187
namespace Puma {
1174
1188
 
1175
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1189
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1176
1190
class DString {
1177
 
#line 1178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1191
#line 1192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
1192
  friend class ::CCExprResolve;
 
1193
  friend class ::CExprResolve;
1178
1194
  friend class ::WinIfExists;
1179
1195
  friend class ::WinImportHandler;
1180
1196
  friend class ::WinMacros;
1181
 
  friend class ::CMatchSyntax;
1182
 
  friend class ::ExtGnu;
 
1197
  friend class ::WinAsm;
 
1198
  friend class ::WinDeclSpecs;
 
1199
  friend class ::WinMemberExplSpec;
 
1200
  friend class ::WinTypeKeywords;
 
1201
  friend class ::WinFriend;
1183
1202
  friend class ::ExtAC;
1184
1203
  friend class ::ExtACBuilderCoupling;
1185
1204
  friend class ::ExtACSyntaxCoupling;
1186
1205
  friend class ::ExtACTree;
1187
1206
  friend class ::ExtACKeywords;
1188
 
  friend class ::WinAsm;
1189
 
  friend class ::WinDeclSpecs;
1190
 
  friend class ::WinMemberExplSpec;
1191
 
  friend class ::WinTypeKeywords;
 
1207
  friend class ::ExtGnu;
1192
1208
  friend class ::PragmaOnceUnitState;
1193
1209
  friend class ::PragmaOnce;
1194
 
  friend class ::CCExprResolve;
1195
 
  friend class ::CExprResolve;
 
1210
  friend class ::CMatchSyntax;
1196
1211
 
1197
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1212
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1198
1213
 
1199
1214
  StrHashKey *m_Key;
1200
1215
 
1261
1276
    assert (m_Key);
1262
1277
    return c_str ();
1263
1278
  }
 
1279
  
 
1280
  static void clearDict() {
 
1281
    ___str_dict.clear ();
 
1282
  }
1264
1283
};
1265
1284
 
1266
1285
 
1268
1287
 
1269
1288
#endif /* __DString_h__ */
1270
1289
 
1271
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1290
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1272
1291
namespace Puma {
1273
1292
 
1274
1293
 
1275
1294
 
1276
 
#line 1277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1295
#line 1296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
1277
1296
} // closed Puma
 
1297
class CCExprResolve;
 
1298
class CExprResolve;
1278
1299
class WinIfExists;
1279
1300
class WinImportHandler;
1280
1301
class WinMacros;
1281
 
class CMatchSyntax;
1282
 
class ExtGnu;
 
1302
class WinAsm;
 
1303
class WinDeclSpecs;
 
1304
class WinMemberExplSpec;
 
1305
class WinTypeKeywords;
 
1306
class WinFriend;
1283
1307
class ExtAC;
1284
1308
class ExtACBuilderCoupling;
1285
1309
class ExtACSyntaxCoupling;
1286
1310
class ExtACTree;
1287
1311
class ExtACKeywords;
1288
 
class WinAsm;
1289
 
class WinDeclSpecs;
1290
 
class WinMemberExplSpec;
1291
 
class WinTypeKeywords;
 
1312
class ExtGnu;
1292
1313
class PragmaOnceUnitState;
1293
1314
class PragmaOnce;
1294
 
class CCExprResolve;
1295
 
class CExprResolve;
 
1315
class CMatchSyntax;
1296
1316
namespace Puma {
1297
1317
 
1298
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1318
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1299
1319
class FilenameInfo : public RefCnt {
1300
 
#line 1301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1320
#line 1321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
1321
  friend class ::CCExprResolve;
 
1322
  friend class ::CExprResolve;
1301
1323
  friend class ::WinIfExists;
1302
1324
  friend class ::WinImportHandler;
1303
1325
  friend class ::WinMacros;
1304
 
  friend class ::CMatchSyntax;
1305
 
  friend class ::ExtGnu;
 
1326
  friend class ::WinAsm;
 
1327
  friend class ::WinDeclSpecs;
 
1328
  friend class ::WinMemberExplSpec;
 
1329
  friend class ::WinTypeKeywords;
 
1330
  friend class ::WinFriend;
1306
1331
  friend class ::ExtAC;
1307
1332
  friend class ::ExtACBuilderCoupling;
1308
1333
  friend class ::ExtACSyntaxCoupling;
1309
1334
  friend class ::ExtACTree;
1310
1335
  friend class ::ExtACKeywords;
1311
 
  friend class ::WinAsm;
1312
 
  friend class ::WinDeclSpecs;
1313
 
  friend class ::WinMemberExplSpec;
1314
 
  friend class ::WinTypeKeywords;
 
1336
  friend class ::ExtGnu;
1315
1337
  friend class ::PragmaOnceUnitState;
1316
1338
  friend class ::PragmaOnce;
1317
 
  friend class ::CCExprResolve;
1318
 
  friend class ::CExprResolve;
 
1339
  friend class ::CMatchSyntax;
1319
1340
 
1320
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1341
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1321
1342
 
1322
1343
  DString _name;
1323
1344
  const char *_path;
1327
1348
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
1328
1349
  ~FilenameInfo ();
1329
1350
  void name (const char *n);
1330
 
  void name (const DString &dsn) { _name = dsn; }
 
1351
//  void name (const DString &dsn) { _name = dsn; }
1331
1352
  const char *name () const { return _name.c_str (); }
1332
1353
  const char *path ();
1333
1354
  const char *root ();
1342
1363
 
1343
1364
#endif /* __filename_info_h__ */
1344
1365
 
1345
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1366
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
1346
1367
namespace Puma {
1347
1368
 
1348
1369
 
1349
1370
 
1350
 
#line 1351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1371
#line 1372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
1351
1372
} // closed Puma
 
1373
class CCExprResolve;
 
1374
class CExprResolve;
1352
1375
class WinIfExists;
1353
1376
class WinImportHandler;
1354
1377
class WinMacros;
1355
 
class CMatchSyntax;
1356
 
class ExtGnu;
 
1378
class WinAsm;
 
1379
class WinDeclSpecs;
 
1380
class WinMemberExplSpec;
 
1381
class WinTypeKeywords;
 
1382
class WinFriend;
1357
1383
class ExtAC;
1358
1384
class ExtACBuilderCoupling;
1359
1385
class ExtACSyntaxCoupling;
1360
1386
class ExtACTree;
1361
1387
class ExtACKeywords;
1362
 
class WinAsm;
1363
 
class WinDeclSpecs;
1364
 
class WinMemberExplSpec;
1365
 
class WinTypeKeywords;
 
1388
class ExtGnu;
1366
1389
class PragmaOnceUnitState;
1367
1390
class PragmaOnce;
1368
 
class CCExprResolve;
1369
 
class CExprResolve;
 
1391
class CMatchSyntax;
1370
1392
namespace Puma {
1371
1393
 
1372
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1394
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
1373
1395
class Filename : public SmartPtr, public Printable {
1374
 
#line 1375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1396
#line 1397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
1397
  friend class ::CCExprResolve;
 
1398
  friend class ::CExprResolve;
1375
1399
  friend class ::WinIfExists;
1376
1400
  friend class ::WinImportHandler;
1377
1401
  friend class ::WinMacros;
1378
 
  friend class ::CMatchSyntax;
1379
 
  friend class ::ExtGnu;
 
1402
  friend class ::WinAsm;
 
1403
  friend class ::WinDeclSpecs;
 
1404
  friend class ::WinMemberExplSpec;
 
1405
  friend class ::WinTypeKeywords;
 
1406
  friend class ::WinFriend;
1380
1407
  friend class ::ExtAC;
1381
1408
  friend class ::ExtACBuilderCoupling;
1382
1409
  friend class ::ExtACSyntaxCoupling;
1383
1410
  friend class ::ExtACTree;
1384
1411
  friend class ::ExtACKeywords;
1385
 
  friend class ::WinAsm;
1386
 
  friend class ::WinDeclSpecs;
1387
 
  friend class ::WinMemberExplSpec;
1388
 
  friend class ::WinTypeKeywords;
 
1412
  friend class ::ExtGnu;
1389
1413
  friend class ::PragmaOnceUnitState;
1390
1414
  friend class ::PragmaOnce;
1391
 
  friend class ::CCExprResolve;
1392
 
  friend class ::CExprResolve;
 
1415
  friend class ::CMatchSyntax;
1393
1416
 
1394
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1417
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
1395
1418
 
1396
1419
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
1397
1420
 
1399
1422
  Filename () {}
1400
1423
  Filename (const char *n) { name (n); }
1401
1424
  Filename &operator = (const char *n) { name (n); return *this; }
 
1425
  bool operator ~ () const { return info () != 0; }
1402
1426
  void name (const char *n);
1403
1427
  const char *name () const;
1404
1428
  const char *path () const;
1414
1438
 
1415
1439
#endif /* __filename_h__ */
1416
1440
 
1417
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
1441
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
1418
1442
namespace Puma {
1419
1443
 
1420
1444
 
1421
1445
 
1422
 
#line 1423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1446
#line 1447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
1423
1447
} // closed Puma
 
1448
class CCExprResolve;
 
1449
class CExprResolve;
1424
1450
class WinIfExists;
1425
1451
class WinImportHandler;
1426
1452
class WinMacros;
1427
 
class CMatchSyntax;
1428
 
class ExtGnu;
 
1453
class WinAsm;
 
1454
class WinDeclSpecs;
 
1455
class WinMemberExplSpec;
 
1456
class WinTypeKeywords;
 
1457
class WinFriend;
1429
1458
class ExtAC;
1430
1459
class ExtACBuilderCoupling;
1431
1460
class ExtACSyntaxCoupling;
1432
1461
class ExtACTree;
1433
1462
class ExtACKeywords;
1434
 
class WinAsm;
1435
 
class WinDeclSpecs;
1436
 
class WinMemberExplSpec;
1437
 
class WinTypeKeywords;
 
1463
class ExtGnu;
1438
1464
class PragmaOnceUnitState;
1439
1465
class PragmaOnce;
1440
 
class CCExprResolve;
1441
 
class CExprResolve;
 
1466
class CMatchSyntax;
1442
1467
namespace Puma {
1443
1468
 
1444
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
1445
 
class LocationInfo : public RefCnt {
1446
 
#line 1447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1469
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
1470
class Location {
 
1471
#line 1472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
1472
  friend class ::CCExprResolve;
 
1473
  friend class ::CExprResolve;
1447
1474
  friend class ::WinIfExists;
1448
1475
  friend class ::WinImportHandler;
1449
1476
  friend class ::WinMacros;
1450
 
  friend class ::CMatchSyntax;
1451
 
  friend class ::ExtGnu;
 
1477
  friend class ::WinAsm;
 
1478
  friend class ::WinDeclSpecs;
 
1479
  friend class ::WinMemberExplSpec;
 
1480
  friend class ::WinTypeKeywords;
 
1481
  friend class ::WinFriend;
1452
1482
  friend class ::ExtAC;
1453
1483
  friend class ::ExtACBuilderCoupling;
1454
1484
  friend class ::ExtACSyntaxCoupling;
1455
1485
  friend class ::ExtACTree;
1456
1486
  friend class ::ExtACKeywords;
1457
 
  friend class ::WinAsm;
1458
 
  friend class ::WinDeclSpecs;
1459
 
  friend class ::WinMemberExplSpec;
1460
 
  friend class ::WinTypeKeywords;
 
1487
  friend class ::ExtGnu;
1461
1488
  friend class ::PragmaOnceUnitState;
1462
1489
  friend class ::PragmaOnce;
1463
 
  friend class ::CCExprResolve;
1464
 
  friend class ::CExprResolve;
 
1490
  friend class ::CMatchSyntax;
1465
1491
 
1466
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
1492
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
1467
1493
 
1468
1494
  Filename _filename;
1469
1495
  int _line;
 
1496
  int _column;
1470
1497
 
1471
1498
public:
1472
 
  LocationInfo () : _filename (), _line (0) {}
1473
 
  void setup (Filename f, int l);
 
1499
  Location () : _filename (), _line (0), _column (0) {}
 
1500
  Location (Filename f, int l, int c = 0) { setup (f, l, c); }
 
1501
  void setup (Filename f, int l, int c = 0) {
 
1502
    _filename = f;
 
1503
    _line     = l;
 
1504
    _column   = c;
 
1505
  }
1474
1506
  const Filename &filename () const { return _filename; }
1475
1507
  int line () const { return _line; }
1476
 
  bool operator < (const LocationInfo &l) const;
1477
 
  bool operator == (const LocationInfo &l) const;
1478
 
};
1479
 
 
1480
 
 
1481
 
} // namespace Puma
1482
 
 
1483
 
#endif /* __location_info_h__ */
1484
 
 
1485
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
1486
 
namespace Puma {
1487
 
 
1488
 
 
1489
 
 
1490
 
#line 1491 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
1491
 
} // closed Puma
1492
 
class WinIfExists;
1493
 
class WinImportHandler;
1494
 
class WinMacros;
1495
 
class CMatchSyntax;
1496
 
class ExtGnu;
1497
 
class ExtAC;
1498
 
class ExtACBuilderCoupling;
1499
 
class ExtACSyntaxCoupling;
1500
 
class ExtACTree;
1501
 
class ExtACKeywords;
1502
 
class WinAsm;
1503
 
class WinDeclSpecs;
1504
 
class WinMemberExplSpec;
1505
 
class WinTypeKeywords;
1506
 
class PragmaOnceUnitState;
1507
 
class PragmaOnce;
1508
 
class CCExprResolve;
1509
 
class CExprResolve;
1510
 
namespace Puma {
1511
 
 
1512
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
1513
 
class Location : public SmartPtr, public Printable {
1514
 
#line 1515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
1515
 
  friend class ::WinIfExists;
1516
 
  friend class ::WinImportHandler;
1517
 
  friend class ::WinMacros;
1518
 
  friend class ::CMatchSyntax;
1519
 
  friend class ::ExtGnu;
1520
 
  friend class ::ExtAC;
1521
 
  friend class ::ExtACBuilderCoupling;
1522
 
  friend class ::ExtACSyntaxCoupling;
1523
 
  friend class ::ExtACTree;
1524
 
  friend class ::ExtACKeywords;
1525
 
  friend class ::WinAsm;
1526
 
  friend class ::WinDeclSpecs;
1527
 
  friend class ::WinMemberExplSpec;
1528
 
  friend class ::WinTypeKeywords;
1529
 
  friend class ::PragmaOnceUnitState;
1530
 
  friend class ::PragmaOnce;
1531
 
  friend class ::CCExprResolve;
1532
 
  friend class ::CExprResolve;
1533
 
 
1534
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
1535
 
 
1536
 
  LocationInfo *info () const { return (LocationInfo*)data (); }
1537
 
 
1538
 
public:
1539
 
  Location () {}
1540
 
  Location (Filename f, int l) { setup (f, l); }
1541
 
  Location (LocationInfo *lptr) : SmartPtr (lptr) {}
1542
 
  LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
1543
 
  void setup (Filename f, int l);
1544
 
  const Filename &filename () const   { return info ()->filename (); }
1545
 
  int line () const;
1546
 
  bool operator == (const Location &l) const;
 
1508
  int column () const { return _column; }
 
1509
  bool operator == (const Location &l) const {
 
1510
    return filename () == l.filename () && line () == l.line () &&
 
1511
      column () == l.column ();
 
1512
  }
1547
1513
  bool operator != (const Location &l) const { return ! (*this == l); }
1548
 
  bool operator < (const Location &l) const;
 
1514
  bool operator < (const Location &l) const {
 
1515
    // TODO: does it make sense to compare the filenames? better assert?
 
1516
    if (filename () != l.filename ())
 
1517
      return false;
 
1518
    return line () < l.line () && column () < l.column ();
 
1519
  }
 
1520
};
1549
1521
 
1550
 
  virtual void print (ostream &os) const {
1551
 
    if (info ())
 
1522
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
1552
1523
#ifdef VISUAL_STUDIO
1553
 
      os << filename () << "(" << line () << ")";
 
1524
  os << loc.filename () << "(" << loc.line () << ")";
1554
1525
#else
1555
 
      os << filename () << ":" << line ();
 
1526
  os << loc.filename () << ":" << loc.line ();
1556
1527
#endif
1557
 
  }
1558
 
};
1559
 
 
1560
 
 
 
1528
  return os;  
 
1529
}
1561
1530
} // namespace Puma
1562
1531
 
1563
1532
#endif /* __location_h__ */
1564
1533
 
1565
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
1534
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
1566
1535
// This file is part of PUMA.
1567
1536
// Copyright (C) 1999-2003  The PUMA developer team.
1568
1537
//                                                                
1597
1566
class List;
1598
1567
 
1599
1568
 
1600
 
#line 1601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1569
#line 1570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
1601
1570
} // closed Puma
 
1571
class CCExprResolve;
 
1572
class CExprResolve;
1602
1573
class WinIfExists;
1603
1574
class WinImportHandler;
1604
1575
class WinMacros;
1605
 
class CMatchSyntax;
1606
 
class ExtGnu;
 
1576
class WinAsm;
 
1577
class WinDeclSpecs;
 
1578
class WinMemberExplSpec;
 
1579
class WinTypeKeywords;
 
1580
class WinFriend;
1607
1581
class ExtAC;
1608
1582
class ExtACBuilderCoupling;
1609
1583
class ExtACSyntaxCoupling;
1610
1584
class ExtACTree;
1611
1585
class ExtACKeywords;
1612
 
class WinAsm;
1613
 
class WinDeclSpecs;
1614
 
class WinMemberExplSpec;
1615
 
class WinTypeKeywords;
 
1586
class ExtGnu;
1616
1587
class PragmaOnceUnitState;
1617
1588
class PragmaOnce;
1618
 
class CCExprResolve;
1619
 
class CExprResolve;
 
1589
class CMatchSyntax;
1620
1590
namespace Puma {
1621
1591
 
1622
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
1592
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
1623
1593
class ListElement {
1624
 
#line 1625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1594
#line 1595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
1595
  friend class ::CCExprResolve;
 
1596
  friend class ::CExprResolve;
1625
1597
  friend class ::WinIfExists;
1626
1598
  friend class ::WinImportHandler;
1627
1599
  friend class ::WinMacros;
1628
 
  friend class ::CMatchSyntax;
1629
 
  friend class ::ExtGnu;
 
1600
  friend class ::WinAsm;
 
1601
  friend class ::WinDeclSpecs;
 
1602
  friend class ::WinMemberExplSpec;
 
1603
  friend class ::WinTypeKeywords;
 
1604
  friend class ::WinFriend;
1630
1605
  friend class ::ExtAC;
1631
1606
  friend class ::ExtACBuilderCoupling;
1632
1607
  friend class ::ExtACSyntaxCoupling;
1633
1608
  friend class ::ExtACTree;
1634
1609
  friend class ::ExtACKeywords;
1635
 
  friend class ::WinAsm;
1636
 
  friend class ::WinDeclSpecs;
1637
 
  friend class ::WinMemberExplSpec;
1638
 
  friend class ::WinTypeKeywords;
 
1610
  friend class ::ExtGnu;
1639
1611
  friend class ::PragmaOnceUnitState;
1640
1612
  friend class ::PragmaOnce;
1641
 
  friend class ::CCExprResolve;
1642
 
  friend class ::CExprResolve;
 
1613
  friend class ::CMatchSyntax;
1643
1614
 
1644
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
1615
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
1645
1616
 
1646
1617
  friend class List;
1647
1618
 
1662
1633
 
1663
1634
#endif /* __list_element_h__ */
1664
1635
 
1665
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
 
1636
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Array.h"
1666
1637
// This file is part of PUMA.
1667
1638
// Copyright (C) 1999-2003  The PUMA developer team.
1668
1639
//                                                                
1688
1659
 
1689
1660
namespace Puma {
1690
1661
 
1691
 
 
1692
 
#line 1693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
1693
 
} // closed Puma
1694
 
class WinIfExists;
1695
 
class WinImportHandler;
1696
 
class WinMacros;
1697
 
class CMatchSyntax;
1698
 
class ExtGnu;
1699
 
class ExtAC;
1700
 
class ExtACBuilderCoupling;
1701
 
class ExtACSyntaxCoupling;
1702
 
class ExtACTree;
1703
 
class ExtACKeywords;
1704
 
class WinAsm;
1705
 
class WinDeclSpecs;
1706
 
class WinMemberExplSpec;
1707
 
class WinTypeKeywords;
1708
 
class PragmaOnceUnitState;
1709
 
class PragmaOnce;
1710
 
class CCExprResolve;
1711
 
class CExprResolve;
1712
 
namespace Puma {
1713
 
 
1714
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
1715
1662
template <class Item>
1716
1663
class Array {
1717
 
#line 1718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
1718
 
  friend class ::WinIfExists;
1719
 
  friend class ::WinImportHandler;
1720
 
  friend class ::WinMacros;
1721
 
  friend class ::CMatchSyntax;
1722
 
  friend class ::ExtGnu;
1723
 
  friend class ::ExtAC;
1724
 
  friend class ::ExtACBuilderCoupling;
1725
 
  friend class ::ExtACSyntaxCoupling;
1726
 
  friend class ::ExtACTree;
1727
 
  friend class ::ExtACKeywords;
1728
 
  friend class ::WinAsm;
1729
 
  friend class ::WinDeclSpecs;
1730
 
  friend class ::WinMemberExplSpec;
1731
 
  friend class ::WinTypeKeywords;
1732
 
  friend class ::PragmaOnceUnitState;
1733
 
  friend class ::PragmaOnce;
1734
 
  friend class ::CCExprResolve;
1735
 
  friend class ::CExprResolve;
1736
 
 
1737
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
1738
 
 
1739
 
   protected:
1740
 
      static const long default_init_size = 5;
1741
 
      static const long default_increment = 5;
1742
 
 
1743
 
   public:
1744
 
      Array (long is = default_init_size, long incr = default_increment);
1745
 
      Array (const Array<Item>& array);
1746
 
      Array<Item>& operator =(const Array<Item>&);
1747
 
      ~Array ();
1748
 
      void append (const Item& item);
1749
 
      void insert (long index, const Item& item);
1750
 
      void prepend (const Item& item);
1751
 
      void remove (long index);
1752
 
      void reset ();
1753
 
      Item& get (long index);
1754
 
      Item& operator[] (long index);
1755
 
      Item fetch (long index) const;
1756
 
      Item& lookup (long index) const;
1757
 
      long length () const;
1758
 
 
1759
 
   private:
1760
 
      Item* data;
1761
 
      long size;
1762
 
      long count;
1763
 
      long increment;
 
1664
protected:
 
1665
  static const long default_init_size = 5;
 
1666
  static const long default_increment = 5;
 
1667
 
 
1668
public:
 
1669
  Array (long is = default_init_size, long incr = default_increment);
 
1670
  Array (const Array<Item>& array);
 
1671
  Array<Item>& operator =(const Array<Item>&);
 
1672
  ~Array ();
 
1673
  void append (const Item& item);
 
1674
  void insert (long index, const Item& item);
 
1675
  void prepend (const Item& item);
 
1676
  void remove (long index);
 
1677
  void reset ();
 
1678
  Item& get (long index);
 
1679
  Item& operator[] (long index);
 
1680
  Item fetch (long index) const;
 
1681
  Item& lookup (long index) const;
 
1682
  long length () const;
 
1683
 
 
1684
private:
 
1685
  Item* data;
 
1686
  long size;
 
1687
  long count;
 
1688
  long increment;
1764
1689
      
1765
 
      void check (long wanted);
1766
 
 };
1767
 
 
1768
 
template <class Item>
1769
 
inline Array<Item>::Array (long is, long incr)
1770
 
 {
1771
 
   count     = 0; 
1772
 
   size      = is;
1773
 
   increment = incr;
1774
 
   data      = new Item[size];
1775
 
 }
1776
 
 
1777
 
template <class Item>
1778
 
Array<Item>::Array (const Array<Item>& array)
1779
 
 {
1780
 
   count = 0;
1781
 
   size  = array.size;
1782
 
   data  = new Item[size];
1783
 
   increment = array.increment;
1784
 
 
1785
 
   for (int pos = 0; pos < array.length (); pos++)
1786
 
      append (array.lookup (pos));
1787
 
 }
1788
 
 
1789
 
template <class Item>
1790
 
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
1791
 
 {
1792
 
   if (data)
1793
 
      delete[] data;
1794
 
   count = 0;
1795
 
   size  = array.size;
1796
 
   data  = new Item[size];
1797
 
   increment = array.increment;
1798
 
 
1799
 
   for (int pos = 0; pos < array.length (); pos++)
1800
 
      append (array.lookup (pos));
1801
 
   return *this;
1802
 
 }
1803
 
 
1804
 
template <class Item>
1805
 
Array<Item>::~Array ()
1806
 
 {
1807
 
   if (data)
1808
 
      delete[] data;
1809
 
 }
1810
 
 
1811
 
template <class Item>
1812
 
inline void Array<Item>::check (long wanted)
1813
 
 {
1814
 
   if (wanted >= size)
1815
 
    {
1816
 
      Item* new_data;
1817
 
 
1818
 
      while (wanted >= size)
1819
 
      {
1820
 
         size += increment;
1821
 
         increment*=2;
1822
 
      }
1823
 
      new_data = new Item[size];
1824
 
      for (int pos = 0; pos < count; pos++)
1825
 
         new_data[pos] = data[pos];
1826
 
      delete[] data;
1827
 
      data = new_data;
1828
 
    }
1829
 
 }
 
1690
  void grow (long wanted);
 
1691
};
 
1692
 
 
1693
template <class Item>
 
1694
inline Array<Item>::Array (long is, long incr) {
 
1695
  count     = 0; 
 
1696
  size      = is;
 
1697
  increment = incr;
 
1698
  data      = 0;
 
1699
}
 
1700
 
 
1701
template <class Item>
 
1702
Array<Item>::Array (const Array<Item>& array) {
 
1703
  count     = 0;
 
1704
  size      = array.size;
 
1705
  increment = array.increment;
 
1706
  
 
1707
  if (size && array.data) {
 
1708
    data = new Item[size];
 
1709
    for (; count < array.count; count++) {
 
1710
      data[count] = array.data[count];
 
1711
    }
 
1712
  } else
 
1713
    data = 0;
 
1714
}
 
1715
 
 
1716
template <class Item>
 
1717
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
 
1718
  if (data)
 
1719
    delete[] data;
 
1720
 
 
1721
  count     = 0;
 
1722
  size      = array.size;
 
1723
  increment = array.increment;
 
1724
 
 
1725
  if (size && array.data) {
 
1726
    data = new Item[size];
 
1727
    for (; count < array.count; count++) {
 
1728
      data[count] = array.data[count];
 
1729
    }
 
1730
  } else
 
1731
    data = 0;
 
1732
  
 
1733
  return *this;
 
1734
}
 
1735
 
 
1736
template <class Item>
 
1737
Array<Item>::~Array () {
 
1738
  if (data)
 
1739
    delete[] data;
 
1740
}
 
1741
 
 
1742
template <class Item>
 
1743
inline void Array<Item>::grow (long wanted) {
 
1744
  do {
 
1745
    size += increment;
 
1746
    increment *= 2;
 
1747
  } while (wanted >= size);
 
1748
 
 
1749
  if (data) {
 
1750
    Item* new_data = new Item[size];
 
1751
    for (long i = 0; i < count; i++) {
 
1752
      new_data[i] = data[i];
 
1753
    }
 
1754
    delete[] data;
 
1755
    data = new_data;
 
1756
  } else
 
1757
    data = new Item[size];
 
1758
}
1830
1759
   
1831
1760
template <class Item>
1832
 
inline void Array<Item>::append (const Item& item)
1833
 
 {
1834
 
   check (count);
1835
 
   data[count++] = item;
1836
 
 }
1837
 
 
1838
 
template <class Item>
1839
 
void Array<Item>::prepend (const Item& item)
1840
 
 {
1841
 
   insert (0, item);
1842
 
 }
1843
 
 
1844
 
template <class Item>
1845
 
void Array<Item>::insert (long index, const Item& item)
1846
 
 {
1847
 
   check (count);
1848
 
   for (int pos = count; pos > index; pos--)
1849
 
      data[pos] = data[pos - 1];
1850
 
   data[index] = item;
1851
 
   count++;
1852
 
 }
1853
 
 
1854
 
template <class Item>
1855
 
inline Item& Array<Item>::get (long index)
1856
 
 {
1857
 
   check (index);
1858
 
   if (index >= count)
1859
 
      count = index + 1;
1860
 
   return data[index];
1861
 
 }
1862
 
 
1863
 
template <class Item>
1864
 
inline Item& Array<Item>::operator[] (long index)
1865
 
 {
1866
 
   return get (index);
1867
 
 }
1868
 
 
1869
 
template <class Item>
1870
 
inline Item Array<Item>::fetch (long index) const
1871
 
 {
1872
 
   assert(index < count);
1873
 
   return data[index];
1874
 
 }
1875
 
 
1876
 
template <class Item>
1877
 
inline long Array<Item>::length () const
1878
 
 {
1879
 
   return count;
1880
 
 }
1881
 
 
1882
 
template <class Item>
1883
 
inline void Array<Item>::remove (long index)
1884
 
 {
1885
 
   if (index < count && count > 0)
1886
 
    {
1887
 
      for (int pos = index; pos < count - 1; pos++)
1888
 
         data[pos] = data[pos + 1];
1889
 
      count--;
1890
 
    }
1891
 
 }
 
1761
inline void Array<Item>::append (const Item& item) {
 
1762
  if (count >= size || ! data) {
 
1763
    grow (count);
 
1764
  }
 
1765
  data[count++] = item;
 
1766
}
 
1767
 
 
1768
template <class Item>
 
1769
void Array<Item>::prepend (const Item& item) {
 
1770
  insert (0, item);
 
1771
}
 
1772
 
 
1773
template <class Item>
 
1774
void Array<Item>::insert (long index, const Item& item) {
 
1775
  if (count >= size || ! data) {
 
1776
    grow (count);
 
1777
  }
 
1778
  for (long i = count; i > index; i--)
 
1779
    data[i] = data[i - 1];
 
1780
  data[index] = item;
 
1781
  count++;
 
1782
}
 
1783
 
 
1784
template <class Item>
 
1785
inline Item& Array<Item>::get (long index) {
 
1786
  if (index >= size || ! data) {
 
1787
    grow (index);
 
1788
  }
 
1789
  if (index >= count)
 
1790
    count = index + 1;
 
1791
  return data[index];
 
1792
}
 
1793
 
 
1794
template <class Item>
 
1795
inline Item& Array<Item>::operator[] (long index) {
 
1796
  return get (index);
 
1797
}
 
1798
 
 
1799
template <class Item>
 
1800
inline Item Array<Item>::fetch (long index) const {
 
1801
  assert(index < count && data);
 
1802
  return data[index];
 
1803
}
 
1804
 
 
1805
template <class Item>
 
1806
inline long Array<Item>::length () const {
 
1807
  return count;
 
1808
}
 
1809
 
 
1810
template <class Item>
 
1811
inline void Array<Item>::remove (long index) {
 
1812
  if (index < count && count > 0) {
 
1813
    for (long i = index; i < count - 1; i++)
 
1814
      data[i] = data[i + 1];
 
1815
    count--;
 
1816
  }
 
1817
}
1892
1818
 
1893
1819
#ifndef __puma
1894
1820
template <>
1895
1821
inline void Array<int>::reset () {
1896
 
   count = 0; 
 
1822
  count = 0; 
1897
1823
}
1898
1824
#endif
1899
1825
 
1900
1826
template <class Item>
1901
 
void Array<Item>::reset ()
1902
 
 {
1903
 
   if (data)
1904
 
      delete[] data;
1905
 
   count     = 0; 
1906
 
   size      = default_init_size;
1907
 
   increment = default_increment;
1908
 
   data      = new Item[size];
1909
 
 }
 
1827
void Array<Item>::reset () {
 
1828
  if (data)
 
1829
    delete[] data;
 
1830
    
 
1831
  count     = 0; 
 
1832
  size      = default_init_size;
 
1833
  increment = default_increment;
 
1834
  data      = new Item[size];
 
1835
}
1910
1836
 
1911
1837
template <class Item>
1912
 
inline Item& Array<Item>::lookup (long index) const
1913
 
 {
1914
 
   assert(index >= 0 && index < count);
1915
 
//   if (index >= count) index = count - 1; 
1916
 
//   if (index < 0)      index = 0;
1917
 
   return data[index];
1918
 
 }
 
1838
inline Item& Array<Item>::lookup (long index) const {
 
1839
  assert(index >= 0 && index < count);
 
1840
  return data[index];
 
1841
}
1919
1842
 
1920
1843
 
1921
1844
} // namespace Puma
1949
1872
  void remove (long idx)                   { Base::remove (idx); }
1950
1873
  void reset ()                            { Base::reset (); }
1951
1874
 
1952
 
  Item *&get (long idx)          { return (Item*&)Base::get (idx); }
1953
 
  Item *&operator[] (long idx)   { return (Item*&)Base::operator[] (idx); }
1954
 
  Item *fetch (long idx) const   { return (Item*)Base::fetch (idx); }
1955
 
  Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
1956
 
  long length () const           { return Base::length (); }
 
1875
  Item *&get (long idx)                    { return (Item*&)Base::get (idx); }
 
1876
  Item *&operator[] (long idx)             { return (Item*&)Base::operator[] (idx); }
 
1877
  Item *fetch (long idx) const             { return (Item*)Base::fetch (idx); }
 
1878
  Item *&lookup (long idx) const           { return (Item*&)Base::lookup (idx); }
 
1879
  long length () const                     { return Base::length (); }
1957
1880
};
1958
1881
 
1959
1882
 
1963
1886
 
1964
1887
#endif /* __array_h__ */
1965
1888
 
1966
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
1889
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
1967
1890
#include <assert.h>
1968
1891
 
1969
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
1892
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
1970
1893
namespace Puma {
1971
1894
 
1972
1895
 
1973
1896
 
1974
 
#line 1975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1897
#line 1898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
1975
1898
} // closed Puma
 
1899
class CCExprResolve;
 
1900
class CExprResolve;
1976
1901
class WinIfExists;
1977
1902
class WinImportHandler;
1978
1903
class WinMacros;
1979
 
class CMatchSyntax;
1980
 
class ExtGnu;
 
1904
class WinAsm;
 
1905
class WinDeclSpecs;
 
1906
class WinMemberExplSpec;
 
1907
class WinTypeKeywords;
 
1908
class WinFriend;
1981
1909
class ExtAC;
1982
1910
class ExtACBuilderCoupling;
1983
1911
class ExtACSyntaxCoupling;
1984
1912
class ExtACTree;
1985
1913
class ExtACKeywords;
1986
 
class WinAsm;
1987
 
class WinDeclSpecs;
1988
 
class WinMemberExplSpec;
1989
 
class WinTypeKeywords;
 
1914
class ExtGnu;
1990
1915
class PragmaOnceUnitState;
1991
1916
class PragmaOnce;
1992
 
class CCExprResolve;
1993
 
class CExprResolve;
 
1917
class CMatchSyntax;
1994
1918
namespace Puma {
1995
1919
 
1996
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
1920
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
1997
1921
class Token : public ListElement {
1998
 
#line 1999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
1922
#line 1923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
1923
  friend class ::CCExprResolve;
 
1924
  friend class ::CExprResolve;
1999
1925
  friend class ::WinIfExists;
2000
1926
  friend class ::WinImportHandler;
2001
1927
  friend class ::WinMacros;
2002
 
  friend class ::CMatchSyntax;
2003
 
  friend class ::ExtGnu;
 
1928
  friend class ::WinAsm;
 
1929
  friend class ::WinDeclSpecs;
 
1930
  friend class ::WinMemberExplSpec;
 
1931
  friend class ::WinTypeKeywords;
 
1932
  friend class ::WinFriend;
2004
1933
  friend class ::ExtAC;
2005
1934
  friend class ::ExtACBuilderCoupling;
2006
1935
  friend class ::ExtACSyntaxCoupling;
2007
1936
  friend class ::ExtACTree;
2008
1937
  friend class ::ExtACKeywords;
2009
 
  friend class ::WinAsm;
2010
 
  friend class ::WinDeclSpecs;
2011
 
  friend class ::WinMemberExplSpec;
2012
 
  friend class ::WinTypeKeywords;
 
1938
  friend class ::ExtGnu;
2013
1939
  friend class ::PragmaOnceUnitState;
2014
1940
  friend class ::PragmaOnce;
2015
 
  friend class ::CCExprResolve;
2016
 
  friend class ::CExprResolve;
 
1941
  friend class ::CMatchSyntax;
2017
1942
 
2018
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
1943
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2019
1944
 
2020
1945
  int _type, _real_type;
2021
1946
 
2022
1947
  Location _location;
2023
1948
  LanguageID _language;
2024
 
  DString _text;
 
1949
  const char *_text;
 
1950
  mutable DString _dtext;
2025
1951
 
2026
1952
  Array<int> *_cont_lines;
2027
1953
   
2062
1988
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
2063
1989
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
2064
1990
  
2065
 
  const DString &text () const     { return _text; }
 
1991
  const char *text () const;
 
1992
  DString &dtext () const;
2066
1993
  char *get_static_text () const;
2067
1994
  int type () const                 { return _type; }
2068
1995
  const Location &location () const { return _location; }
2139
2066
 
2140
2067
#endif /* __Token_h__ */
2141
2068
 
2142
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
2069
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
2143
2070
// This file is part of PUMA.
2144
2071
// Copyright (C) 1999-2003  The PUMA developer team.
2145
2072
//                                                                
2162
2089
#define __Builder_h__
2163
2090
 
2164
2091
 
2165
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
2092
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
2166
2093
// This file is part of PUMA.
2167
2094
// Copyright (C) 1999-2003  The PUMA developer team.
2168
2095
//                                                                
2185
2112
#define __error_collector_h__
2186
2113
 
2187
2114
 
2188
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2115
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2189
2116
// This file is part of PUMA.
2190
2117
// Copyright (C) 1999-2003  The PUMA developer team.
2191
2118
//                                                                
2220
2147
// messages or collect them for a later processing.
2221
2148
 
2222
2149
 
2223
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2150
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
2224
2151
// This file is part of PUMA.
2225
2152
// Copyright (C) 1999-2003  The PUMA developer team.
2226
2153
//                                                                
2248
2175
 
2249
2176
 
2250
2177
 
2251
 
#line 2252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2178
#line 2179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
2252
2179
} // closed Puma
 
2180
class CCExprResolve;
 
2181
class CExprResolve;
2253
2182
class WinIfExists;
2254
2183
class WinImportHandler;
2255
2184
class WinMacros;
2256
 
class CMatchSyntax;
2257
 
class ExtGnu;
 
2185
class WinAsm;
 
2186
class WinDeclSpecs;
 
2187
class WinMemberExplSpec;
 
2188
class WinTypeKeywords;
 
2189
class WinFriend;
2258
2190
class ExtAC;
2259
2191
class ExtACBuilderCoupling;
2260
2192
class ExtACSyntaxCoupling;
2261
2193
class ExtACTree;
2262
2194
class ExtACKeywords;
2263
 
class WinAsm;
2264
 
class WinDeclSpecs;
2265
 
class WinMemberExplSpec;
2266
 
class WinTypeKeywords;
 
2195
class ExtGnu;
2267
2196
class PragmaOnceUnitState;
2268
2197
class PragmaOnce;
2269
 
class CCExprResolve;
2270
 
class CExprResolve;
 
2198
class CMatchSyntax;
2271
2199
namespace Puma {
2272
2200
 
2273
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2201
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
2274
2202
class ErrorSeverity {
2275
 
#line 2276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2203
#line 2204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
2204
  friend class ::CCExprResolve;
 
2205
  friend class ::CExprResolve;
2276
2206
  friend class ::WinIfExists;
2277
2207
  friend class ::WinImportHandler;
2278
2208
  friend class ::WinMacros;
2279
 
  friend class ::CMatchSyntax;
2280
 
  friend class ::ExtGnu;
 
2209
  friend class ::WinAsm;
 
2210
  friend class ::WinDeclSpecs;
 
2211
  friend class ::WinMemberExplSpec;
 
2212
  friend class ::WinTypeKeywords;
 
2213
  friend class ::WinFriend;
2281
2214
  friend class ::ExtAC;
2282
2215
  friend class ::ExtACBuilderCoupling;
2283
2216
  friend class ::ExtACSyntaxCoupling;
2284
2217
  friend class ::ExtACTree;
2285
2218
  friend class ::ExtACKeywords;
2286
 
  friend class ::WinAsm;
2287
 
  friend class ::WinDeclSpecs;
2288
 
  friend class ::WinMemberExplSpec;
2289
 
  friend class ::WinTypeKeywords;
 
2219
  friend class ::ExtGnu;
2290
2220
  friend class ::PragmaOnceUnitState;
2291
2221
  friend class ::PragmaOnce;
2292
 
  friend class ::CCExprResolve;
2293
 
  friend class ::CExprResolve;
 
2222
  friend class ::CMatchSyntax;
2294
2223
 
2295
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2224
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
2296
2225
 
2297
2226
  unsigned short _severity;
2298
2227
  const char *_text;
2332
2261
 
2333
2262
#endif /* __error_severity_h__ */
2334
2263
 
2335
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2264
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2336
2265
namespace Puma {
2337
2266
 
2338
2267
 
2339
2268
 
2340
 
#line 2341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2269
#line 2270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
2341
2270
} // closed Puma
 
2271
class CCExprResolve;
 
2272
class CExprResolve;
2342
2273
class WinIfExists;
2343
2274
class WinImportHandler;
2344
2275
class WinMacros;
2345
 
class CMatchSyntax;
2346
 
class ExtGnu;
 
2276
class WinAsm;
 
2277
class WinDeclSpecs;
 
2278
class WinMemberExplSpec;
 
2279
class WinTypeKeywords;
 
2280
class WinFriend;
2347
2281
class ExtAC;
2348
2282
class ExtACBuilderCoupling;
2349
2283
class ExtACSyntaxCoupling;
2350
2284
class ExtACTree;
2351
2285
class ExtACKeywords;
2352
 
class WinAsm;
2353
 
class WinDeclSpecs;
2354
 
class WinMemberExplSpec;
2355
 
class WinTypeKeywords;
 
2286
class ExtGnu;
2356
2287
class PragmaOnceUnitState;
2357
2288
class PragmaOnce;
2358
 
class CCExprResolve;
2359
 
class CExprResolve;
 
2289
class CMatchSyntax;
2360
2290
namespace Puma {
2361
2291
 
2362
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2292
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2363
2293
class ErrorSink {
2364
 
#line 2365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2294
#line 2295 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
2295
  friend class ::CCExprResolve;
 
2296
  friend class ::CExprResolve;
2365
2297
  friend class ::WinIfExists;
2366
2298
  friend class ::WinImportHandler;
2367
2299
  friend class ::WinMacros;
2368
 
  friend class ::CMatchSyntax;
2369
 
  friend class ::ExtGnu;
 
2300
  friend class ::WinAsm;
 
2301
  friend class ::WinDeclSpecs;
 
2302
  friend class ::WinMemberExplSpec;
 
2303
  friend class ::WinTypeKeywords;
 
2304
  friend class ::WinFriend;
2370
2305
  friend class ::ExtAC;
2371
2306
  friend class ::ExtACBuilderCoupling;
2372
2307
  friend class ::ExtACSyntaxCoupling;
2373
2308
  friend class ::ExtACTree;
2374
2309
  friend class ::ExtACKeywords;
2375
 
  friend class ::WinAsm;
2376
 
  friend class ::WinDeclSpecs;
2377
 
  friend class ::WinMemberExplSpec;
2378
 
  friend class ::WinTypeKeywords;
 
2310
  friend class ::ExtGnu;
2379
2311
  friend class ::PragmaOnceUnitState;
2380
2312
  friend class ::PragmaOnce;
2381
 
  friend class ::CCExprResolve;
2382
 
  friend class ::CExprResolve;
 
2313
  friend class ::CMatchSyntax;
2383
2314
 
2384
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2315
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2385
2316
 
2386
2317
public:
2387
2318
  virtual ~ErrorSink () {}
2406
2337
 
2407
2338
#endif /* __error_sink_h__ */
2408
2339
 
2409
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
2340
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
2410
2341
#include <sstream> 
2411
2342
using namespace std;
2412
2343
 
2414
2345
 
2415
2346
 
2416
2347
 
2417
 
#line 2418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2348
#line 2349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
2418
2349
} // closed Puma
 
2350
class CCExprResolve;
 
2351
class CExprResolve;
2419
2352
class WinIfExists;
2420
2353
class WinImportHandler;
2421
2354
class WinMacros;
2422
 
class CMatchSyntax;
2423
 
class ExtGnu;
 
2355
class WinAsm;
 
2356
class WinDeclSpecs;
 
2357
class WinMemberExplSpec;
 
2358
class WinTypeKeywords;
 
2359
class WinFriend;
2424
2360
class ExtAC;
2425
2361
class ExtACBuilderCoupling;
2426
2362
class ExtACSyntaxCoupling;
2427
2363
class ExtACTree;
2428
2364
class ExtACKeywords;
2429
 
class WinAsm;
2430
 
class WinDeclSpecs;
2431
 
class WinMemberExplSpec;
2432
 
class WinTypeKeywords;
 
2365
class ExtGnu;
2433
2366
class PragmaOnceUnitState;
2434
2367
class PragmaOnce;
2435
 
class CCExprResolve;
2436
 
class CExprResolve;
 
2368
class CMatchSyntax;
2437
2369
namespace Puma {
2438
2370
 
2439
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
2371
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
2440
2372
class ErrorCollector : public ErrorSink {
2441
 
#line 2442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2373
#line 2374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
2374
  friend class ::CCExprResolve;
 
2375
  friend class ::CExprResolve;
2442
2376
  friend class ::WinIfExists;
2443
2377
  friend class ::WinImportHandler;
2444
2378
  friend class ::WinMacros;
2445
 
  friend class ::CMatchSyntax;
2446
 
  friend class ::ExtGnu;
 
2379
  friend class ::WinAsm;
 
2380
  friend class ::WinDeclSpecs;
 
2381
  friend class ::WinMemberExplSpec;
 
2382
  friend class ::WinTypeKeywords;
 
2383
  friend class ::WinFriend;
2447
2384
  friend class ::ExtAC;
2448
2385
  friend class ::ExtACBuilderCoupling;
2449
2386
  friend class ::ExtACSyntaxCoupling;
2450
2387
  friend class ::ExtACTree;
2451
2388
  friend class ::ExtACKeywords;
2452
 
  friend class ::WinAsm;
2453
 
  friend class ::WinDeclSpecs;
2454
 
  friend class ::WinMemberExplSpec;
2455
 
  friend class ::WinTypeKeywords;
 
2389
  friend class ::ExtGnu;
2456
2390
  friend class ::PragmaOnceUnitState;
2457
2391
  friend class ::PragmaOnce;
2458
 
  friend class ::CCExprResolve;
2459
 
  friend class ::CExprResolve;
 
2392
  friend class ::CMatchSyntax;
2460
2393
 
2461
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
2394
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
2462
2395
 
2463
2396
  class Msg {
2464
 
#line 2465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2397
#line 2398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
2398
  friend class ::CCExprResolve;
 
2399
  friend class ::CExprResolve;
2465
2400
  friend class ::WinIfExists;
2466
2401
  friend class ::WinImportHandler;
2467
2402
  friend class ::WinMacros;
2468
 
  friend class ::CMatchSyntax;
2469
 
  friend class ::ExtGnu;
 
2403
  friend class ::WinAsm;
 
2404
  friend class ::WinDeclSpecs;
 
2405
  friend class ::WinMemberExplSpec;
 
2406
  friend class ::WinTypeKeywords;
 
2407
  friend class ::WinFriend;
2470
2408
  friend class ::ExtAC;
2471
2409
  friend class ::ExtACBuilderCoupling;
2472
2410
  friend class ::ExtACSyntaxCoupling;
2473
2411
  friend class ::ExtACTree;
2474
2412
  friend class ::ExtACKeywords;
2475
 
  friend class ::WinAsm;
2476
 
  friend class ::WinDeclSpecs;
2477
 
  friend class ::WinMemberExplSpec;
2478
 
  friend class ::WinTypeKeywords;
 
2413
  friend class ::ExtGnu;
2479
2414
  friend class ::PragmaOnceUnitState;
2480
2415
  friend class ::PragmaOnce;
2481
 
  friend class ::CCExprResolve;
2482
 
  friend class ::CExprResolve;
 
2416
  friend class ::CMatchSyntax;
2483
2417
 
2484
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
2418
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
2485
2419
 
2486
2420
    ErrorSeverity _sev;
2487
2421
    Location _loc;
2536
2470
 
2537
2471
#endif /* __error_collector_h__ */
2538
2472
 
2539
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
2473
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PtrStack.h"
2540
2474
// This file is part of PUMA.
2541
2475
// Copyright (C) 1999-2003  The PUMA developer team.
2542
2476
//                                                                
2561
2495
// Stepped pointer stack.
2562
2496
 
2563
2497
 
2564
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
 
2498
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
2565
2499
// This file is part of PUMA.
2566
2500
// Copyright (C) 1999-2003  The PUMA developer team.
2567
2501
//                                                                
2584
2518
#define __stack_h__
2585
2519
 
2586
2520
 
2587
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
2588
 
namespace Puma {
2589
 
 
2590
 
 
2591
 
#line 2592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
2592
 
} // closed Puma
2593
 
class WinIfExists;
2594
 
class WinImportHandler;
2595
 
class WinMacros;
2596
 
class CMatchSyntax;
2597
 
class ExtGnu;
2598
 
class ExtAC;
2599
 
class ExtACBuilderCoupling;
2600
 
class ExtACSyntaxCoupling;
2601
 
class ExtACTree;
2602
 
class ExtACKeywords;
2603
 
class WinAsm;
2604
 
class WinDeclSpecs;
2605
 
class WinMemberExplSpec;
2606
 
class WinTypeKeywords;
2607
 
class PragmaOnceUnitState;
2608
 
class PragmaOnce;
2609
 
class CCExprResolve;
2610
 
class CExprResolve;
2611
 
namespace Puma {
2612
 
 
2613
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
 
2521
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
 
2522
namespace Puma {
 
2523
 
2614
2524
template <class Item>
2615
2525
class Stack : private Array<Item> {
2616
 
#line 2617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
2617
 
  friend class ::WinIfExists;
2618
 
  friend class ::WinImportHandler;
2619
 
  friend class ::WinMacros;
2620
 
  friend class ::CMatchSyntax;
2621
 
  friend class ::ExtGnu;
2622
 
  friend class ::ExtAC;
2623
 
  friend class ::ExtACBuilderCoupling;
2624
 
  friend class ::ExtACSyntaxCoupling;
2625
 
  friend class ::ExtACTree;
2626
 
  friend class ::ExtACKeywords;
2627
 
  friend class ::WinAsm;
2628
 
  friend class ::WinDeclSpecs;
2629
 
  friend class ::WinMemberExplSpec;
2630
 
  friend class ::WinTypeKeywords;
2631
 
  friend class ::PragmaOnceUnitState;
2632
 
  friend class ::PragmaOnce;
2633
 
  friend class ::CCExprResolve;
2634
 
  friend class ::CExprResolve;
2635
 
 
2636
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
2637
 
 
2638
2526
public:
2639
2527
  Stack (long is = 8192, long incr = 8192) :
2640
2528
    Array<Item> (is, incr) {}
2650
2538
 
2651
2539
#endif /* __stack_h__ */
2652
2540
 
2653
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
2541
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCStack.h"
2654
2542
// This file is part of PUMA.
2655
2543
// Copyright (C) 1999-2003  The PUMA developer team.
2656
2544
//                                                                
2673
2561
#define __bcstack_h__
2674
2562
 
2675
2563
 
2676
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
 
2564
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCList.h"
2677
2565
// This file is part of PUMA.
2678
2566
// Copyright (C) 1999-2003  The PUMA developer team.
2679
2567
//                                                                
2697
2585
 
2698
2586
namespace Puma {
2699
2587
 
2700
 
 
2701
 
#line 2702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
2702
 
} // closed Puma
2703
 
class WinIfExists;
2704
 
class WinImportHandler;
2705
 
class WinMacros;
2706
 
class CMatchSyntax;
2707
 
class ExtGnu;
2708
 
class ExtAC;
2709
 
class ExtACBuilderCoupling;
2710
 
class ExtACSyntaxCoupling;
2711
 
class ExtACTree;
2712
 
class ExtACKeywords;
2713
 
class WinAsm;
2714
 
class WinDeclSpecs;
2715
 
class WinMemberExplSpec;
2716
 
class WinTypeKeywords;
2717
 
class PragmaOnceUnitState;
2718
 
class PragmaOnce;
2719
 
class CCExprResolve;
2720
 
class CExprResolve;
2721
 
namespace Puma {
2722
 
 
2723
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
2724
2588
template <class Item, int BUCKET_SIZE = 32>
2725
2589
class BCList {
2726
 
#line 2727 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
2727
 
  friend class ::WinIfExists;
2728
 
  friend class ::WinImportHandler;
2729
 
  friend class ::WinMacros;
2730
 
  friend class ::CMatchSyntax;
2731
 
  friend class ::ExtGnu;
2732
 
  friend class ::ExtAC;
2733
 
  friend class ::ExtACBuilderCoupling;
2734
 
  friend class ::ExtACSyntaxCoupling;
2735
 
  friend class ::ExtACTree;
2736
 
  friend class ::ExtACKeywords;
2737
 
  friend class ::WinAsm;
2738
 
  friend class ::WinDeclSpecs;
2739
 
  friend class ::WinMemberExplSpec;
2740
 
  friend class ::WinTypeKeywords;
2741
 
  friend class ::PragmaOnceUnitState;
2742
 
  friend class ::PragmaOnce;
2743
 
  friend class ::CCExprResolve;
2744
 
  friend class ::CExprResolve;
2745
 
 
2746
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
2747
 
 
2748
2590
 
2749
2591
protected:
2750
2592
  struct Bucket {
2751
 
#line 2752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
2752
 
  friend class ::WinIfExists;
2753
 
  friend class ::WinImportHandler;
2754
 
  friend class ::WinMacros;
2755
 
  friend class ::CMatchSyntax;
2756
 
  friend class ::ExtGnu;
2757
 
  friend class ::ExtAC;
2758
 
  friend class ::ExtACBuilderCoupling;
2759
 
  friend class ::ExtACSyntaxCoupling;
2760
 
  friend class ::ExtACTree;
2761
 
  friend class ::ExtACKeywords;
2762
 
  friend class ::WinAsm;
2763
 
  friend class ::WinDeclSpecs;
2764
 
  friend class ::WinMemberExplSpec;
2765
 
  friend class ::WinTypeKeywords;
2766
 
  friend class ::PragmaOnceUnitState;
2767
 
  friend class ::PragmaOnce;
2768
 
  friend class ::CCExprResolve;
2769
 
  friend class ::CExprResolve;
2770
 
 
2771
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
2772
 
 
2773
2593
    Bucket *_prev;
2774
2594
    Bucket *_next;
2775
2595
    Item *_write_pos;
2804
2624
 
2805
2625
public:  
2806
2626
  class Iterator {
2807
 
#line 2808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
2808
 
  friend class ::WinIfExists;
2809
 
  friend class ::WinImportHandler;
2810
 
  friend class ::WinMacros;
2811
 
  friend class ::CMatchSyntax;
2812
 
  friend class ::ExtGnu;
2813
 
  friend class ::ExtAC;
2814
 
  friend class ::ExtACBuilderCoupling;
2815
 
  friend class ::ExtACSyntaxCoupling;
2816
 
  friend class ::ExtACTree;
2817
 
  friend class ::ExtACKeywords;
2818
 
  friend class ::WinAsm;
2819
 
  friend class ::WinDeclSpecs;
2820
 
  friend class ::WinMemberExplSpec;
2821
 
  friend class ::WinTypeKeywords;
2822
 
  friend class ::PragmaOnceUnitState;
2823
 
  friend class ::PragmaOnce;
2824
 
  friend class ::CCExprResolve;
2825
 
  friend class ::CExprResolve;
2826
 
 
2827
 
#line 62 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
2828
 
 
2829
2627
    friend class BCList<Item, BUCKET_SIZE>;
2830
2628
 
2831
2629
    Item *_item;
2923
2721
 
2924
2722
#endif /* __bclist_h__ */
2925
2723
 
2926
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
2927
 
namespace Puma {
2928
 
 
2929
 
 
2930
 
#line 2931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
2931
 
} // closed Puma
2932
 
class WinIfExists;
2933
 
class WinImportHandler;
2934
 
class WinMacros;
2935
 
class CMatchSyntax;
2936
 
class ExtGnu;
2937
 
class ExtAC;
2938
 
class ExtACBuilderCoupling;
2939
 
class ExtACSyntaxCoupling;
2940
 
class ExtACTree;
2941
 
class ExtACKeywords;
2942
 
class WinAsm;
2943
 
class WinDeclSpecs;
2944
 
class WinMemberExplSpec;
2945
 
class WinTypeKeywords;
2946
 
class PragmaOnceUnitState;
2947
 
class PragmaOnce;
2948
 
class CCExprResolve;
2949
 
class CExprResolve;
2950
 
namespace Puma {
2951
 
 
2952
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
2724
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
2725
namespace Puma {
 
2726
 
2953
2727
template <class Item, int BUCKET_SIZE = 32>
2954
2728
class BCStack : private BCList<Item, BUCKET_SIZE> {
2955
 
#line 2956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
2956
 
  friend class ::WinIfExists;
2957
 
  friend class ::WinImportHandler;
2958
 
  friend class ::WinMacros;
2959
 
  friend class ::CMatchSyntax;
2960
 
  friend class ::ExtGnu;
2961
 
  friend class ::ExtAC;
2962
 
  friend class ::ExtACBuilderCoupling;
2963
 
  friend class ::ExtACSyntaxCoupling;
2964
 
  friend class ::ExtACTree;
2965
 
  friend class ::ExtACKeywords;
2966
 
  friend class ::WinAsm;
2967
 
  friend class ::WinDeclSpecs;
2968
 
  friend class ::WinMemberExplSpec;
2969
 
  friend class ::WinTypeKeywords;
2970
 
  friend class ::PragmaOnceUnitState;
2971
 
  friend class ::PragmaOnce;
2972
 
  friend class ::CCExprResolve;
2973
 
  friend class ::CExprResolve;
2974
 
 
2975
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
2976
 
 
2977
2729
  typedef BCList<Item, BUCKET_SIZE> List;
2978
2730
public:
2979
2731
  typedef typename List::Iterator Iterator;
2986
2738
  BCStack () : _length (0L) {}
2987
2739
  long length () const { return _length; }
2988
2740
  void push (Item item) {
2989
 
    if (_tos != BCList<Item, BUCKET_SIZE>::end ())
 
2741
    if (_tos)
2990
2742
      ++_tos;
2991
 
    if (_tos == BCList<Item, BUCKET_SIZE>::end ()) 
 
2743
    if (! _tos) 
2992
2744
      _tos = add (item);
2993
2745
    else
2994
2746
      *_tos = item;
3004
2756
 
3005
2757
#endif /* __bcstack_h__ */
3006
2758
 
3007
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
3008
 
namespace Puma {
3009
 
 
3010
 
 
3011
 
 
3012
 
#line 3013 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3013
 
} // closed Puma
3014
 
class WinIfExists;
3015
 
class WinImportHandler;
3016
 
class WinMacros;
3017
 
class CMatchSyntax;
3018
 
class ExtGnu;
3019
 
class ExtAC;
3020
 
class ExtACBuilderCoupling;
3021
 
class ExtACSyntaxCoupling;
3022
 
class ExtACTree;
3023
 
class ExtACKeywords;
3024
 
class WinAsm;
3025
 
class WinDeclSpecs;
3026
 
class WinMemberExplSpec;
3027
 
class WinTypeKeywords;
3028
 
class PragmaOnceUnitState;
3029
 
class PragmaOnce;
3030
 
class CCExprResolve;
3031
 
class CExprResolve;
3032
 
namespace Puma {
3033
 
 
3034
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
2759
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
2760
namespace Puma {
 
2761
 
 
2762
 
3035
2763
template <class T>
3036
2764
class PtrStack
3037
2765
#ifndef __puma
3038
2766
: private Array<T*>
3039
2767
#endif
3040
2768
 {
3041
 
#line 3042 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3042
 
  friend class ::WinIfExists;
3043
 
  friend class ::WinImportHandler;
3044
 
  friend class ::WinMacros;
3045
 
  friend class ::CMatchSyntax;
3046
 
  friend class ::ExtGnu;
3047
 
  friend class ::ExtAC;
3048
 
  friend class ::ExtACBuilderCoupling;
3049
 
  friend class ::ExtACSyntaxCoupling;
3050
 
  friend class ::ExtACTree;
3051
 
  friend class ::ExtACKeywords;
3052
 
  friend class ::WinAsm;
3053
 
  friend class ::WinDeclSpecs;
3054
 
  friend class ::WinMemberExplSpec;
3055
 
  friend class ::WinTypeKeywords;
3056
 
  friend class ::PragmaOnceUnitState;
3057
 
  friend class ::PragmaOnce;
3058
 
  friend class ::CCExprResolve;
3059
 
  friend class ::CExprResolve;
3060
 
 
3061
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
3062
 
 
3063
2769
  BCStack<long, 8192> _Indices;   // start indices
3064
2770
  
3065
2771
public:
3200
2906
 
3201
2907
#endif /* __PtrStack_h__ */
3202
2908
 
3203
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2909
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3204
2910
 
3205
 
#line 3206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
2911
#line 2912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
3206
2912
 
3207
2913
#ifndef __ac_fwd_ExtACTree__
3208
2914
#define __ac_fwd_ExtACTree__
3209
2915
class ExtACTree;
3210
2916
namespace AC {
3211
2917
  template <class JoinPoint>
3212
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
3213
 
  template <class JoinPoint>
3214
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
3215
 
}
3216
 
#endif
3217
 
 
3218
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
3219
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
3220
 
#endif
3221
 
 
3222
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3223
 
 
3224
 
#line 3225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3225
 
 
3226
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3227
 
// This file is part of PUMA.
3228
 
// Copyright (C) 1999-2003  The PUMA developer team.
3229
 
//                                                                
3230
 
// This program is free software;  you can redistribute it and/or 
3231
 
// modify it under the terms of the GNU General Public License as 
3232
 
// published by the Free Software Foundation; either version 2 of 
3233
 
// the License, or (at your option) any later version.            
3234
 
//                                                                
3235
 
// This program is distributed in the hope that it will be useful,
3236
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
3237
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
3238
 
// GNU General Public License for more details.                   
3239
 
//                                                                
3240
 
// You should have received a copy of the GNU General Public      
3241
 
// License along with this program; if not, write to the Free     
3242
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
3243
 
// MA  02111-1307  USA                                            
3244
 
 
3245
 
#ifndef __ExtACTree_ah__
3246
 
#define __ExtACTree_ah__
3247
 
 
3248
 
// TODO:
3249
 
// this shall be introduced by the ExtAC aspect as soon as the include cycle
3250
 
// problem is solved!
3251
 
 
3252
 
namespace Puma {
3253
 
  class CTree;
3254
 
}
3255
 
 
3256
 
using namespace Puma;
3257
 
 
3258
 
 
3259
 
#line 3260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3260
 
class WinIfExists;
3261
 
class WinImportHandler;
3262
 
class WinMacros;
3263
 
class CMatchSyntax;
3264
 
class ExtGnu;
3265
 
class ExtAC;
3266
 
class ExtACBuilderCoupling;
3267
 
class ExtACSyntaxCoupling;
3268
 
class ExtACKeywords;
3269
 
class WinAsm;
3270
 
class WinDeclSpecs;
3271
 
class WinMemberExplSpec;
3272
 
class WinTypeKeywords;
3273
 
class PragmaOnceUnitState;
3274
 
class PragmaOnce;
3275
 
class CCExprResolve;
3276
 
class CExprResolve;
3277
 
 
3278
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3279
 
class ExtACTree {
3280
 
#line 3281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3281
 
 
3282
 
public:
3283
 
  static ExtACTree *aspectof () {
3284
 
    static ExtACTree __instance;
3285
 
    return &__instance;
3286
 
  }
3287
 
  static ExtACTree *aspectOf () {
3288
 
    return aspectof ();
3289
 
  }
3290
 
private:
3291
 
 
3292
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3293
 
 
3294
 
#line 3295 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3295
 
  friend class ::WinIfExists;
3296
 
  friend class ::WinImportHandler;
3297
 
  friend class ::WinMacros;
3298
 
  friend class ::CMatchSyntax;
3299
 
  friend class ::ExtGnu;
3300
 
  friend class ::ExtAC;
3301
 
  friend class ::ExtACBuilderCoupling;
3302
 
  friend class ::ExtACSyntaxCoupling;
3303
 
  friend class ::ExtACKeywords;
3304
 
  friend class ::WinAsm;
3305
 
  friend class ::WinDeclSpecs;
3306
 
  friend class ::WinMemberExplSpec;
3307
 
  friend class ::WinTypeKeywords;
3308
 
  friend class ::PragmaOnceUnitState;
3309
 
  friend class ::PragmaOnce;
3310
 
  friend class ::CCExprResolve;
3311
 
  friend class ::CExprResolve;
3312
 
 
3313
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3314
 
 
3315
 
  
3316
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3317
 
 
3318
 
  
3319
 
  // implemented in a separate .cc file, because Builder.h is needed!
3320
 
  void delete_tree (CTree *t);
3321
 
  
3322
 
  
3323
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3324
 
 
3325
 
  
3326
 
  
3327
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3328
 
 
3329
 
public: template<class JoinPoint> void __a0_after 
3330
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3331
 
 
3332
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3333
 
(JoinPoint *tjp)
3334
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3335
 
 {
3336
 
#line 3337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3337
 
 
3338
 
  typedef typename JoinPoint::That __JP_That;
3339
 
  typedef typename JoinPoint::Target __JP_Target;
3340
 
  typedef typename JoinPoint::Result __JP_Result;
3341
 
 
3342
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3343
 
 
3344
 
    tjp->that ()->_intro_members = 0;
3345
 
  }
3346
 
#line 3347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3347
 
 
3348
 
private:
3349
 
 
3350
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3351
 
 
3352
 
  
3353
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3354
 
 
3355
 
public: template<class JoinPoint> void __a1_before 
3356
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3357
 
 
3358
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3359
 
(JoinPoint *tjp)
3360
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3361
 
 {
3362
 
#line 3363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3363
 
 
3364
 
  typedef typename JoinPoint::That __JP_That;
3365
 
  typedef typename JoinPoint::Target __JP_Target;
3366
 
  typedef typename JoinPoint::Result __JP_Result;
3367
 
 
3368
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3369
 
 
3370
 
    delete_tree (tjp->that ()->_intro_members);
3371
 
  }
3372
 
#line 3373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3373
 
 
3374
 
private:
3375
 
 
3376
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3377
 
 
3378
 
};
3379
 
#line 3380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3380
 
 
3381
 
namespace AC {
3382
 
  template <class JoinPoint>
3383
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
3384
 
    ::ExtACTree::aspectof()->__a0_after (tjp);
3385
 
  }
3386
 
  template <class JoinPoint>
3387
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
3388
 
    ::ExtACTree::aspectof()->__a1_before (tjp);
3389
 
  }
3390
 
3391
 
 
3392
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3393
 
 
3394
 
 
3395
 
#endif // __ExtACTree_ah__
3396
 
 
3397
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3398
 
// This file is part of PUMA.
3399
 
// Copyright (C) 1999-2003  The PUMA developer team.
3400
 
//                                                                
3401
 
// This program is free software;  you can redistribute it and/or 
3402
 
// modify it under the terms of the GNU General Public License as 
3403
 
// published by the Free Software Foundation; either version 2 of 
3404
 
// the License, or (at your option) any later version.            
3405
 
//                                                                
3406
 
// This program is distributed in the hope that it will be useful,
3407
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
3408
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
3409
 
// GNU General Public License for more details.                   
3410
 
//                                                                
3411
 
// You should have received a copy of the GNU General Public      
3412
 
// License along with this program; if not, write to the Free     
3413
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
3414
 
// MA  02111-1307  USA                                            
3415
 
 
3416
 
#ifndef __CCExprResolveH_ah__
3417
 
#define __CCExprResolveH_ah__
3418
 
 
3419
 
// This aspect inserts resolve member functions into all syntax tree classes
3420
 
// that represent expressions. As the function is virtual, an efficient
3421
 
// run-time switch over the node type is implemented.
3422
 
 
3423
 
namespace Puma {
3424
 
  class CCSemExpr;
3425
 
}
3426
 
 
3427
 
using namespace Puma;
3428
 
 
3429
 
namespace Puma {
3430
 
  
3431
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3432
 
 
3433
 
  
3434
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3435
 
 
3436
 
}
3437
 
 
3438
 
 
3439
 
#line 3440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3440
 
class WinIfExists;
3441
 
class WinImportHandler;
3442
 
class WinMacros;
3443
 
class CMatchSyntax;
3444
 
class ExtGnu;
3445
 
class ExtAC;
3446
 
class ExtACBuilderCoupling;
3447
 
class ExtACSyntaxCoupling;
3448
 
class ExtACTree;
3449
 
class ExtACKeywords;
3450
 
class WinAsm;
3451
 
class WinDeclSpecs;
3452
 
class WinMemberExplSpec;
3453
 
class WinTypeKeywords;
3454
 
class PragmaOnceUnitState;
3455
 
class PragmaOnce;
3456
 
class CExprResolve;
3457
 
 
3458
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3459
 
class CCExprResolve {
3460
 
#line 3461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3461
 
 
3462
 
public:
3463
 
  static CCExprResolve *aspectof () {
3464
 
    static CCExprResolve __instance;
3465
 
    return &__instance;
3466
 
  }
3467
 
  static CCExprResolve *aspectOf () {
3468
 
    return aspectof ();
3469
 
  }
3470
 
private:
3471
 
 
3472
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3473
 
 
3474
 
#line 3475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3475
 
  friend class ::WinIfExists;
3476
 
  friend class ::WinImportHandler;
3477
 
  friend class ::WinMacros;
3478
 
  friend class ::CMatchSyntax;
3479
 
  friend class ::ExtGnu;
3480
 
  friend class ::ExtAC;
3481
 
  friend class ::ExtACBuilderCoupling;
3482
 
  friend class ::ExtACSyntaxCoupling;
3483
 
  friend class ::ExtACTree;
3484
 
  friend class ::ExtACKeywords;
3485
 
  friend class ::WinAsm;
3486
 
  friend class ::WinDeclSpecs;
3487
 
  friend class ::WinMemberExplSpec;
3488
 
  friend class ::WinTypeKeywords;
3489
 
  friend class ::PragmaOnceUnitState;
3490
 
  friend class ::PragmaOnce;
3491
 
  friend class ::CExprResolve;
3492
 
 
3493
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3494
 
 
3495
 
  
3496
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3497
 
 
3498
 
  
3499
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3500
 
 
3501
 
};
3502
 
#line 3503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3503
 
 
3504
 
namespace AC {
3505
 
3506
 
 
3507
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3508
 
 
3509
 
 
3510
 
#endif /* __CCExprResolveH_ah__ */
3511
 
 
3512
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3513
 
// This file is part of PUMA.
3514
 
// Copyright (C) 1999-2003  The PUMA developer team.
3515
 
//                                                                
3516
 
// This program is free software;  you can redistribute it and/or 
3517
 
// modify it under the terms of the GNU General Public License as 
3518
 
// published by the Free Software Foundation; either version 2 of 
3519
 
// the License, or (at your option) any later version.            
3520
 
//                                                                
3521
 
// This program is distributed in the hope that it will be useful,
3522
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
3523
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
3524
 
// GNU General Public License for more details.                   
3525
 
//                                                                
3526
 
// You should have received a copy of the GNU General Public      
3527
 
// License along with this program; if not, write to the Free     
3528
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
3529
 
// MA  02111-1307  USA                                            
3530
 
 
3531
 
#ifndef __CExprResolveH_ah__
3532
 
#define __CExprResolveH_ah__
3533
 
 
3534
 
// This aspect inserts resolve member functions into all syntax tree classes
3535
 
// that represent expressions. As the function is virtual, an efficient
3536
 
// run-time switch over the node type is implemented.
3537
 
 
3538
 
namespace Puma {
3539
 
  class CSemExpr;
3540
 
}
3541
 
 
3542
 
using namespace Puma;
3543
 
 
3544
 
namespace Puma {
3545
 
  
3546
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3547
 
 
3548
 
  
3549
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3550
 
 
3551
 
}
3552
 
 
3553
 
 
3554
 
#line 3555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3555
 
class WinIfExists;
3556
 
class WinImportHandler;
3557
 
class WinMacros;
3558
 
class CMatchSyntax;
3559
 
class ExtGnu;
3560
 
class ExtAC;
3561
 
class ExtACBuilderCoupling;
3562
 
class ExtACSyntaxCoupling;
3563
 
class ExtACTree;
3564
 
class ExtACKeywords;
3565
 
class WinAsm;
3566
 
class WinDeclSpecs;
3567
 
class WinMemberExplSpec;
3568
 
class WinTypeKeywords;
3569
 
class PragmaOnceUnitState;
3570
 
class PragmaOnce;
3571
 
class CCExprResolve;
3572
 
 
3573
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3574
 
class CExprResolve {
3575
 
#line 3576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3576
 
 
3577
 
public:
3578
 
  static CExprResolve *aspectof () {
3579
 
    static CExprResolve __instance;
3580
 
    return &__instance;
3581
 
  }
3582
 
  static CExprResolve *aspectOf () {
3583
 
    return aspectof ();
3584
 
  }
3585
 
private:
3586
 
 
3587
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3588
 
 
3589
 
#line 3590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3590
 
  friend class ::WinIfExists;
3591
 
  friend class ::WinImportHandler;
3592
 
  friend class ::WinMacros;
3593
 
  friend class ::CMatchSyntax;
3594
 
  friend class ::ExtGnu;
3595
 
  friend class ::ExtAC;
3596
 
  friend class ::ExtACBuilderCoupling;
3597
 
  friend class ::ExtACSyntaxCoupling;
3598
 
  friend class ::ExtACTree;
3599
 
  friend class ::ExtACKeywords;
3600
 
  friend class ::WinAsm;
3601
 
  friend class ::WinDeclSpecs;
3602
 
  friend class ::WinMemberExplSpec;
3603
 
  friend class ::WinTypeKeywords;
3604
 
  friend class ::PragmaOnceUnitState;
3605
 
  friend class ::PragmaOnce;
3606
 
  friend class ::CCExprResolve;
3607
 
 
3608
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3609
 
 
3610
 
  
3611
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3612
 
 
3613
 
  
3614
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3615
 
 
3616
 
};
3617
 
#line 3618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
3618
 
 
3619
 
namespace AC {
3620
 
3621
 
 
3622
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3623
 
 
3624
 
 
3625
 
#endif /* __CExprResolveH_ah__ */
3626
 
 
3627
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3628
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
3629
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
3630
 
 
3631
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2918
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
2919
  template <class JoinPoint>
 
2920
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
2921
}
 
2922
#endif
 
2923
 
 
2924
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
2925
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
2926
#endif
 
2927
 
 
2928
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3632
2929
// This file is part of PUMA.
3633
2930
// Copyright (C) 1999-2003  The PUMA developer team.
3634
2931
//                                                                
3673
2970
class     CT_DefaultStmt;
3674
2971
class     CT_TryStmt;
3675
2972
class   CT_Expression;
 
2973
class     CT_Call;
 
2974
class       CT_CallExpr;
 
2975
class       CT_ImplicitCall;
3676
2976
class     CT_ThrowExpr;
3677
2977
class     CT_NewExpr;
3678
2978
class     CT_DeleteExpr;
3693
2993
class     CT_IfThenExpr;
3694
2994
class     CT_CmpdLiteral;
3695
2995
class     CT_IndexExpr;
3696
 
class     CT_CallExpr;
3697
2996
class     CT_CastExpr;
3698
2997
class     CT_StaticCast;
3699
2998
class       CT_ConstCast;
3740
3039
class     CT_NamespaceDef;
3741
3040
class     CT_NamespaceAliasDef;
3742
3041
class     CT_UsingDirective;
 
3042
class     CT_Condition;
3743
3043
class   CT_List;
3744
3044
class     CT_CmpdStmt;
3745
3045
class     CT_DeclSpecSeq;
3770
3070
class     CT_TemplateArgList;
3771
3071
class   CT_Token;
3772
3072
class   CT_Error;
3773
 
class   CT_Condition;
3774
3073
class   CT_BaseSpec;
3775
3074
class   CT_AccessSpec;
3776
3075
class   CT_ArrayDelimiter;
3783
3082
} // namespace Puma
3784
3083
 
3785
3084
 
3786
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3085
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
3787
3086
// This file is part of PUMA.
3788
3087
// Copyright (C) 1999-2003  The PUMA developer team.
3789
3088
//                                                                
3811
3110
class CObjectInfo;
3812
3111
 
3813
3112
 
3814
 
#line 3815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3113
#line 3114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
3815
3114
} // closed Puma
 
3115
class CCExprResolve;
 
3116
class CExprResolve;
3816
3117
class WinIfExists;
3817
3118
class WinImportHandler;
3818
3119
class WinMacros;
3819
 
class CMatchSyntax;
3820
 
class ExtGnu;
 
3120
class WinAsm;
 
3121
class WinDeclSpecs;
 
3122
class WinMemberExplSpec;
 
3123
class WinTypeKeywords;
 
3124
class WinFriend;
3821
3125
class ExtAC;
3822
3126
class ExtACBuilderCoupling;
3823
3127
class ExtACSyntaxCoupling;
3824
3128
class ExtACTree;
3825
3129
class ExtACKeywords;
3826
 
class WinAsm;
3827
 
class WinDeclSpecs;
3828
 
class WinMemberExplSpec;
3829
 
class WinTypeKeywords;
 
3130
class ExtGnu;
3830
3131
class PragmaOnceUnitState;
3831
3132
class PragmaOnce;
3832
 
class CCExprResolve;
3833
 
class CExprResolve;
 
3133
class CMatchSyntax;
3834
3134
namespace Puma {
3835
3135
 
3836
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3136
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
3837
3137
class CSemObject {
3838
 
#line 3839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3138
#line 3139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
3139
  friend class ::CCExprResolve;
 
3140
  friend class ::CExprResolve;
3839
3141
  friend class ::WinIfExists;
3840
3142
  friend class ::WinImportHandler;
3841
3143
  friend class ::WinMacros;
3842
 
  friend class ::CMatchSyntax;
3843
 
  friend class ::ExtGnu;
 
3144
  friend class ::WinAsm;
 
3145
  friend class ::WinDeclSpecs;
 
3146
  friend class ::WinMemberExplSpec;
 
3147
  friend class ::WinTypeKeywords;
 
3148
  friend class ::WinFriend;
3844
3149
  friend class ::ExtAC;
3845
3150
  friend class ::ExtACBuilderCoupling;
3846
3151
  friend class ::ExtACSyntaxCoupling;
3847
3152
  friend class ::ExtACTree;
3848
3153
  friend class ::ExtACKeywords;
3849
 
  friend class ::WinAsm;
3850
 
  friend class ::WinDeclSpecs;
3851
 
  friend class ::WinMemberExplSpec;
3852
 
  friend class ::WinTypeKeywords;
 
3154
  friend class ::ExtGnu;
3853
3155
  friend class ::PragmaOnceUnitState;
3854
3156
  friend class ::PragmaOnce;
3855
 
  friend class ::CCExprResolve;
3856
 
  friend class ::CExprResolve;
 
3157
  friend class ::CMatchSyntax;
3857
3158
 
3858
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3159
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
3859
3160
 
3860
3161
  CObjectInfo *_obj;
3861
3162
 
3870
3171
 
3871
3172
#endif /* __CSemObject_h__ */
3872
3173
 
3873
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3174
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
3874
3175
// This file is part of PUMA.
3875
3176
// Copyright (C) 1999-2003  The PUMA developer team.
3876
3177
//                                                                
3898
3199
class CStructure;
3899
3200
 
3900
3201
 
3901
 
#line 3902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3202
#line 3203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
3902
3203
} // closed Puma
 
3204
class CCExprResolve;
 
3205
class CExprResolve;
3903
3206
class WinIfExists;
3904
3207
class WinImportHandler;
3905
3208
class WinMacros;
3906
 
class CMatchSyntax;
3907
 
class ExtGnu;
 
3209
class WinAsm;
 
3210
class WinDeclSpecs;
 
3211
class WinMemberExplSpec;
 
3212
class WinTypeKeywords;
 
3213
class WinFriend;
3908
3214
class ExtAC;
3909
3215
class ExtACBuilderCoupling;
3910
3216
class ExtACSyntaxCoupling;
3911
3217
class ExtACTree;
3912
3218
class ExtACKeywords;
3913
 
class WinAsm;
3914
 
class WinDeclSpecs;
3915
 
class WinMemberExplSpec;
3916
 
class WinTypeKeywords;
 
3219
class ExtGnu;
3917
3220
class PragmaOnceUnitState;
3918
3221
class PragmaOnce;
3919
 
class CCExprResolve;
3920
 
class CExprResolve;
 
3222
class CMatchSyntax;
3921
3223
namespace Puma {
3922
3224
 
3923
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3225
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
3924
3226
class CSemScope {
3925
 
#line 3926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3227
#line 3228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
3228
  friend class ::CCExprResolve;
 
3229
  friend class ::CExprResolve;
3926
3230
  friend class ::WinIfExists;
3927
3231
  friend class ::WinImportHandler;
3928
3232
  friend class ::WinMacros;
3929
 
  friend class ::CMatchSyntax;
3930
 
  friend class ::ExtGnu;
 
3233
  friend class ::WinAsm;
 
3234
  friend class ::WinDeclSpecs;
 
3235
  friend class ::WinMemberExplSpec;
 
3236
  friend class ::WinTypeKeywords;
 
3237
  friend class ::WinFriend;
3931
3238
  friend class ::ExtAC;
3932
3239
  friend class ::ExtACBuilderCoupling;
3933
3240
  friend class ::ExtACSyntaxCoupling;
3934
3241
  friend class ::ExtACTree;
3935
3242
  friend class ::ExtACKeywords;
3936
 
  friend class ::WinAsm;
3937
 
  friend class ::WinDeclSpecs;
3938
 
  friend class ::WinMemberExplSpec;
3939
 
  friend class ::WinTypeKeywords;
 
3243
  friend class ::ExtGnu;
3940
3244
  friend class ::PragmaOnceUnitState;
3941
3245
  friend class ::PragmaOnce;
3942
 
  friend class ::CCExprResolve;
3943
 
  friend class ::CExprResolve;
 
3246
  friend class ::CMatchSyntax;
3944
3247
 
3945
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3248
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
3946
3249
 
3947
3250
  CStructure *_scope;
3948
3251
 
3957
3260
 
3958
3261
#endif /* __CSemScope_h__ */
3959
3262
 
3960
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
3263
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3961
3264
// This file is part of PUMA.
3962
3265
// Copyright (C) 1999-2003  The PUMA developer team.
3963
3266
//                                                                
3980
3283
#define __CSemValue_h__
3981
3284
 
3982
3285
 
3983
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3286
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
3984
3287
// This file is part of PUMA.
3985
3288
// Copyright (C) 1999-2003  The PUMA developer team.
3986
3289
//                                                                
4003
3306
#define __CExprValue_h__
4004
3307
 
4005
3308
 
4006
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3309
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
4007
3310
using std::ostream;
4008
3311
 
4009
3312
namespace Puma {
4015
3318
class CWStrLiteral;
4016
3319
 
4017
3320
 
4018
 
#line 4019 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3321
#line 3322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
4019
3322
} // closed Puma
 
3323
class CCExprResolve;
 
3324
class CExprResolve;
4020
3325
class WinIfExists;
4021
3326
class WinImportHandler;
4022
3327
class WinMacros;
4023
 
class CMatchSyntax;
4024
 
class ExtGnu;
 
3328
class WinAsm;
 
3329
class WinDeclSpecs;
 
3330
class WinMemberExplSpec;
 
3331
class WinTypeKeywords;
 
3332
class WinFriend;
4025
3333
class ExtAC;
4026
3334
class ExtACBuilderCoupling;
4027
3335
class ExtACSyntaxCoupling;
4028
3336
class ExtACTree;
4029
3337
class ExtACKeywords;
4030
 
class WinAsm;
4031
 
class WinDeclSpecs;
4032
 
class WinMemberExplSpec;
4033
 
class WinTypeKeywords;
 
3338
class ExtGnu;
4034
3339
class PragmaOnceUnitState;
4035
3340
class PragmaOnce;
4036
 
class CCExprResolve;
4037
 
class CExprResolve;
 
3341
class CMatchSyntax;
4038
3342
namespace Puma {
4039
3343
 
4040
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3344
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
4041
3345
class CExprValue {
4042
 
#line 4043 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3346
#line 3347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
3347
  friend class ::CCExprResolve;
 
3348
  friend class ::CExprResolve;
4043
3349
  friend class ::WinIfExists;
4044
3350
  friend class ::WinImportHandler;
4045
3351
  friend class ::WinMacros;
4046
 
  friend class ::CMatchSyntax;
4047
 
  friend class ::ExtGnu;
 
3352
  friend class ::WinAsm;
 
3353
  friend class ::WinDeclSpecs;
 
3354
  friend class ::WinMemberExplSpec;
 
3355
  friend class ::WinTypeKeywords;
 
3356
  friend class ::WinFriend;
4048
3357
  friend class ::ExtAC;
4049
3358
  friend class ::ExtACBuilderCoupling;
4050
3359
  friend class ::ExtACSyntaxCoupling;
4051
3360
  friend class ::ExtACTree;
4052
3361
  friend class ::ExtACKeywords;
4053
 
  friend class ::WinAsm;
4054
 
  friend class ::WinDeclSpecs;
4055
 
  friend class ::WinMemberExplSpec;
4056
 
  friend class ::WinTypeKeywords;
 
3362
  friend class ::ExtGnu;
4057
3363
  friend class ::PragmaOnceUnitState;
4058
3364
  friend class ::PragmaOnce;
4059
 
  friend class ::CCExprResolve;
4060
 
  friend class ::CExprResolve;
 
3365
  friend class ::CMatchSyntax;
4061
3366
 
4062
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3367
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
4063
3368
 
4064
3369
  CTypeInfo *_type;
4065
3370
  
4086
3391
 
4087
3392
#endif /* __CExprValue_h__ */
4088
3393
 
4089
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
3394
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
4090
3395
// This file is part of PUMA.
4091
3396
// Copyright (C) 1999-2003  The PUMA developer team.
4092
3397
//                                                                
4109
3414
#define __CTypeInfo_h__
4110
3415
 
4111
3416
 
4112
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
3417
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
4113
3418
namespace Puma {
4114
3419
 
4115
3420
 
4137
3442
class CT_ExprList;
4138
3443
class CObjectInfo;
4139
3444
class CScopeInfo;
 
3445
class CTemplateParamInfo;
4140
3446
//class ostream;
4141
3447
 
4142
3448
 
4143
 
#line 4144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3449
#line 3450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
4144
3450
} // closed Puma
 
3451
class CCExprResolve;
 
3452
class CExprResolve;
4145
3453
class WinIfExists;
4146
3454
class WinImportHandler;
4147
3455
class WinMacros;
4148
 
class CMatchSyntax;
4149
 
class ExtGnu;
 
3456
class WinAsm;
 
3457
class WinDeclSpecs;
 
3458
class WinMemberExplSpec;
 
3459
class WinTypeKeywords;
 
3460
class WinFriend;
4150
3461
class ExtAC;
4151
3462
class ExtACBuilderCoupling;
4152
3463
class ExtACSyntaxCoupling;
4153
3464
class ExtACTree;
4154
3465
class ExtACKeywords;
4155
 
class WinAsm;
4156
 
class WinDeclSpecs;
4157
 
class WinMemberExplSpec;
4158
 
class WinTypeKeywords;
 
3466
class ExtGnu;
4159
3467
class PragmaOnceUnitState;
4160
3468
class PragmaOnce;
4161
 
class CCExprResolve;
4162
 
class CExprResolve;
 
3469
class CMatchSyntax;
4163
3470
namespace Puma {
4164
3471
 
4165
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
3472
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
4166
3473
class CTypeInfo : public Printable {
4167
 
#line 4168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3474
#line 3475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
3475
  friend class ::CCExprResolve;
 
3476
  friend class ::CExprResolve;
4168
3477
  friend class ::WinIfExists;
4169
3478
  friend class ::WinImportHandler;
4170
3479
  friend class ::WinMacros;
4171
 
  friend class ::CMatchSyntax;
4172
 
  friend class ::ExtGnu;
 
3480
  friend class ::WinAsm;
 
3481
  friend class ::WinDeclSpecs;
 
3482
  friend class ::WinMemberExplSpec;
 
3483
  friend class ::WinTypeKeywords;
 
3484
  friend class ::WinFriend;
4173
3485
  friend class ::ExtAC;
4174
3486
  friend class ::ExtACBuilderCoupling;
4175
3487
  friend class ::ExtACSyntaxCoupling;
4176
3488
  friend class ::ExtACTree;
4177
3489
  friend class ::ExtACKeywords;
4178
 
  friend class ::WinAsm;
4179
 
  friend class ::WinDeclSpecs;
4180
 
  friend class ::WinMemberExplSpec;
4181
 
  friend class ::WinTypeKeywords;
 
3490
  friend class ::ExtGnu;
4182
3491
  friend class ::PragmaOnceUnitState;
4183
3492
  friend class ::PragmaOnce;
4184
 
  friend class ::CCExprResolve;
4185
 
  friend class ::CExprResolve;
 
3493
  friend class ::CMatchSyntax;
4186
3494
 
4187
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
3495
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
4188
3496
 
4189
3497
  // needed for type printing
4190
3498
  enum PrintState {
4192
3500
    PRINT_PRE = 1,  // printing a declarator prefix like '*' or '&'
4193
3501
    PRINT_ABS = 2,  // printing absolute names
4194
3502
    PRINT_TPL = 4,  // printing template argument list
4195
 
    PRINT_TDN = 8   // print typedef names instead of defined type
 
3503
    PRINT_TDN = 8,  // print typedef names instead of defined type
 
3504
    PRINT_ELA = 16  // print elaborated type specifiers (struct, enum, union)
4196
3505
  };
4197
3506
 
4198
3507
public:
4253
3562
  bool operator !=(const CTypeInfo &) const;
4254
3563
  
4255
3564
  void print (ostream& os) const;
4256
 
  void TypeText (ostream &, const char * = (const char*)0,
4257
 
                 bool abs = false, bool tdef = false) const;
 
3565
  void TypeText (ostream &, const char *name = (const char*)0,
 
3566
                 bool abs = false, bool tdef = false, 
 
3567
                 bool elaborated_type_spec = false) const;
4258
3568
  long int Dimension () const;
4259
3569
  
4260
3570
  long int Size () const;
4386
3696
  void Mangled (ostream &) const;
4387
3697
 
4388
3698
private:
 
3699
  bool equalTemplateParams (CTemplateParamInfo *p1, CTemplateParamInfo *p2) const;
4389
3700
  void TypeText (char, ostream &, const char * = (const char*)0) const;
4390
3701
  void printName (char, ostream &, CObjectInfo *) const;
4391
3702
  void printScope (char, ostream &, CObjectInfo *) const;
4397
3708
 
4398
3709
 
4399
3710
 
4400
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
3711
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
4401
3712
// This file is part of PUMA.
4402
3713
// Copyright (C) 1999-2003  The PUMA developer team.
4403
3714
//                                                                
4428
3739
 
4429
3740
 
4430
3741
 
4431
 
#line 4432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3742
#line 3743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
4432
3743
} // closed Puma
 
3744
class CCExprResolve;
 
3745
class CExprResolve;
4433
3746
class WinIfExists;
4434
3747
class WinImportHandler;
4435
3748
class WinMacros;
4436
 
class CMatchSyntax;
4437
 
class ExtGnu;
 
3749
class WinAsm;
 
3750
class WinDeclSpecs;
 
3751
class WinMemberExplSpec;
 
3752
class WinTypeKeywords;
 
3753
class WinFriend;
4438
3754
class ExtAC;
4439
3755
class ExtACBuilderCoupling;
4440
3756
class ExtACSyntaxCoupling;
4441
3757
class ExtACTree;
4442
3758
class ExtACKeywords;
4443
 
class WinAsm;
4444
 
class WinDeclSpecs;
4445
 
class WinMemberExplSpec;
4446
 
class WinTypeKeywords;
 
3759
class ExtGnu;
4447
3760
class PragmaOnceUnitState;
4448
3761
class PragmaOnce;
4449
 
class CCExprResolve;
4450
 
class CExprResolve;
 
3762
class CMatchSyntax;
4451
3763
namespace Puma {
4452
3764
 
4453
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
3765
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
4454
3766
class CTypePrimitive : public CTypeInfo {
4455
 
#line 4456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3767
#line 3768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
3768
  friend class ::CCExprResolve;
 
3769
  friend class ::CExprResolve;
4456
3770
  friend class ::WinIfExists;
4457
3771
  friend class ::WinImportHandler;
4458
3772
  friend class ::WinMacros;
4459
 
  friend class ::CMatchSyntax;
4460
 
  friend class ::ExtGnu;
 
3773
  friend class ::WinAsm;
 
3774
  friend class ::WinDeclSpecs;
 
3775
  friend class ::WinMemberExplSpec;
 
3776
  friend class ::WinTypeKeywords;
 
3777
  friend class ::WinFriend;
4461
3778
  friend class ::ExtAC;
4462
3779
  friend class ::ExtACBuilderCoupling;
4463
3780
  friend class ::ExtACSyntaxCoupling;
4464
3781
  friend class ::ExtACTree;
4465
3782
  friend class ::ExtACKeywords;
4466
 
  friend class ::WinAsm;
4467
 
  friend class ::WinDeclSpecs;
4468
 
  friend class ::WinMemberExplSpec;
4469
 
  friend class ::WinTypeKeywords;
 
3783
  friend class ::ExtGnu;
4470
3784
  friend class ::PragmaOnceUnitState;
4471
3785
  friend class ::PragmaOnce;
4472
 
  friend class ::CCExprResolve;
4473
 
  friend class ::CExprResolve;
 
3786
  friend class ::CMatchSyntax;
4474
3787
 
4475
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
3788
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
4476
3789
 
4477
3790
  const char *_Text;
4478
3791
 
4521
3834
 
4522
3835
#endif /* __CTypePrimitive_h__ */
4523
3836
 
4524
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
3837
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
4525
3838
// This file is part of PUMA.
4526
3839
// Copyright (C) 1999-2003  The PUMA developer team.
4527
3840
//                                                                
4552
3865
 
4553
3866
 
4554
3867
 
4555
 
#line 4556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3868
#line 3869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
4556
3869
} // closed Puma
 
3870
class CCExprResolve;
 
3871
class CExprResolve;
4557
3872
class WinIfExists;
4558
3873
class WinImportHandler;
4559
3874
class WinMacros;
4560
 
class CMatchSyntax;
4561
 
class ExtGnu;
 
3875
class WinAsm;
 
3876
class WinDeclSpecs;
 
3877
class WinMemberExplSpec;
 
3878
class WinTypeKeywords;
 
3879
class WinFriend;
4562
3880
class ExtAC;
4563
3881
class ExtACBuilderCoupling;
4564
3882
class ExtACSyntaxCoupling;
4565
3883
class ExtACTree;
4566
3884
class ExtACKeywords;
4567
 
class WinAsm;
4568
 
class WinDeclSpecs;
4569
 
class WinMemberExplSpec;
4570
 
class WinTypeKeywords;
 
3885
class ExtGnu;
4571
3886
class PragmaOnceUnitState;
4572
3887
class PragmaOnce;
4573
 
class CCExprResolve;
4574
 
class CExprResolve;
 
3888
class CMatchSyntax;
4575
3889
namespace Puma {
4576
3890
 
4577
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
3891
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
4578
3892
class CTypeQualified : public CTypeInfo {
4579
 
#line 4580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
3893
#line 3894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
3894
  friend class ::CCExprResolve;
 
3895
  friend class ::CExprResolve;
4580
3896
  friend class ::WinIfExists;
4581
3897
  friend class ::WinImportHandler;
4582
3898
  friend class ::WinMacros;
4583
 
  friend class ::CMatchSyntax;
4584
 
  friend class ::ExtGnu;
 
3899
  friend class ::WinAsm;
 
3900
  friend class ::WinDeclSpecs;
 
3901
  friend class ::WinMemberExplSpec;
 
3902
  friend class ::WinTypeKeywords;
 
3903
  friend class ::WinFriend;
4585
3904
  friend class ::ExtAC;
4586
3905
  friend class ::ExtACBuilderCoupling;
4587
3906
  friend class ::ExtACSyntaxCoupling;
4588
3907
  friend class ::ExtACTree;
4589
3908
  friend class ::ExtACKeywords;
4590
 
  friend class ::WinAsm;
4591
 
  friend class ::WinDeclSpecs;
4592
 
  friend class ::WinMemberExplSpec;
4593
 
  friend class ::WinTypeKeywords;
 
3909
  friend class ::ExtGnu;
4594
3910
  friend class ::PragmaOnceUnitState;
4595
3911
  friend class ::PragmaOnce;
4596
 
  friend class ::CCExprResolve;
4597
 
  friend class ::CExprResolve;
4598
 
 
4599
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
4600
 
 
4601
 
  bool _Const;
4602
 
  bool _Volatile;
4603
 
  bool _Restrict;
 
3912
  friend class ::CMatchSyntax;
 
3913
 
 
3914
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
3915
 
 
3916
  bool _QualConst;
 
3917
  bool _QualVolatile;
 
3918
  bool _QualRestrict;
4604
3919
 
4605
3920
protected:
4606
3921
  CTypeQualified (CTypeInfo *, bool, bool, bool, TypeId);
4621
3936
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r, 
4622
3937
 CTypeInfo::TypeId id) :
4623
3938
  CTypeInfo (base, id),
4624
 
  _Const (c),
4625
 
  _Volatile (v),
4626
 
  _Restrict (r)
 
3939
  _QualConst (c),
 
3940
  _QualVolatile (v),
 
3941
  _QualRestrict (r)
4627
3942
 {}
4628
3943
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r) :
4629
3944
  CTypeInfo (base, CTypeInfo::TYPE_QUALIFIED),
4630
 
  _Const (c),
4631
 
  _Volatile (v),
4632
 
  _Restrict (r)
 
3945
  _QualConst (c),
 
3946
  _QualVolatile (v),
 
3947
  _QualRestrict (r)
4633
3948
 {}
4634
3949
inline CTypeQualified::~CTypeQualified ()
4635
3950
 {}
4636
3951
 
4637
3952
inline bool CTypeQualified::isConst () const
4638
 
 { return _Const; }
 
3953
 { return _QualConst; }
4639
3954
inline bool CTypeQualified::isVolatile () const
4640
 
 { return _Volatile; }
 
3955
 { return _QualVolatile; }
4641
3956
inline bool CTypeQualified::isRestrict () const
4642
 
 { return _Restrict; }
 
3957
 { return _QualRestrict; }
4643
3958
 
4644
3959
inline void CTypeQualified::isConst (bool v)
4645
 
 { _Const = v; }
 
3960
 { _QualConst = v; }
4646
3961
inline void CTypeQualified::isVolatile (bool v)
4647
 
 { _Volatile = v; }
 
3962
 { _QualVolatile = v; }
4648
3963
inline void CTypeQualified::isRestrict (bool v)
4649
 
 { _Restrict = v; }
 
3964
 { _QualRestrict = v; }
4650
3965
 
4651
3966
 
4652
3967
} // namespace Puma
4653
3968
 
4654
3969
#endif /* __CTypeQualified_h__ */
4655
3970
 
4656
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
3971
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
4657
3972
// This file is part of PUMA.
4658
3973
// Copyright (C) 1999-2003  The PUMA developer team.
4659
3974
//                                                                
4684
3999
 
4685
4000
 
4686
4001
 
4687
 
#line 4688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4002
#line 4003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
4688
4003
} // closed Puma
 
4004
class CCExprResolve;
 
4005
class CExprResolve;
4689
4006
class WinIfExists;
4690
4007
class WinImportHandler;
4691
4008
class WinMacros;
4692
 
class CMatchSyntax;
4693
 
class ExtGnu;
 
4009
class WinAsm;
 
4010
class WinDeclSpecs;
 
4011
class WinMemberExplSpec;
 
4012
class WinTypeKeywords;
 
4013
class WinFriend;
4694
4014
class ExtAC;
4695
4015
class ExtACBuilderCoupling;
4696
4016
class ExtACSyntaxCoupling;
4697
4017
class ExtACTree;
4698
4018
class ExtACKeywords;
4699
 
class WinAsm;
4700
 
class WinDeclSpecs;
4701
 
class WinMemberExplSpec;
4702
 
class WinTypeKeywords;
 
4019
class ExtGnu;
4703
4020
class PragmaOnceUnitState;
4704
4021
class PragmaOnce;
4705
 
class CCExprResolve;
4706
 
class CExprResolve;
 
4022
class CMatchSyntax;
4707
4023
namespace Puma {
4708
4024
 
4709
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
4025
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
4710
4026
class CTypeAddress : public CTypeInfo {
4711
 
#line 4712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4027
#line 4028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4028
  friend class ::CCExprResolve;
 
4029
  friend class ::CExprResolve;
4712
4030
  friend class ::WinIfExists;
4713
4031
  friend class ::WinImportHandler;
4714
4032
  friend class ::WinMacros;
4715
 
  friend class ::CMatchSyntax;
4716
 
  friend class ::ExtGnu;
 
4033
  friend class ::WinAsm;
 
4034
  friend class ::WinDeclSpecs;
 
4035
  friend class ::WinMemberExplSpec;
 
4036
  friend class ::WinTypeKeywords;
 
4037
  friend class ::WinFriend;
4717
4038
  friend class ::ExtAC;
4718
4039
  friend class ::ExtACBuilderCoupling;
4719
4040
  friend class ::ExtACSyntaxCoupling;
4720
4041
  friend class ::ExtACTree;
4721
4042
  friend class ::ExtACKeywords;
4722
 
  friend class ::WinAsm;
4723
 
  friend class ::WinDeclSpecs;
4724
 
  friend class ::WinMemberExplSpec;
4725
 
  friend class ::WinTypeKeywords;
 
4043
  friend class ::ExtGnu;
4726
4044
  friend class ::PragmaOnceUnitState;
4727
4045
  friend class ::PragmaOnce;
4728
 
  friend class ::CCExprResolve;
4729
 
  friend class ::CExprResolve;
 
4046
  friend class ::CMatchSyntax;
4730
4047
 
4731
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
4048
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
4732
4049
 
4733
4050
public:
4734
4051
  CTypeAddress (CTypeInfo *);
4746
4063
 
4747
4064
#endif /* __CTypeAddress_h__ */
4748
4065
 
4749
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
4066
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
4750
4067
// This file is part of PUMA.
4751
4068
// Copyright (C) 1999-2003  The PUMA developer team.
4752
4069
//                                                                
4777
4094
 
4778
4095
 
4779
4096
 
4780
 
#line 4781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4097
#line 4098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
4781
4098
} // closed Puma
 
4099
class CCExprResolve;
 
4100
class CExprResolve;
4782
4101
class WinIfExists;
4783
4102
class WinImportHandler;
4784
4103
class WinMacros;
4785
 
class CMatchSyntax;
4786
 
class ExtGnu;
 
4104
class WinAsm;
 
4105
class WinDeclSpecs;
 
4106
class WinMemberExplSpec;
 
4107
class WinTypeKeywords;
 
4108
class WinFriend;
4787
4109
class ExtAC;
4788
4110
class ExtACBuilderCoupling;
4789
4111
class ExtACSyntaxCoupling;
4790
4112
class ExtACTree;
4791
4113
class ExtACKeywords;
4792
 
class WinAsm;
4793
 
class WinDeclSpecs;
4794
 
class WinMemberExplSpec;
4795
 
class WinTypeKeywords;
 
4114
class ExtGnu;
4796
4115
class PragmaOnceUnitState;
4797
4116
class PragmaOnce;
4798
 
class CCExprResolve;
4799
 
class CExprResolve;
 
4117
class CMatchSyntax;
4800
4118
namespace Puma {
4801
4119
 
4802
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
4120
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
4803
4121
class CTypeBitField : public CTypeInfo {
4804
 
#line 4805 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4122
#line 4123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4123
  friend class ::CCExprResolve;
 
4124
  friend class ::CExprResolve;
4805
4125
  friend class ::WinIfExists;
4806
4126
  friend class ::WinImportHandler;
4807
4127
  friend class ::WinMacros;
4808
 
  friend class ::CMatchSyntax;
4809
 
  friend class ::ExtGnu;
 
4128
  friend class ::WinAsm;
 
4129
  friend class ::WinDeclSpecs;
 
4130
  friend class ::WinMemberExplSpec;
 
4131
  friend class ::WinTypeKeywords;
 
4132
  friend class ::WinFriend;
4810
4133
  friend class ::ExtAC;
4811
4134
  friend class ::ExtACBuilderCoupling;
4812
4135
  friend class ::ExtACSyntaxCoupling;
4813
4136
  friend class ::ExtACTree;
4814
4137
  friend class ::ExtACKeywords;
4815
 
  friend class ::WinAsm;
4816
 
  friend class ::WinDeclSpecs;
4817
 
  friend class ::WinMemberExplSpec;
4818
 
  friend class ::WinTypeKeywords;
 
4138
  friend class ::ExtGnu;
4819
4139
  friend class ::PragmaOnceUnitState;
4820
4140
  friend class ::PragmaOnce;
4821
 
  friend class ::CCExprResolve;
4822
 
  friend class ::CExprResolve;
 
4141
  friend class ::CMatchSyntax;
4823
4142
 
4824
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
4143
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
4825
4144
 
4826
4145
  long int _Size;
4827
4146
 
4850
4169
 
4851
4170
#endif /* __CTypeBitField_h__ */
4852
4171
 
4853
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
4172
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
4854
4173
// This file is part of PUMA.
4855
4174
// Copyright (C) 1999-2003  The PUMA developer team.
4856
4175
//                                                                
4881
4200
 
4882
4201
 
4883
4202
 
4884
 
#line 4885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4203
#line 4204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
4885
4204
} // closed Puma
 
4205
class CCExprResolve;
 
4206
class CExprResolve;
4886
4207
class WinIfExists;
4887
4208
class WinImportHandler;
4888
4209
class WinMacros;
4889
 
class CMatchSyntax;
4890
 
class ExtGnu;
 
4210
class WinAsm;
 
4211
class WinDeclSpecs;
 
4212
class WinMemberExplSpec;
 
4213
class WinTypeKeywords;
 
4214
class WinFriend;
4891
4215
class ExtAC;
4892
4216
class ExtACBuilderCoupling;
4893
4217
class ExtACSyntaxCoupling;
4894
4218
class ExtACTree;
4895
4219
class ExtACKeywords;
4896
 
class WinAsm;
4897
 
class WinDeclSpecs;
4898
 
class WinMemberExplSpec;
4899
 
class WinTypeKeywords;
 
4220
class ExtGnu;
4900
4221
class PragmaOnceUnitState;
4901
4222
class PragmaOnce;
4902
 
class CCExprResolve;
4903
 
class CExprResolve;
 
4223
class CMatchSyntax;
4904
4224
namespace Puma {
4905
4225
 
4906
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
4226
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
4907
4227
class CTypeArray : public CTypeInfo {
4908
 
#line 4909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4228
#line 4229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4229
  friend class ::CCExprResolve;
 
4230
  friend class ::CExprResolve;
4909
4231
  friend class ::WinIfExists;
4910
4232
  friend class ::WinImportHandler;
4911
4233
  friend class ::WinMacros;
4912
 
  friend class ::CMatchSyntax;
4913
 
  friend class ::ExtGnu;
 
4234
  friend class ::WinAsm;
 
4235
  friend class ::WinDeclSpecs;
 
4236
  friend class ::WinMemberExplSpec;
 
4237
  friend class ::WinTypeKeywords;
 
4238
  friend class ::WinFriend;
4914
4239
  friend class ::ExtAC;
4915
4240
  friend class ::ExtACBuilderCoupling;
4916
4241
  friend class ::ExtACSyntaxCoupling;
4917
4242
  friend class ::ExtACTree;
4918
4243
  friend class ::ExtACKeywords;
4919
 
  friend class ::WinAsm;
4920
 
  friend class ::WinDeclSpecs;
4921
 
  friend class ::WinMemberExplSpec;
4922
 
  friend class ::WinTypeKeywords;
 
4244
  friend class ::ExtGnu;
4923
4245
  friend class ::PragmaOnceUnitState;
4924
4246
  friend class ::PragmaOnce;
4925
 
  friend class ::CCExprResolve;
4926
 
  friend class ::CExprResolve;
 
4247
  friend class ::CMatchSyntax;
4927
4248
 
4928
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
4249
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
4929
4250
 
4930
4251
  long int _Size;
4931
4252
  bool _isFixed;
4932
4253
  CTypeQualified *_Quals;
4933
4254
  CTypeTemplateParam *_DepDim;
 
4255
  bool _hasDim;
4934
4256
 
4935
4257
protected:
4936
4258
  CTypeArray (CTypeInfo *, CTypeQualified *, TypeId);
4937
4259
  
4938
4260
public:
4939
 
  CTypeArray (CTypeInfo *, CTypeQualified * = 0);
 
4261
  CTypeArray (CTypeInfo *, CTypeQualified * = 0, bool has_dimension = false);
4940
4262
  ~CTypeArray ();
4941
4263
 
4942
4264
  void Dimension (long int);
4945
4267
  void isFixed (bool);
4946
4268
  bool isFixed () const;
4947
4269
  
 
4270
  void hasDimension (bool);
 
4271
  bool hasDimension () const;
 
4272
  
4948
4273
  CTypeQualified *Qualifiers () const;
4949
4274
  
4950
4275
  void DepDim (CTypeTemplateParam *);
4951
4276
  CTypeTemplateParam *DepDim () const;
4952
4277
};
4953
4278
 
4954
 
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals) :
 
4279
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, bool has_dimension) :
4955
4280
  CTypeInfo (base, CTypeInfo::TYPE_ARRAY),
4956
4281
  _Size (0),
4957
4282
  _isFixed (false),
4958
4283
  _Quals (quals),
4959
 
  _DepDim (0)
 
4284
  _DepDim (0),
 
4285
  _hasDim (has_dimension)
4960
4286
 {}
4961
4287
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, CTypeInfo::TypeId id) :
4962
4288
  CTypeInfo (base, id),
4963
4289
  _Size (0),
4964
4290
  _isFixed (false),
4965
4291
  _Quals (quals),
4966
 
  _DepDim (0)
 
4292
  _DepDim (0),
 
4293
  _hasDim (false)
4967
4294
 {}
4968
4295
inline CTypeArray::~CTypeArray ()
4969
4296
 { if (_Quals) CTypeInfo::Destroy (_Quals); }
4978
4305
inline bool CTypeArray::isFixed () const
4979
4306
 { return _isFixed; }
4980
4307
 
 
4308
inline void CTypeArray::hasDimension (bool v)
 
4309
 { _hasDim = v; }
 
4310
inline bool CTypeArray::hasDimension () const
 
4311
 { return _hasDim || _Size != 0; }
 
4312
 
4981
4313
inline CTypeQualified *CTypeArray::Qualifiers () const
4982
4314
 { return _Quals; }
4983
4315
 
4991
4323
 
4992
4324
#endif /* __CTypeArray_h__ */
4993
4325
 
4994
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
4326
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
4995
4327
// This file is part of PUMA.
4996
4328
// Copyright (C) 1999-2003  The PUMA developer team.
4997
4329
//                                                                
5022
4354
 
5023
4355
 
5024
4356
 
5025
 
#line 5026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4357
#line 4358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5026
4358
} // closed Puma
 
4359
class CCExprResolve;
 
4360
class CExprResolve;
5027
4361
class WinIfExists;
5028
4362
class WinImportHandler;
5029
4363
class WinMacros;
5030
 
class CMatchSyntax;
5031
 
class ExtGnu;
 
4364
class WinAsm;
 
4365
class WinDeclSpecs;
 
4366
class WinMemberExplSpec;
 
4367
class WinTypeKeywords;
 
4368
class WinFriend;
5032
4369
class ExtAC;
5033
4370
class ExtACBuilderCoupling;
5034
4371
class ExtACSyntaxCoupling;
5035
4372
class ExtACTree;
5036
4373
class ExtACKeywords;
5037
 
class WinAsm;
5038
 
class WinDeclSpecs;
5039
 
class WinMemberExplSpec;
5040
 
class WinTypeKeywords;
 
4374
class ExtGnu;
5041
4375
class PragmaOnceUnitState;
5042
4376
class PragmaOnce;
5043
 
class CCExprResolve;
5044
 
class CExprResolve;
 
4377
class CMatchSyntax;
5045
4378
namespace Puma {
5046
4379
 
5047
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
4380
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
5048
4381
class CTypeVarArray : public CTypeArray {
5049
 
#line 5050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4382
#line 4383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4383
  friend class ::CCExprResolve;
 
4384
  friend class ::CExprResolve;
5050
4385
  friend class ::WinIfExists;
5051
4386
  friend class ::WinImportHandler;
5052
4387
  friend class ::WinMacros;
5053
 
  friend class ::CMatchSyntax;
5054
 
  friend class ::ExtGnu;
 
4388
  friend class ::WinAsm;
 
4389
  friend class ::WinDeclSpecs;
 
4390
  friend class ::WinMemberExplSpec;
 
4391
  friend class ::WinTypeKeywords;
 
4392
  friend class ::WinFriend;
5055
4393
  friend class ::ExtAC;
5056
4394
  friend class ::ExtACBuilderCoupling;
5057
4395
  friend class ::ExtACSyntaxCoupling;
5058
4396
  friend class ::ExtACTree;
5059
4397
  friend class ::ExtACKeywords;
5060
 
  friend class ::WinAsm;
5061
 
  friend class ::WinDeclSpecs;
5062
 
  friend class ::WinMemberExplSpec;
5063
 
  friend class ::WinTypeKeywords;
 
4398
  friend class ::ExtGnu;
5064
4399
  friend class ::PragmaOnceUnitState;
5065
4400
  friend class ::PragmaOnce;
5066
 
  friend class ::CCExprResolve;
5067
 
  friend class ::CExprResolve;
 
4401
  friend class ::CMatchSyntax;
5068
4402
 
5069
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
4403
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
5070
4404
 
5071
4405
public:
5072
4406
  CTypeVarArray (CTypeInfo *, CTypeQualified * = 0);
5084
4418
 
5085
4419
#endif /* __CTypeVarArray_h__ */
5086
4420
 
5087
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
4421
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
5088
4422
// This file is part of PUMA.
5089
4423
// Copyright (C) 1999-2003  The PUMA developer team.
5090
4424
//                                                                
5115
4449
 
5116
4450
 
5117
4451
 
5118
 
#line 5119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4452
#line 4453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5119
4453
} // closed Puma
 
4454
class CCExprResolve;
 
4455
class CExprResolve;
5120
4456
class WinIfExists;
5121
4457
class WinImportHandler;
5122
4458
class WinMacros;
5123
 
class CMatchSyntax;
5124
 
class ExtGnu;
 
4459
class WinAsm;
 
4460
class WinDeclSpecs;
 
4461
class WinMemberExplSpec;
 
4462
class WinTypeKeywords;
 
4463
class WinFriend;
5125
4464
class ExtAC;
5126
4465
class ExtACBuilderCoupling;
5127
4466
class ExtACSyntaxCoupling;
5128
4467
class ExtACTree;
5129
4468
class ExtACKeywords;
5130
 
class WinAsm;
5131
 
class WinDeclSpecs;
5132
 
class WinMemberExplSpec;
5133
 
class WinTypeKeywords;
 
4469
class ExtGnu;
5134
4470
class PragmaOnceUnitState;
5135
4471
class PragmaOnce;
5136
 
class CCExprResolve;
5137
 
class CExprResolve;
 
4472
class CMatchSyntax;
5138
4473
namespace Puma {
5139
4474
 
5140
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
4475
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
5141
4476
class CTypePointer : public CTypeInfo {
5142
 
#line 5143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4477
#line 4478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4478
  friend class ::CCExprResolve;
 
4479
  friend class ::CExprResolve;
5143
4480
  friend class ::WinIfExists;
5144
4481
  friend class ::WinImportHandler;
5145
4482
  friend class ::WinMacros;
5146
 
  friend class ::CMatchSyntax;
5147
 
  friend class ::ExtGnu;
 
4483
  friend class ::WinAsm;
 
4484
  friend class ::WinDeclSpecs;
 
4485
  friend class ::WinMemberExplSpec;
 
4486
  friend class ::WinTypeKeywords;
 
4487
  friend class ::WinFriend;
5148
4488
  friend class ::ExtAC;
5149
4489
  friend class ::ExtACBuilderCoupling;
5150
4490
  friend class ::ExtACSyntaxCoupling;
5151
4491
  friend class ::ExtACTree;
5152
4492
  friend class ::ExtACKeywords;
5153
 
  friend class ::WinAsm;
5154
 
  friend class ::WinDeclSpecs;
5155
 
  friend class ::WinMemberExplSpec;
5156
 
  friend class ::WinTypeKeywords;
 
4493
  friend class ::ExtGnu;
5157
4494
  friend class ::PragmaOnceUnitState;
5158
4495
  friend class ::PragmaOnce;
5159
 
  friend class ::CCExprResolve;
5160
 
  friend class ::CExprResolve;
 
4496
  friend class ::CMatchSyntax;
5161
4497
 
5162
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
4498
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
5163
4499
 
5164
4500
protected:
5165
4501
  CTypePointer (CTypeInfo *, CTypeInfo::TypeId);
5183
4519
 
5184
4520
#endif /* __CTypePointer_h__ */
5185
4521
 
5186
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
4522
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
5187
4523
// This file is part of PUMA.
5188
4524
// Copyright (C) 1999-2003  The PUMA developer team.
5189
4525
//                                                                
5218
4554
class CTemplateParamInfo;
5219
4555
 
5220
4556
 
5221
 
#line 5222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4557
#line 4558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5222
4558
} // closed Puma
 
4559
class CCExprResolve;
 
4560
class CExprResolve;
5223
4561
class WinIfExists;
5224
4562
class WinImportHandler;
5225
4563
class WinMacros;
5226
 
class CMatchSyntax;
5227
 
class ExtGnu;
 
4564
class WinAsm;
 
4565
class WinDeclSpecs;
 
4566
class WinMemberExplSpec;
 
4567
class WinTypeKeywords;
 
4568
class WinFriend;
5228
4569
class ExtAC;
5229
4570
class ExtACBuilderCoupling;
5230
4571
class ExtACSyntaxCoupling;
5231
4572
class ExtACTree;
5232
4573
class ExtACKeywords;
5233
 
class WinAsm;
5234
 
class WinDeclSpecs;
5235
 
class WinMemberExplSpec;
5236
 
class WinTypeKeywords;
 
4574
class ExtGnu;
5237
4575
class PragmaOnceUnitState;
5238
4576
class PragmaOnce;
5239
 
class CCExprResolve;
5240
 
class CExprResolve;
 
4577
class CMatchSyntax;
5241
4578
namespace Puma {
5242
4579
 
5243
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
4580
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
5244
4581
class CTypeMemberPointer : public CTypePointer {
5245
 
#line 5246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4582
#line 4583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4583
  friend class ::CCExprResolve;
 
4584
  friend class ::CExprResolve;
5246
4585
  friend class ::WinIfExists;
5247
4586
  friend class ::WinImportHandler;
5248
4587
  friend class ::WinMacros;
5249
 
  friend class ::CMatchSyntax;
5250
 
  friend class ::ExtGnu;
 
4588
  friend class ::WinAsm;
 
4589
  friend class ::WinDeclSpecs;
 
4590
  friend class ::WinMemberExplSpec;
 
4591
  friend class ::WinTypeKeywords;
 
4592
  friend class ::WinFriend;
5251
4593
  friend class ::ExtAC;
5252
4594
  friend class ::ExtACBuilderCoupling;
5253
4595
  friend class ::ExtACSyntaxCoupling;
5254
4596
  friend class ::ExtACTree;
5255
4597
  friend class ::ExtACKeywords;
5256
 
  friend class ::WinAsm;
5257
 
  friend class ::WinDeclSpecs;
5258
 
  friend class ::WinMemberExplSpec;
5259
 
  friend class ::WinTypeKeywords;
 
4598
  friend class ::ExtGnu;
5260
4599
  friend class ::PragmaOnceUnitState;
5261
4600
  friend class ::PragmaOnce;
5262
 
  friend class ::CCExprResolve;
5263
 
  friend class ::CExprResolve;
 
4601
  friend class ::CMatchSyntax;
5264
4602
 
5265
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
4603
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
5266
4604
 
5267
4605
  CObjectInfo *_Class;
5268
4606
 
5286
4624
 
5287
4625
#endif /* __CTypeMemberPointer_h__ */
5288
4626
 
5289
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
4627
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
5290
4628
// This file is part of PUMA.
5291
4629
// Copyright (C) 1999-2003  The PUMA developer team.
5292
4630
//                                                                
5314
4652
#endif
5315
4653
 
5316
4654
 
5317
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
4655
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
5318
4656
// This file is part of PUMA.
5319
4657
// Copyright (C) 1999-2003  The PUMA developer team.
5320
4658
//                                                                
5337
4675
#define __CTypeList_h__
5338
4676
 
5339
4677
 
5340
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
4678
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
5341
4679
namespace Puma {
5342
4680
 
5343
4681
 
5345
4683
class CT_ArgDeclList;
5346
4684
 
5347
4685
 
5348
 
#line 5349 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4686
#line 4687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5349
4687
} // closed Puma
 
4688
class CCExprResolve;
 
4689
class CExprResolve;
5350
4690
class WinIfExists;
5351
4691
class WinImportHandler;
5352
4692
class WinMacros;
5353
 
class CMatchSyntax;
5354
 
class ExtGnu;
 
4693
class WinAsm;
 
4694
class WinDeclSpecs;
 
4695
class WinMemberExplSpec;
 
4696
class WinTypeKeywords;
 
4697
class WinFriend;
5355
4698
class ExtAC;
5356
4699
class ExtACBuilderCoupling;
5357
4700
class ExtACSyntaxCoupling;
5358
4701
class ExtACTree;
5359
4702
class ExtACKeywords;
5360
 
class WinAsm;
5361
 
class WinDeclSpecs;
5362
 
class WinMemberExplSpec;
5363
 
class WinTypeKeywords;
 
4703
class ExtGnu;
5364
4704
class PragmaOnceUnitState;
5365
4705
class PragmaOnce;
5366
 
class CCExprResolve;
5367
 
class CExprResolve;
 
4706
class CMatchSyntax;
5368
4707
namespace Puma {
5369
4708
 
5370
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
4709
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
5371
4710
class CTypeList {
5372
 
#line 5373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4711
#line 4712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4712
  friend class ::CCExprResolve;
 
4713
  friend class ::CExprResolve;
5373
4714
  friend class ::WinIfExists;
5374
4715
  friend class ::WinImportHandler;
5375
4716
  friend class ::WinMacros;
5376
 
  friend class ::CMatchSyntax;
5377
 
  friend class ::ExtGnu;
 
4717
  friend class ::WinAsm;
 
4718
  friend class ::WinDeclSpecs;
 
4719
  friend class ::WinMemberExplSpec;
 
4720
  friend class ::WinTypeKeywords;
 
4721
  friend class ::WinFriend;
5378
4722
  friend class ::ExtAC;
5379
4723
  friend class ::ExtACBuilderCoupling;
5380
4724
  friend class ::ExtACSyntaxCoupling;
5381
4725
  friend class ::ExtACTree;
5382
4726
  friend class ::ExtACKeywords;
5383
 
  friend class ::WinAsm;
5384
 
  friend class ::WinDeclSpecs;
5385
 
  friend class ::WinMemberExplSpec;
5386
 
  friend class ::WinTypeKeywords;
 
4727
  friend class ::ExtGnu;
5387
4728
  friend class ::PragmaOnceUnitState;
5388
4729
  friend class ::PragmaOnce;
5389
 
  friend class ::CCExprResolve;
5390
 
  friend class ::CExprResolve;
 
4730
  friend class ::CMatchSyntax;
5391
4731
 
5392
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
4732
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
5393
4733
 
5394
4734
  Array<CTypeInfo*> _List;
5395
4735
  CT_ArgDeclList *_ArgumentList;
5437
4777
 
5438
4778
#endif /* __CTypeList_h__ */
5439
4779
 
5440
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
4780
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
5441
4781
namespace Puma {
5442
4782
 
5443
4783
 
5445
4785
class CRecord;
5446
4786
 
5447
4787
 
5448
 
#line 5449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4788
#line 4789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5449
4789
} // closed Puma
 
4790
class CCExprResolve;
 
4791
class CExprResolve;
5450
4792
class WinIfExists;
5451
4793
class WinImportHandler;
5452
4794
class WinMacros;
5453
 
class CMatchSyntax;
5454
 
class ExtGnu;
 
4795
class WinAsm;
 
4796
class WinDeclSpecs;
 
4797
class WinMemberExplSpec;
 
4798
class WinTypeKeywords;
 
4799
class WinFriend;
5455
4800
class ExtAC;
5456
4801
class ExtACBuilderCoupling;
5457
4802
class ExtACSyntaxCoupling;
5458
4803
class ExtACTree;
5459
4804
class ExtACKeywords;
5460
 
class WinAsm;
5461
 
class WinDeclSpecs;
5462
 
class WinMemberExplSpec;
5463
 
class WinTypeKeywords;
 
4805
class ExtGnu;
5464
4806
class PragmaOnceUnitState;
5465
4807
class PragmaOnce;
5466
 
class CCExprResolve;
5467
 
class CExprResolve;
 
4808
class CMatchSyntax;
5468
4809
namespace Puma {
5469
4810
 
5470
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
4811
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
5471
4812
class CTypeFunction : public CTypeQualified {
5472
 
#line 5473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4813
#line 4814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4814
  friend class ::CCExprResolve;
 
4815
  friend class ::CExprResolve;
5473
4816
  friend class ::WinIfExists;
5474
4817
  friend class ::WinImportHandler;
5475
4818
  friend class ::WinMacros;
5476
 
  friend class ::CMatchSyntax;
5477
 
  friend class ::ExtGnu;
 
4819
  friend class ::WinAsm;
 
4820
  friend class ::WinDeclSpecs;
 
4821
  friend class ::WinMemberExplSpec;
 
4822
  friend class ::WinTypeKeywords;
 
4823
  friend class ::WinFriend;
5478
4824
  friend class ::ExtAC;
5479
4825
  friend class ::ExtACBuilderCoupling;
5480
4826
  friend class ::ExtACSyntaxCoupling;
5481
4827
  friend class ::ExtACTree;
5482
4828
  friend class ::ExtACKeywords;
5483
 
  friend class ::WinAsm;
5484
 
  friend class ::WinDeclSpecs;
5485
 
  friend class ::WinMemberExplSpec;
5486
 
  friend class ::WinTypeKeywords;
 
4829
  friend class ::ExtGnu;
5487
4830
  friend class ::PragmaOnceUnitState;
5488
4831
  friend class ::PragmaOnce;
5489
 
  friend class ::CCExprResolve;
5490
 
  friend class ::CExprResolve;
 
4832
  friend class ::CMatchSyntax;
5491
4833
 
5492
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
4834
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
5493
4835
 
5494
4836
  CTypeList *_ArgTypes;
5495
4837
  CFunctionInfo *_Function;
5537
4879
 
5538
4880
#endif /* __CTypeFunction_h__ */
5539
4881
 
5540
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
4882
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
5541
4883
// This file is part of PUMA.
5542
4884
// Copyright (C) 1999-2003  The PUMA developer team.
5543
4885
//                                                                
5570
4912
class CEnumInfo;
5571
4913
 
5572
4914
 
5573
 
#line 5574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4915
#line 4916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5574
4916
} // closed Puma
 
4917
class CCExprResolve;
 
4918
class CExprResolve;
5575
4919
class WinIfExists;
5576
4920
class WinImportHandler;
5577
4921
class WinMacros;
5578
 
class CMatchSyntax;
5579
 
class ExtGnu;
 
4922
class WinAsm;
 
4923
class WinDeclSpecs;
 
4924
class WinMemberExplSpec;
 
4925
class WinTypeKeywords;
 
4926
class WinFriend;
5580
4927
class ExtAC;
5581
4928
class ExtACBuilderCoupling;
5582
4929
class ExtACSyntaxCoupling;
5583
4930
class ExtACTree;
5584
4931
class ExtACKeywords;
5585
 
class WinAsm;
5586
 
class WinDeclSpecs;
5587
 
class WinMemberExplSpec;
5588
 
class WinTypeKeywords;
 
4932
class ExtGnu;
5589
4933
class PragmaOnceUnitState;
5590
4934
class PragmaOnce;
5591
 
class CCExprResolve;
5592
 
class CExprResolve;
 
4935
class CMatchSyntax;
5593
4936
namespace Puma {
5594
4937
 
5595
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
4938
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
5596
4939
class CTypeEnum : public CTypeInfo {
5597
 
#line 5598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
4940
#line 4941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
4941
  friend class ::CCExprResolve;
 
4942
  friend class ::CExprResolve;
5598
4943
  friend class ::WinIfExists;
5599
4944
  friend class ::WinImportHandler;
5600
4945
  friend class ::WinMacros;
5601
 
  friend class ::CMatchSyntax;
5602
 
  friend class ::ExtGnu;
 
4946
  friend class ::WinAsm;
 
4947
  friend class ::WinDeclSpecs;
 
4948
  friend class ::WinMemberExplSpec;
 
4949
  friend class ::WinTypeKeywords;
 
4950
  friend class ::WinFriend;
5603
4951
  friend class ::ExtAC;
5604
4952
  friend class ::ExtACBuilderCoupling;
5605
4953
  friend class ::ExtACSyntaxCoupling;
5606
4954
  friend class ::ExtACTree;
5607
4955
  friend class ::ExtACKeywords;
5608
 
  friend class ::WinAsm;
5609
 
  friend class ::WinDeclSpecs;
5610
 
  friend class ::WinMemberExplSpec;
5611
 
  friend class ::WinTypeKeywords;
 
4956
  friend class ::ExtGnu;
5612
4957
  friend class ::PragmaOnceUnitState;
5613
4958
  friend class ::PragmaOnce;
5614
 
  friend class ::CCExprResolve;
5615
 
  friend class ::CExprResolve;
 
4959
  friend class ::CMatchSyntax;
5616
4960
 
5617
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
4961
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
5618
4962
 
5619
4963
  CEnumInfo *_Enum;
5620
4964
 
5624
4968
 
5625
4969
  CEnumInfo *EnumInfo () const;
5626
4970
  bool isComplete (unsigned long = 0) const;
 
4971
  
 
4972
  CTypeInfo *UnderlyingType () const;
5627
4973
};
5628
4974
 
5629
4975
inline CTypeEnum::CTypeEnum (CEnumInfo *e) :
5635
4981
 
5636
4982
inline CEnumInfo *CTypeEnum::EnumInfo () const 
5637
4983
 { return _Enum; }
5638
 
 
 
4984
 
5639
4985
 
5640
4986
} // namespace Puma
5641
4987
 
5642
4988
#endif /* __CTypeEnum_h__ */
5643
4989
 
5644
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
4990
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
5645
4991
// This file is part of PUMA.
5646
4992
// Copyright (C) 1999-2003  The PUMA developer team.
5647
4993
//                                                                
5674
5020
class CRecord;
5675
5021
 
5676
5022
 
5677
 
#line 5678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5023
#line 5024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5678
5024
} // closed Puma
 
5025
class CCExprResolve;
 
5026
class CExprResolve;
5679
5027
class WinIfExists;
5680
5028
class WinImportHandler;
5681
5029
class WinMacros;
5682
 
class CMatchSyntax;
5683
 
class ExtGnu;
 
5030
class WinAsm;
 
5031
class WinDeclSpecs;
 
5032
class WinMemberExplSpec;
 
5033
class WinTypeKeywords;
 
5034
class WinFriend;
5684
5035
class ExtAC;
5685
5036
class ExtACBuilderCoupling;
5686
5037
class ExtACSyntaxCoupling;
5687
5038
class ExtACTree;
5688
5039
class ExtACKeywords;
5689
 
class WinAsm;
5690
 
class WinDeclSpecs;
5691
 
class WinMemberExplSpec;
5692
 
class WinTypeKeywords;
 
5040
class ExtGnu;
5693
5041
class PragmaOnceUnitState;
5694
5042
class PragmaOnce;
5695
 
class CCExprResolve;
5696
 
class CExprResolve;
 
5043
class CMatchSyntax;
5697
5044
namespace Puma {
5698
5045
 
5699
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
5046
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
5700
5047
class CTypeRecord : public CTypeInfo {
5701
 
#line 5702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5048
#line 5049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
5049
  friend class ::CCExprResolve;
 
5050
  friend class ::CExprResolve;
5702
5051
  friend class ::WinIfExists;
5703
5052
  friend class ::WinImportHandler;
5704
5053
  friend class ::WinMacros;
5705
 
  friend class ::CMatchSyntax;
5706
 
  friend class ::ExtGnu;
 
5054
  friend class ::WinAsm;
 
5055
  friend class ::WinDeclSpecs;
 
5056
  friend class ::WinMemberExplSpec;
 
5057
  friend class ::WinTypeKeywords;
 
5058
  friend class ::WinFriend;
5707
5059
  friend class ::ExtAC;
5708
5060
  friend class ::ExtACBuilderCoupling;
5709
5061
  friend class ::ExtACSyntaxCoupling;
5710
5062
  friend class ::ExtACTree;
5711
5063
  friend class ::ExtACKeywords;
5712
 
  friend class ::WinAsm;
5713
 
  friend class ::WinDeclSpecs;
5714
 
  friend class ::WinMemberExplSpec;
5715
 
  friend class ::WinTypeKeywords;
 
5064
  friend class ::ExtGnu;
5716
5065
  friend class ::PragmaOnceUnitState;
5717
5066
  friend class ::PragmaOnce;
5718
 
  friend class ::CCExprResolve;
5719
 
  friend class ::CExprResolve;
 
5067
  friend class ::CMatchSyntax;
5720
5068
 
5721
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
5069
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
5722
5070
 
5723
5071
  bool _hasConstMember;
5724
5072
 
5773
5121
 
5774
5122
#endif /* __CTypeRecord_h__ */
5775
5123
 
5776
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
5124
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
5777
5125
// This file is part of PUMA.
5778
5126
// Copyright (C) 1999-2003  The PUMA developer team.
5779
5127
//                                                                
5807
5155
class CRecord;
5808
5156
 
5809
5157
 
5810
 
#line 5811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5158
#line 5159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5811
5159
} // closed Puma
 
5160
class CCExprResolve;
 
5161
class CExprResolve;
5812
5162
class WinIfExists;
5813
5163
class WinImportHandler;
5814
5164
class WinMacros;
5815
 
class CMatchSyntax;
5816
 
class ExtGnu;
 
5165
class WinAsm;
 
5166
class WinDeclSpecs;
 
5167
class WinMemberExplSpec;
 
5168
class WinTypeKeywords;
 
5169
class WinFriend;
5817
5170
class ExtAC;
5818
5171
class ExtACBuilderCoupling;
5819
5172
class ExtACSyntaxCoupling;
5820
5173
class ExtACTree;
5821
5174
class ExtACKeywords;
5822
 
class WinAsm;
5823
 
class WinDeclSpecs;
5824
 
class WinMemberExplSpec;
5825
 
class WinTypeKeywords;
 
5175
class ExtGnu;
5826
5176
class PragmaOnceUnitState;
5827
5177
class PragmaOnce;
5828
 
class CCExprResolve;
5829
 
class CExprResolve;
 
5178
class CMatchSyntax;
5830
5179
namespace Puma {
5831
5180
 
5832
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
5181
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
5833
5182
class CTypeClass : public CTypeRecord {
5834
 
#line 5835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5183
#line 5184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
5184
  friend class ::CCExprResolve;
 
5185
  friend class ::CExprResolve;
5835
5186
  friend class ::WinIfExists;
5836
5187
  friend class ::WinImportHandler;
5837
5188
  friend class ::WinMacros;
5838
 
  friend class ::CMatchSyntax;
5839
 
  friend class ::ExtGnu;
 
5189
  friend class ::WinAsm;
 
5190
  friend class ::WinDeclSpecs;
 
5191
  friend class ::WinMemberExplSpec;
 
5192
  friend class ::WinTypeKeywords;
 
5193
  friend class ::WinFriend;
5840
5194
  friend class ::ExtAC;
5841
5195
  friend class ::ExtACBuilderCoupling;
5842
5196
  friend class ::ExtACSyntaxCoupling;
5843
5197
  friend class ::ExtACTree;
5844
5198
  friend class ::ExtACKeywords;
5845
 
  friend class ::WinAsm;
5846
 
  friend class ::WinDeclSpecs;
5847
 
  friend class ::WinMemberExplSpec;
5848
 
  friend class ::WinTypeKeywords;
 
5199
  friend class ::ExtGnu;
5849
5200
  friend class ::PragmaOnceUnitState;
5850
5201
  friend class ::PragmaOnce;
5851
 
  friend class ::CCExprResolve;
5852
 
  friend class ::CExprResolve;
 
5202
  friend class ::CMatchSyntax;
5853
5203
 
5854
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
5204
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
5855
5205
 
5856
5206
public:
5857
5207
  CTypeClass (CRecord *);
5871
5221
 
5872
5222
#endif /* __CTypeClass_h__ */
5873
5223
 
5874
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
5224
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
5875
5225
// This file is part of PUMA.
5876
5226
// Copyright (C) 1999-2003  The PUMA developer team.
5877
5227
//                                                                
5905
5255
class CRecord;
5906
5256
 
5907
5257
 
5908
 
#line 5909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5258
#line 5259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
5909
5259
} // closed Puma
 
5260
class CCExprResolve;
 
5261
class CExprResolve;
5910
5262
class WinIfExists;
5911
5263
class WinImportHandler;
5912
5264
class WinMacros;
5913
 
class CMatchSyntax;
5914
 
class ExtGnu;
 
5265
class WinAsm;
 
5266
class WinDeclSpecs;
 
5267
class WinMemberExplSpec;
 
5268
class WinTypeKeywords;
 
5269
class WinFriend;
5915
5270
class ExtAC;
5916
5271
class ExtACBuilderCoupling;
5917
5272
class ExtACSyntaxCoupling;
5918
5273
class ExtACTree;
5919
5274
class ExtACKeywords;
5920
 
class WinAsm;
5921
 
class WinDeclSpecs;
5922
 
class WinMemberExplSpec;
5923
 
class WinTypeKeywords;
 
5275
class ExtGnu;
5924
5276
class PragmaOnceUnitState;
5925
5277
class PragmaOnce;
5926
 
class CCExprResolve;
5927
 
class CExprResolve;
 
5278
class CMatchSyntax;
5928
5279
namespace Puma {
5929
5280
 
5930
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
5281
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
5931
5282
class CTypeUnion : public CTypeRecord {
5932
 
#line 5933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5283
#line 5284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
5284
  friend class ::CCExprResolve;
 
5285
  friend class ::CExprResolve;
5933
5286
  friend class ::WinIfExists;
5934
5287
  friend class ::WinImportHandler;
5935
5288
  friend class ::WinMacros;
5936
 
  friend class ::CMatchSyntax;
5937
 
  friend class ::ExtGnu;
 
5289
  friend class ::WinAsm;
 
5290
  friend class ::WinDeclSpecs;
 
5291
  friend class ::WinMemberExplSpec;
 
5292
  friend class ::WinTypeKeywords;
 
5293
  friend class ::WinFriend;
5938
5294
  friend class ::ExtAC;
5939
5295
  friend class ::ExtACBuilderCoupling;
5940
5296
  friend class ::ExtACSyntaxCoupling;
5941
5297
  friend class ::ExtACTree;
5942
5298
  friend class ::ExtACKeywords;
5943
 
  friend class ::WinAsm;
5944
 
  friend class ::WinDeclSpecs;
5945
 
  friend class ::WinMemberExplSpec;
5946
 
  friend class ::WinTypeKeywords;
 
5299
  friend class ::ExtGnu;
5947
5300
  friend class ::PragmaOnceUnitState;
5948
5301
  friend class ::PragmaOnce;
5949
 
  friend class ::CCExprResolve;
5950
 
  friend class ::CExprResolve;
 
5302
  friend class ::CMatchSyntax;
5951
5303
 
5952
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
5304
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
5953
5305
 
5954
5306
public:
5955
5307
  CTypeUnion (CRecord *);
5969
5321
 
5970
5322
#endif /* __CTypeUnion_h__ */
5971
5323
 
5972
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
5324
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
5973
5325
// This file is part of PUMA.
5974
5326
// Copyright (C) 1999-2003  The PUMA developer team.
5975
5327
//                                                                
6002
5354
class CTemplateParamInfo;
6003
5355
 
6004
5356
 
6005
 
#line 6006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5357
#line 5358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
6006
5358
} // closed Puma
 
5359
class CCExprResolve;
 
5360
class CExprResolve;
6007
5361
class WinIfExists;
6008
5362
class WinImportHandler;
6009
5363
class WinMacros;
6010
 
class CMatchSyntax;
6011
 
class ExtGnu;
 
5364
class WinAsm;
 
5365
class WinDeclSpecs;
 
5366
class WinMemberExplSpec;
 
5367
class WinTypeKeywords;
 
5368
class WinFriend;
6012
5369
class ExtAC;
6013
5370
class ExtACBuilderCoupling;
6014
5371
class ExtACSyntaxCoupling;
6015
5372
class ExtACTree;
6016
5373
class ExtACKeywords;
6017
 
class WinAsm;
6018
 
class WinDeclSpecs;
6019
 
class WinMemberExplSpec;
6020
 
class WinTypeKeywords;
 
5374
class ExtGnu;
6021
5375
class PragmaOnceUnitState;
6022
5376
class PragmaOnce;
6023
 
class CCExprResolve;
6024
 
class CExprResolve;
 
5377
class CMatchSyntax;
6025
5378
namespace Puma {
6026
5379
 
6027
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
5380
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
6028
5381
class CTypeTemplateParam : public CTypeInfo {
6029
 
#line 6030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5382
#line 5383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
5383
  friend class ::CCExprResolve;
 
5384
  friend class ::CExprResolve;
6030
5385
  friend class ::WinIfExists;
6031
5386
  friend class ::WinImportHandler;
6032
5387
  friend class ::WinMacros;
6033
 
  friend class ::CMatchSyntax;
6034
 
  friend class ::ExtGnu;
 
5388
  friend class ::WinAsm;
 
5389
  friend class ::WinDeclSpecs;
 
5390
  friend class ::WinMemberExplSpec;
 
5391
  friend class ::WinTypeKeywords;
 
5392
  friend class ::WinFriend;
6035
5393
  friend class ::ExtAC;
6036
5394
  friend class ::ExtACBuilderCoupling;
6037
5395
  friend class ::ExtACSyntaxCoupling;
6038
5396
  friend class ::ExtACTree;
6039
5397
  friend class ::ExtACKeywords;
6040
 
  friend class ::WinAsm;
6041
 
  friend class ::WinDeclSpecs;
6042
 
  friend class ::WinMemberExplSpec;
6043
 
  friend class ::WinTypeKeywords;
 
5398
  friend class ::ExtGnu;
6044
5399
  friend class ::PragmaOnceUnitState;
6045
5400
  friend class ::PragmaOnce;
6046
 
  friend class ::CCExprResolve;
6047
 
  friend class ::CExprResolve;
 
5401
  friend class ::CMatchSyntax;
6048
5402
 
6049
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
5403
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
6050
5404
 
6051
5405
  CTemplateParamInfo *_TemplateParam;
6052
5406
 
6055
5409
  ~CTypeTemplateParam ();
6056
5410
 
6057
5411
  CTemplateParamInfo *TemplateParamInfo () const;
 
5412
  void TemplateParamInfo (CTemplateParamInfo *);
6058
5413
  bool isType () const;
6059
5414
  bool isNonType () const;
6060
5415
};
6072
5427
inline bool CTypeTemplateParam::isNonType () const
6073
5428
 { return (! isType ()); }
6074
5429
 
 
5430
inline void CTypeTemplateParam::TemplateParamInfo (CTemplateParamInfo *info)
 
5431
 { _TemplateParam = info; }
6075
5432
 
6076
5433
} // namespace Puma
6077
5434
 
6078
5435
#endif /* __CTypeTemplateParam_h__ */
6079
5436
 
6080
 
#line 280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
5437
#line 284 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
6081
5438
namespace Puma {
6082
5439
 
6083
5440
inline CTypeInfo::CTypeInfo (CTypeInfo *info, CTypeInfo::TypeId id) :
6103
5460
 
6104
5461
inline void CTypeInfo::print (ostream& out) const 
6105
5462
 { TypeText ((char)PRINT_STD, out); }
6106
 
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef) const
 
5463
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef, bool elaborated_type_spec) const
6107
5464
 { char flags = (char)(abs ? PRINT_ABS : PRINT_STD);
6108
 
   if (tdef) flags |= (char)PRINT_TDN; TypeText (flags, out, t); }
 
5465
   if (tdef) flags |= (char)PRINT_TDN; 
 
5466
   if (elaborated_type_spec) flags |= (char)PRINT_ELA;
 
5467
   TypeText (flags, out, t); }
6109
5468
 
6110
5469
inline long int CTypeInfo::Dimension () const
6111
5470
 { return TypeArray () ? TypeArray ()->Dimension () : 
6291
5650
 
6292
5651
#endif /* __CTypeInfo_h__ */
6293
5652
 
6294
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
5653
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
6295
5654
namespace Puma {
6296
5655
 
6297
5656
 
6298
5657
 
6299
 
#line 6300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5658
#line 5659 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
6300
5659
} // closed Puma
 
5660
class CCExprResolve;
 
5661
class CExprResolve;
6301
5662
class WinIfExists;
6302
5663
class WinImportHandler;
6303
5664
class WinMacros;
6304
 
class CMatchSyntax;
6305
 
class ExtGnu;
 
5665
class WinAsm;
 
5666
class WinDeclSpecs;
 
5667
class WinMemberExplSpec;
 
5668
class WinTypeKeywords;
 
5669
class WinFriend;
6306
5670
class ExtAC;
6307
5671
class ExtACBuilderCoupling;
6308
5672
class ExtACSyntaxCoupling;
6309
5673
class ExtACTree;
6310
5674
class ExtACKeywords;
6311
 
class WinAsm;
6312
 
class WinDeclSpecs;
6313
 
class WinMemberExplSpec;
6314
 
class WinTypeKeywords;
 
5675
class ExtGnu;
6315
5676
class PragmaOnceUnitState;
6316
5677
class PragmaOnce;
6317
 
class CCExprResolve;
6318
 
class CExprResolve;
 
5678
class CMatchSyntax;
6319
5679
namespace Puma {
6320
5680
 
6321
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
5681
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
6322
5682
class CSemValue {
6323
 
#line 6324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5683
#line 5684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
5684
  friend class ::CCExprResolve;
 
5685
  friend class ::CExprResolve;
6324
5686
  friend class ::WinIfExists;
6325
5687
  friend class ::WinImportHandler;
6326
5688
  friend class ::WinMacros;
6327
 
  friend class ::CMatchSyntax;
6328
 
  friend class ::ExtGnu;
 
5689
  friend class ::WinAsm;
 
5690
  friend class ::WinDeclSpecs;
 
5691
  friend class ::WinMemberExplSpec;
 
5692
  friend class ::WinTypeKeywords;
 
5693
  friend class ::WinFriend;
6329
5694
  friend class ::ExtAC;
6330
5695
  friend class ::ExtACBuilderCoupling;
6331
5696
  friend class ::ExtACSyntaxCoupling;
6332
5697
  friend class ::ExtACTree;
6333
5698
  friend class ::ExtACKeywords;
6334
 
  friend class ::WinAsm;
6335
 
  friend class ::WinDeclSpecs;
6336
 
  friend class ::WinMemberExplSpec;
6337
 
  friend class ::WinTypeKeywords;
 
5699
  friend class ::ExtGnu;
6338
5700
  friend class ::PragmaOnceUnitState;
6339
5701
  friend class ::PragmaOnce;
6340
 
  friend class ::CCExprResolve;
6341
 
  friend class ::CExprResolve;
 
5702
  friend class ::CMatchSyntax;
6342
5703
 
6343
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
5704
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
6344
5705
 
6345
5706
  bool value_ref;
6346
5707
  bool type_ref;
6357
5718
  void setValueRef (CExprValue *);
6358
5719
  void setType (CTypeInfo *);
6359
5720
  void setTypeRef (CTypeInfo *);
 
5721
  CExprValue* getValue() { return value; }
 
5722
  CTypeInfo* getType() { return type; }
6360
5723
};
6361
5724
 
6362
5725
inline CSemValue::CSemValue () : 
6388
5751
 
6389
5752
#endif /* __CSemValue_h__ */
6390
5753
 
6391
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
5754
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
6392
5755
// This file is part of PUMA.
6393
5756
// Copyright (C) 1999-2003  The PUMA developer team.
6394
5757
//                                                                
6411
5774
#define __CStrLiteral_h__
6412
5775
 
6413
5776
 
6414
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
5777
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
6415
5778
namespace Puma {
6416
5779
 
6417
5780
 
6418
5781
 
6419
 
#line 6420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5782
#line 5783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
6420
5783
} // closed Puma
 
5784
class CCExprResolve;
 
5785
class CExprResolve;
6421
5786
class WinIfExists;
6422
5787
class WinImportHandler;
6423
5788
class WinMacros;
6424
 
class CMatchSyntax;
6425
 
class ExtGnu;
 
5789
class WinAsm;
 
5790
class WinDeclSpecs;
 
5791
class WinMemberExplSpec;
 
5792
class WinTypeKeywords;
 
5793
class WinFriend;
6426
5794
class ExtAC;
6427
5795
class ExtACBuilderCoupling;
6428
5796
class ExtACSyntaxCoupling;
6429
5797
class ExtACTree;
6430
5798
class ExtACKeywords;
6431
 
class WinAsm;
6432
 
class WinDeclSpecs;
6433
 
class WinMemberExplSpec;
6434
 
class WinTypeKeywords;
 
5799
class ExtGnu;
6435
5800
class PragmaOnceUnitState;
6436
5801
class PragmaOnce;
6437
 
class CCExprResolve;
6438
 
class CExprResolve;
 
5802
class CMatchSyntax;
6439
5803
namespace Puma {
6440
5804
 
6441
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
5805
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
6442
5806
class CStrLiteral : public CExprValue {
6443
 
#line 6444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
5807
#line 5808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
5808
  friend class ::CCExprResolve;
 
5809
  friend class ::CExprResolve;
6444
5810
  friend class ::WinIfExists;
6445
5811
  friend class ::WinImportHandler;
6446
5812
  friend class ::WinMacros;
6447
 
  friend class ::CMatchSyntax;
6448
 
  friend class ::ExtGnu;
 
5813
  friend class ::WinAsm;
 
5814
  friend class ::WinDeclSpecs;
 
5815
  friend class ::WinMemberExplSpec;
 
5816
  friend class ::WinTypeKeywords;
 
5817
  friend class ::WinFriend;
6449
5818
  friend class ::ExtAC;
6450
5819
  friend class ::ExtACBuilderCoupling;
6451
5820
  friend class ::ExtACSyntaxCoupling;
6452
5821
  friend class ::ExtACTree;
6453
5822
  friend class ::ExtACKeywords;
6454
 
  friend class ::WinAsm;
6455
 
  friend class ::WinDeclSpecs;
6456
 
  friend class ::WinMemberExplSpec;
6457
 
  friend class ::WinTypeKeywords;
 
5823
  friend class ::ExtGnu;
6458
5824
  friend class ::PragmaOnceUnitState;
6459
5825
  friend class ::PragmaOnce;
6460
 
  friend class ::CCExprResolve;
6461
 
  friend class ::CExprResolve;
 
5826
  friend class ::CMatchSyntax;
6462
5827
 
6463
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
5828
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
6464
5829
 
6465
5830
  const char *_string;
6466
5831
  unsigned long _len;
6482
5847
 
6483
5848
#endif /* __CStrLiteral_h__ */
6484
5849
 
6485
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTokens.h"
 
5850
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTokens.h"
6486
5851
// This file is part of PUMA.
6487
5852
// Copyright (C) 1999-2003  The PUMA developer team.
6488
5853
//                                                                
6513
5878
  TOK_ZERO_VAL,
6514
5879
  TOK_INT_VAL,
6515
5880
  TOK_FLT_VAL,
 
5881
  TOK_STRING_VAL,
 
5882
  TOK_CHAR_VAL,
6516
5883
  TOK_COMMA,
6517
5884
  TOK_ASSIGN,
6518
5885
  TOK_QUESTION,
6695
6062
  TOK_LAST_AC = TOK_UNKNOWN_T,
6696
6063
  
6697
6064
  // further [A](C|C++) token
6698
 
  TOK_STRING_VAL,
6699
 
  TOK_CHAR_VAL,
6700
6065
  TOK_ID,
6701
6066
 
6702
6067
  // These two always have to be the ** last ** token listed here!!!
6709
6074
 
6710
6075
#endif /* __C_TOKENS__ */
6711
6076
 
6712
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6077
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6078
#include <string.h>
6713
6079
using namespace std;
6714
6080
 
6715
6081
namespace Puma {
6725
6091
/*                                                                           */
6726
6092
/*****************************************************************************/
6727
6093
 
6728
 
 
6729
 
#line 6730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
6730
 
} // closed Puma
6731
 
class WinIfExists;
6732
 
class WinImportHandler;
6733
 
class WinMacros;
6734
 
class CMatchSyntax;
6735
 
class ExtGnu;
6736
 
class ExtAC;
6737
 
class ExtACBuilderCoupling;
6738
 
class ExtACSyntaxCoupling;
6739
 
class ExtACTree;
6740
 
class ExtACKeywords;
6741
 
class WinAsm;
6742
 
class WinDeclSpecs;
6743
 
class WinMemberExplSpec;
6744
 
class WinTypeKeywords;
6745
 
class PragmaOnceUnitState;
6746
 
class PragmaOnce;
6747
 
class CCExprResolve;
6748
 
class CExprResolve;
6749
 
namespace Puma {
6750
 
 
6751
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6094
/** \file
 
6095
 *  C/C++ syntax tree classes.
 
6096
 *  \see Puma::CTree */
 
6097
 
 
6098
/** \class CTree CTree.h Puma/CTree.h
 
6099
 *  Base class for all C/C++ syntax tree classes. */
 
6100
 
 
6101
#line 6102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6102
} // closed Puma
 
6103
class CCExprResolve;
 
6104
class CExprResolve;
 
6105
class WinIfExists;
 
6106
class WinImportHandler;
 
6107
class WinMacros;
 
6108
class WinAsm;
 
6109
class WinDeclSpecs;
 
6110
class WinMemberExplSpec;
 
6111
class WinTypeKeywords;
 
6112
class WinFriend;
 
6113
class ExtAC;
 
6114
class ExtACBuilderCoupling;
 
6115
class ExtACSyntaxCoupling;
 
6116
class ExtACTree;
 
6117
class ExtACKeywords;
 
6118
class ExtGnu;
 
6119
class PragmaOnceUnitState;
 
6120
class PragmaOnce;
 
6121
class CMatchSyntax;
 
6122
namespace Puma {
 
6123
 
 
6124
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6125
 
 
6126
#line 6127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6127
} // closed Puma
 
6128
 
 
6129
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6130
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6131
 
 
6132
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6133
// This file is part of PUMA.
 
6134
// Copyright (C) 1999-2003  The PUMA developer team.
 
6135
//                                                                
 
6136
// This program is free software;  you can redistribute it and/or 
 
6137
// modify it under the terms of the GNU General Public License as 
 
6138
// published by the Free Software Foundation; either version 2 of 
 
6139
// the License, or (at your option) any later version.            
 
6140
//                                                                
 
6141
// This program is distributed in the hope that it will be useful,
 
6142
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6143
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6144
// GNU General Public License for more details.                   
 
6145
//                                                                
 
6146
// You should have received a copy of the GNU General Public      
 
6147
// License along with this program; if not, write to the Free     
 
6148
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6149
// MA  02111-1307  USA                                            
 
6150
 
 
6151
#ifndef __CCExprResolveH_ah__
 
6152
#define __CCExprResolveH_ah__
 
6153
 
 
6154
// This aspect inserts resolve member functions into all syntax tree classes
 
6155
// that represent expressions. As the function is virtual, an efficient
 
6156
// run-time switch over the node type is implemented.
 
6157
 
 
6158
namespace Puma {
 
6159
  class CCSemExpr;
 
6160
}
 
6161
 
 
6162
namespace Puma {
 
6163
  
 
6164
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6165
 
 
6166
  
 
6167
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6168
 
 
6169
}
 
6170
 
 
6171
 
 
6172
#line 6173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6173
class CExprResolve;
 
6174
class WinIfExists;
 
6175
class WinImportHandler;
 
6176
class WinMacros;
 
6177
class WinAsm;
 
6178
class WinDeclSpecs;
 
6179
class WinMemberExplSpec;
 
6180
class WinTypeKeywords;
 
6181
class WinFriend;
 
6182
class ExtAC;
 
6183
class ExtACBuilderCoupling;
 
6184
class ExtACSyntaxCoupling;
 
6185
class ExtACTree;
 
6186
class ExtACKeywords;
 
6187
class ExtGnu;
 
6188
class PragmaOnceUnitState;
 
6189
class PragmaOnce;
 
6190
class CMatchSyntax;
 
6191
 
 
6192
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6193
class CCExprResolve {
 
6194
#line 6195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6195
 
 
6196
public:
 
6197
  static CCExprResolve *aspectof () {
 
6198
    static CCExprResolve __instance;
 
6199
    return &__instance;
 
6200
  }
 
6201
  static CCExprResolve *aspectOf () {
 
6202
    return aspectof ();
 
6203
  }
 
6204
private:
 
6205
 
 
6206
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6207
 
 
6208
#line 6209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6209
  friend class ::CExprResolve;
 
6210
  friend class ::WinIfExists;
 
6211
  friend class ::WinImportHandler;
 
6212
  friend class ::WinMacros;
 
6213
  friend class ::WinAsm;
 
6214
  friend class ::WinDeclSpecs;
 
6215
  friend class ::WinMemberExplSpec;
 
6216
  friend class ::WinTypeKeywords;
 
6217
  friend class ::WinFriend;
 
6218
  friend class ::ExtAC;
 
6219
  friend class ::ExtACBuilderCoupling;
 
6220
  friend class ::ExtACSyntaxCoupling;
 
6221
  friend class ::ExtACTree;
 
6222
  friend class ::ExtACKeywords;
 
6223
  friend class ::ExtGnu;
 
6224
  friend class ::PragmaOnceUnitState;
 
6225
  friend class ::PragmaOnce;
 
6226
  friend class ::CMatchSyntax;
 
6227
 
 
6228
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6229
 
 
6230
  
 
6231
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6232
 
 
6233
  
 
6234
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6235
 
 
6236
};
 
6237
#line 6238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6238
 
 
6239
namespace AC {
 
6240
 
6241
 
 
6242
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6243
 
 
6244
 
 
6245
#endif /* __CCExprResolveH_ah__ */
 
6246
 
 
6247
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6248
#endif
 
6249
namespace Puma {
 
6250
 
 
6251
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6252
 
 
6253
#line 6254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6254
} // closed Puma
 
6255
 
 
6256
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6257
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6258
 
 
6259
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6260
// This file is part of PUMA.
 
6261
// Copyright (C) 1999-2003  The PUMA developer team.
 
6262
//                                                                
 
6263
// This program is free software;  you can redistribute it and/or 
 
6264
// modify it under the terms of the GNU General Public License as 
 
6265
// published by the Free Software Foundation; either version 2 of 
 
6266
// the License, or (at your option) any later version.            
 
6267
//                                                                
 
6268
// This program is distributed in the hope that it will be useful,
 
6269
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6270
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6271
// GNU General Public License for more details.                   
 
6272
//                                                                
 
6273
// You should have received a copy of the GNU General Public      
 
6274
// License along with this program; if not, write to the Free     
 
6275
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6276
// MA  02111-1307  USA                                            
 
6277
 
 
6278
#ifndef __CExprResolveH_ah__
 
6279
#define __CExprResolveH_ah__
 
6280
 
 
6281
// This aspect inserts resolve member functions into all syntax tree classes
 
6282
// that represent expressions. As the function is virtual, an efficient
 
6283
// run-time switch over the node type is implemented.
 
6284
 
 
6285
namespace Puma {
 
6286
  class CSemExpr;
 
6287
}
 
6288
 
 
6289
namespace Puma {
 
6290
  
 
6291
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6292
 
 
6293
  
 
6294
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6295
 
 
6296
}
 
6297
 
 
6298
 
 
6299
#line 6300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6300
class CCExprResolve;
 
6301
class WinIfExists;
 
6302
class WinImportHandler;
 
6303
class WinMacros;
 
6304
class WinAsm;
 
6305
class WinDeclSpecs;
 
6306
class WinMemberExplSpec;
 
6307
class WinTypeKeywords;
 
6308
class WinFriend;
 
6309
class ExtAC;
 
6310
class ExtACBuilderCoupling;
 
6311
class ExtACSyntaxCoupling;
 
6312
class ExtACTree;
 
6313
class ExtACKeywords;
 
6314
class ExtGnu;
 
6315
class PragmaOnceUnitState;
 
6316
class PragmaOnce;
 
6317
class CMatchSyntax;
 
6318
 
 
6319
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6320
class CExprResolve {
 
6321
#line 6322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6322
 
 
6323
public:
 
6324
  static CExprResolve *aspectof () {
 
6325
    static CExprResolve __instance;
 
6326
    return &__instance;
 
6327
  }
 
6328
  static CExprResolve *aspectOf () {
 
6329
    return aspectof ();
 
6330
  }
 
6331
private:
 
6332
 
 
6333
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6334
 
 
6335
#line 6336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6336
  friend class ::CCExprResolve;
 
6337
  friend class ::WinIfExists;
 
6338
  friend class ::WinImportHandler;
 
6339
  friend class ::WinMacros;
 
6340
  friend class ::WinAsm;
 
6341
  friend class ::WinDeclSpecs;
 
6342
  friend class ::WinMemberExplSpec;
 
6343
  friend class ::WinTypeKeywords;
 
6344
  friend class ::WinFriend;
 
6345
  friend class ::ExtAC;
 
6346
  friend class ::ExtACBuilderCoupling;
 
6347
  friend class ::ExtACSyntaxCoupling;
 
6348
  friend class ::ExtACTree;
 
6349
  friend class ::ExtACKeywords;
 
6350
  friend class ::ExtGnu;
 
6351
  friend class ::PragmaOnceUnitState;
 
6352
  friend class ::PragmaOnce;
 
6353
  friend class ::CMatchSyntax;
 
6354
 
 
6355
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6356
 
 
6357
  
 
6358
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6359
 
 
6360
  
 
6361
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6362
 
 
6363
};
 
6364
#line 6365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6365
 
 
6366
namespace AC {
 
6367
 
6368
 
 
6369
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6370
 
 
6371
 
 
6372
#endif /* __CExprResolveH_ah__ */
 
6373
 
 
6374
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6375
#endif
 
6376
namespace Puma {
 
6377
 
 
6378
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6752
6379
class CTree {
6753
 
#line 6754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6380
#line 6381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6381
  friend class ::CCExprResolve;
 
6382
  friend class ::CExprResolve;
6754
6383
  friend class ::WinIfExists;
6755
6384
  friend class ::WinImportHandler;
6756
6385
  friend class ::WinMacros;
6757
 
  friend class ::CMatchSyntax;
6758
 
  friend class ::ExtGnu;
 
6386
  friend class ::WinAsm;
 
6387
  friend class ::WinDeclSpecs;
 
6388
  friend class ::WinMemberExplSpec;
 
6389
  friend class ::WinTypeKeywords;
 
6390
  friend class ::WinFriend;
6759
6391
  friend class ::ExtAC;
6760
6392
  friend class ::ExtACBuilderCoupling;
6761
6393
  friend class ::ExtACSyntaxCoupling;
6762
6394
  friend class ::ExtACTree;
6763
6395
  friend class ::ExtACKeywords;
6764
 
  friend class ::WinAsm;
6765
 
  friend class ::WinDeclSpecs;
6766
 
  friend class ::WinMemberExplSpec;
6767
 
  friend class ::WinTypeKeywords;
 
6396
  friend class ::ExtGnu;
6768
6397
  friend class ::PragmaOnceUnitState;
6769
6398
  friend class ::PragmaOnce;
6770
 
  friend class ::CCExprResolve;
6771
 
  friend class ::CExprResolve;
6772
 
 
6773
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6399
  friend class ::CMatchSyntax;
 
6400
 
 
6401
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6402
 
 
6403
  CTree * _parent;
6774
6404
 
6775
6405
public:
6776
6406
  /*DEBUG*/static int alloc;
6777
6407
  /*DEBUG*/static int release;
6778
6408
 
6779
6409
protected:
6780
 
  CTree *Son (CTree * const *, int, int) const;
6781
 
  int Sons (CTree * const *, int) const;
6782
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
6410
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
6411
   *  \param sons The sons array.
 
6412
   *  \param len Length of the sons array.
 
6413
   *  \param n Index of the son.
 
6414
   *  \return The n-th son or NULL. */
 
6415
  CTree *Son (CTree * const *sons, int len, int n) const;
 
6416
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
6417
   *  \param sons The sons array.
 
6418
   *  \param len Length of the sons array. */
 
6419
  int Sons (CTree * const *sons, int len) const;
 
6420
  /** Replace a son.
 
6421
   *  \param sons The sons array.
 
6422
   *  \param len Length of the sons array.
 
6423
   *  \param old_son The son to replace.
 
6424
   *  \param new_son The new son. */
 
6425
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
6426
  /** Replace a son if it equals the given son.
 
6427
   *  \param son The actual son.
 
6428
   *  \param old_son The son to replace, must match the actual son.
 
6429
   *  \param new_son The new son, overwrites the actual son. */
 
6430
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
6431
  /** Add a new son.
 
6432
   *  \param son The actual son.
 
6433
   *  \param new_son The new son, overwrites the actual son. */
 
6434
  void AddSon (CTree *&son, CTree *new_son);
 
6435
  /** Set the parent tree node.
 
6436
   *  \param parent The new parent tree node. */
 
6437
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
6438
  /** Set the parent tree node of the given tree node.
 
6439
   *  \param node The tree node.
 
6440
   *  \param parent The new parent. */
 
6441
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
6783
6442
  
6784
6443
protected:
6785
 
  CTree () { /*DEBUG*/alloc++; }
 
6444
  /** Default constructor. */
 
6445
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
6786
6446
 
6787
6447
public:
 
6448
  /** Destructor. */
6788
6449
  virtual ~CTree () { /*DEBUG*/release++; }
 
6450
  /** Get the number of sons. */
6789
6451
  virtual int Sons () const = 0;
 
6452
  /** Get the n-th son.
 
6453
   *  \param n The index of the son.
 
6454
   *  \return The n-th son or NULL. */
6790
6455
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
6456
  /** Get the node name (node identifier). */
6791
6457
  virtual const char *NodeName () const = 0;
 
6458
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
6459
   *  \return The token or NULL. */
6792
6460
  virtual Token *token () const;
 
6461
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
6462
   *  \return The token or NULL. */
6793
6463
  virtual Token *end_token () const;
 
6464
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
6465
   *  \return The token node or NULL. */
6794
6466
  virtual CT_Token *token_node () const;
 
6467
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
6468
   *  \return The token node or NULL. */
6795
6469
  virtual CT_Token *end_token_node () const;
6796
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
6470
  /** Replace a son.
 
6471
   *  \param old_son The son to replace.
 
6472
   *  \param new_son The son with which to replace. */
 
6473
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
6474
  /** Get the parent node.
 
6475
   *  \return The parent node or NULL. */
 
6476
  virtual CTree *Parent () const { return (CTree*)_parent; }
6797
6477
 
6798
6478
public: // semantic information
 
6479
  /** Get the semantic type of the node.
 
6480
   *  \return The type object or NULL. */
6799
6481
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
6482
  /** Get the calculated value of the expression.
 
6483
   *  \return The value object or NULL. */
6800
6484
  virtual CExprValue *Value () const { return (CExprValue*)0; }
6801
6485
  
 
6486
  /** Get the semantic scope of the node.
 
6487
   *  \return The scope object or NULL. */
 
6488
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
6489
  /** Get the semantic value of the node.
 
6490
   *  \return The value object or NULL. */
6802
6491
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
6492
  /** Get the semantic object of the node.
 
6493
   *  \return The semantic object or NULL. */
6803
6494
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
6804
6495
  
6805
6496
public: // node classification function
 
6497
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
6498
   *  \return The CT_SimpleName node or NULL. */
6806
6499
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
6500
  /** Get a pointer to CT_String if the current node represents a string.
 
6501
   *  \return The CT_String node or NULL. */
 
6502
  virtual CT_String *IsString () { return 0; }
 
6503
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
6504
   *  \return The CT_Declarator pointer or NULL. */
6807
6505
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
6506
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
6507
   *  \return The CT_Statement pointer or NULL. */
 
6508
  virtual CT_Statement *IsStatement () { return 0; }
 
6509
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
6510
   *  \return The CT_Expression pointer or NULL. */
 
6511
  virtual CT_Expression *IsExpression () { return 0; }
 
6512
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
6513
   *  \return The CT_Decl pointer or NULL. */
 
6514
  virtual CT_Decl *IsDeclaration () { return 0; }
 
6515
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
6516
   *  \return The CT_Call pointer or NULL. */
 
6517
  virtual CT_Call *IsCall () { return 0; }
6808
6518
   private:
6809
6519
  typedef CTree CCExprResolveCTree;
6810
6520
 
6811
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6521
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6812
6522
 public :
6813
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
6523
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
6814
6524
  typedef CTree CExprResolveCTree;
6815
6525
 
6816
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6526
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6817
6527
 public :
6818
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6819
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6528
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6529
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6820
6530
};
6821
6531
 
 
6532
/** \class CT_Error CTree.h Puma/CTree.h
 
6533
 *  Error tree node that is inserted into the tree for syntactic constructs
 
6534
 *  that could not be parsed. */
6822
6535
 
6823
 
#line 6824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6536
#line 6537 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
6824
6537
} // closed Puma
 
6538
class CCExprResolve;
 
6539
class CExprResolve;
6825
6540
class WinIfExists;
6826
6541
class WinImportHandler;
6827
6542
class WinMacros;
6828
 
class CMatchSyntax;
6829
 
class ExtGnu;
 
6543
class WinAsm;
 
6544
class WinDeclSpecs;
 
6545
class WinMemberExplSpec;
 
6546
class WinTypeKeywords;
 
6547
class WinFriend;
6830
6548
class ExtAC;
6831
6549
class ExtACBuilderCoupling;
6832
6550
class ExtACSyntaxCoupling;
6833
6551
class ExtACTree;
6834
6552
class ExtACKeywords;
6835
 
class WinAsm;
6836
 
class WinDeclSpecs;
6837
 
class WinMemberExplSpec;
6838
 
class WinTypeKeywords;
 
6553
class ExtGnu;
6839
6554
class PragmaOnceUnitState;
6840
6555
class PragmaOnce;
6841
 
class CCExprResolve;
6842
 
class CExprResolve;
 
6556
class CMatchSyntax;
6843
6557
namespace Puma {
6844
6558
 
6845
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6559
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6846
6560
class CT_Error : public CTree {
6847
 
#line 6848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6561
#line 6562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6562
  friend class ::CCExprResolve;
 
6563
  friend class ::CExprResolve;
6848
6564
  friend class ::WinIfExists;
6849
6565
  friend class ::WinImportHandler;
6850
6566
  friend class ::WinMacros;
6851
 
  friend class ::CMatchSyntax;
6852
 
  friend class ::ExtGnu;
 
6567
  friend class ::WinAsm;
 
6568
  friend class ::WinDeclSpecs;
 
6569
  friend class ::WinMemberExplSpec;
 
6570
  friend class ::WinTypeKeywords;
 
6571
  friend class ::WinFriend;
6853
6572
  friend class ::ExtAC;
6854
6573
  friend class ::ExtACBuilderCoupling;
6855
6574
  friend class ::ExtACSyntaxCoupling;
6856
6575
  friend class ::ExtACTree;
6857
6576
  friend class ::ExtACKeywords;
6858
 
  friend class ::WinAsm;
6859
 
  friend class ::WinDeclSpecs;
6860
 
  friend class ::WinMemberExplSpec;
6861
 
  friend class ::WinTypeKeywords;
 
6577
  friend class ::ExtGnu;
6862
6578
  friend class ::PragmaOnceUnitState;
6863
6579
  friend class ::PragmaOnce;
6864
 
  friend class ::CCExprResolve;
6865
 
  friend class ::CExprResolve;
 
6580
  friend class ::CMatchSyntax;
6866
6581
 
6867
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6582
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6868
6583
 
6869
6584
public:
 
6585
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6870
6586
  static const char *NodeId ();
 
6587
  /** Get the name of the node. Can be compared with NodeId(). */
6871
6588
  const char *NodeName () const { return NodeId (); }
 
6589
  /** Get the number of sons. */
6872
6590
  int Sons () const { return 0; }
6873
6591
};
6874
6592
 
 
6593
/** \class CT_Token CTree.h Puma/CTree.h
 
6594
 *  Tree node representing a single token in the source code. */
6875
6595
 
6876
 
#line 6877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6596
#line 6597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
6877
6597
} // closed Puma
 
6598
class CCExprResolve;
 
6599
class CExprResolve;
6878
6600
class WinIfExists;
6879
6601
class WinImportHandler;
6880
6602
class WinMacros;
6881
 
class CMatchSyntax;
6882
 
class ExtGnu;
 
6603
class WinAsm;
 
6604
class WinDeclSpecs;
 
6605
class WinMemberExplSpec;
 
6606
class WinTypeKeywords;
 
6607
class WinFriend;
6883
6608
class ExtAC;
6884
6609
class ExtACBuilderCoupling;
6885
6610
class ExtACSyntaxCoupling;
6886
6611
class ExtACTree;
6887
6612
class ExtACKeywords;
6888
 
class WinAsm;
6889
 
class WinDeclSpecs;
6890
 
class WinMemberExplSpec;
6891
 
class WinTypeKeywords;
 
6613
class ExtGnu;
6892
6614
class PragmaOnceUnitState;
6893
6615
class PragmaOnce;
6894
 
class CCExprResolve;
6895
 
class CExprResolve;
 
6616
class CMatchSyntax;
6896
6617
namespace Puma {
6897
6618
 
6898
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6619
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6899
6620
class CT_Token : public CTree {
6900
 
#line 6901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6621
#line 6622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6622
  friend class ::CCExprResolve;
 
6623
  friend class ::CExprResolve;
6901
6624
  friend class ::WinIfExists;
6902
6625
  friend class ::WinImportHandler;
6903
6626
  friend class ::WinMacros;
6904
 
  friend class ::CMatchSyntax;
6905
 
  friend class ::ExtGnu;
 
6627
  friend class ::WinAsm;
 
6628
  friend class ::WinDeclSpecs;
 
6629
  friend class ::WinMemberExplSpec;
 
6630
  friend class ::WinTypeKeywords;
 
6631
  friend class ::WinFriend;
6906
6632
  friend class ::ExtAC;
6907
6633
  friend class ::ExtACBuilderCoupling;
6908
6634
  friend class ::ExtACSyntaxCoupling;
6909
6635
  friend class ::ExtACTree;
6910
6636
  friend class ::ExtACKeywords;
6911
 
  friend class ::WinAsm;
6912
 
  friend class ::WinDeclSpecs;
6913
 
  friend class ::WinMemberExplSpec;
6914
 
  friend class ::WinTypeKeywords;
 
6637
  friend class ::ExtGnu;
6915
6638
  friend class ::PragmaOnceUnitState;
6916
6639
  friend class ::PragmaOnce;
6917
 
  friend class ::CCExprResolve;
6918
 
  friend class ::CExprResolve;
 
6640
  friend class ::CMatchSyntax;
6919
6641
 
6920
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6642
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6921
6643
 
6922
6644
  Token *_token;
6923
6645
  unsigned long int _number;
6924
6646
  
6925
6647
public:
6926
 
  CT_Token (Token *t, unsigned long int n = 0) : 
6927
 
    _token (t), _number (n) {}
 
6648
  /** Constructor. 
 
6649
   *  \param token The represented token.
 
6650
   *  \param number The token number (a consecutive number). */
 
6651
  CT_Token (Token *token, unsigned long int number = 0) : 
 
6652
    _token (token), _number (number) {}
 
6653
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6928
6654
  static const char *NodeId ();
 
6655
  /** Get the name of the node. Can be compared with NodeId(). */
6929
6656
  const char *NodeName () const { return NodeId (); }
 
6657
  /** Get the number of sons. */
6930
6658
  int Sons () const { return 0; }
 
6659
  /** Get the represented token. */
6931
6660
  Token *token () const { return _token; }
 
6661
  /** Get the represented token. */
6932
6662
  Token *end_token () const { return _token; }
 
6663
  /** Get this. */
6933
6664
  CT_Token *token_node () const { return (CT_Token*)this; }
 
6665
  /** Get this. */
6934
6666
  CT_Token *end_token_node () const { return (CT_Token*)this; }
6935
 
  void Number (unsigned long int n) { _number = n; }
 
6667
  /** Set the token number. 
 
6668
   *  \param number The token number. */ 
 
6669
  void Number (unsigned long int number) { _number = number; }
 
6670
  /** Get the token number. Can be used to indentify this token. */
6936
6671
  unsigned long int Number () const { return _number; }
6937
 
  // special new / delete with reusing memory
 
6672
  
 
6673
public:
 
6674
  /** Own new operator reusing memory. */
6938
6675
  void *operator new (size_t);
6939
 
  void  operator delete (void *);
 
6676
  /** Own delete operator. */
 
6677
  void operator delete (void *);
6940
6678
};
6941
6679
 
6942
6680
/*****************************************************************************/
6945
6683
/*                                                                           */
6946
6684
/*****************************************************************************/
6947
6685
 
 
6686
/** \class CT_List CTree.h Puma/CTree.h
 
6687
 *  Base class for tree nodes representing lists. */
6948
6688
 
6949
 
#line 6950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6689
#line 6690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
6950
6690
} // closed Puma
 
6691
class CCExprResolve;
 
6692
class CExprResolve;
6951
6693
class WinIfExists;
6952
6694
class WinImportHandler;
6953
6695
class WinMacros;
6954
 
class CMatchSyntax;
6955
 
class ExtGnu;
 
6696
class WinAsm;
 
6697
class WinDeclSpecs;
 
6698
class WinMemberExplSpec;
 
6699
class WinTypeKeywords;
 
6700
class WinFriend;
6956
6701
class ExtAC;
6957
6702
class ExtACBuilderCoupling;
6958
6703
class ExtACSyntaxCoupling;
6959
6704
class ExtACTree;
6960
6705
class ExtACKeywords;
6961
 
class WinAsm;
6962
 
class WinDeclSpecs;
6963
 
class WinMemberExplSpec;
6964
 
class WinTypeKeywords;
 
6706
class ExtGnu;
6965
6707
class PragmaOnceUnitState;
6966
6708
class PragmaOnce;
6967
 
class CCExprResolve;
6968
 
class CExprResolve;
 
6709
class CMatchSyntax;
6969
6710
namespace Puma {
6970
6711
 
6971
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6712
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6972
6713
class CT_List : public CTree {
6973
 
#line 6974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6714
#line 6715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6715
  friend class ::CCExprResolve;
 
6716
  friend class ::CExprResolve;
6974
6717
  friend class ::WinIfExists;
6975
6718
  friend class ::WinImportHandler;
6976
6719
  friend class ::WinMacros;
6977
 
  friend class ::CMatchSyntax;
6978
 
  friend class ::ExtGnu;
 
6720
  friend class ::WinAsm;
 
6721
  friend class ::WinDeclSpecs;
 
6722
  friend class ::WinMemberExplSpec;
 
6723
  friend class ::WinTypeKeywords;
 
6724
  friend class ::WinFriend;
6979
6725
  friend class ::ExtAC;
6980
6726
  friend class ::ExtACBuilderCoupling;
6981
6727
  friend class ::ExtACSyntaxCoupling;
6982
6728
  friend class ::ExtACTree;
6983
6729
  friend class ::ExtACKeywords;
6984
 
  friend class ::WinAsm;
6985
 
  friend class ::WinDeclSpecs;
6986
 
  friend class ::WinMemberExplSpec;
6987
 
  friend class ::WinTypeKeywords;
 
6730
  friend class ::ExtGnu;
6988
6731
  friend class ::PragmaOnceUnitState;
6989
6732
  friend class ::PragmaOnce;
6990
 
  friend class ::CCExprResolve;
6991
 
  friend class ::CExprResolve;
 
6733
  friend class ::CMatchSyntax;
6992
6734
 
6993
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6735
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6994
6736
 
6995
6737
  Array<CTree*> _sons;
6996
6738
  int _properties;
6997
6739
 
6998
6740
protected:
 
6741
  /** Constructor.
 
6742
   *  \param size The initial list size.
 
6743
   *  \param incr The initial increment count. 
 
6744
   *  \param props The list properties (bit array). */
6999
6745
  CT_List(int size = 5, int incr = 5, int props = 0) : 
7000
6746
    _sons (size, incr), _properties (props) {}
7001
6747
 
7002
6748
public:
 
6749
  /** List properties. */
7003
6750
  enum {
7004
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
7005
 
    CLOSE = 2,
7006
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
7007
 
    SEPARATORS = 4,   // the list has separators like ','
7008
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
7009
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
7010
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
7011
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
6751
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
6752
    CLOSE = 2,        /** List has an end token */
 
6753
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
6754
    SEPARATORS = 4,   /** List has separators, like ',' */
 
6755
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
6756
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
6757
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
6758
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
7012
6759
  };
7013
6760
 
 
6761
  /** Get the number of list entries. */
7014
6762
  int Entries () const;
7015
 
  CTree *Entry (int no) const;
 
6763
  /** Get the n-th list entry.
 
6764
   *  \param n The index of the entry. 
 
6765
   *  \return The list entry or NULL. */
 
6766
  CTree *Entry (int n) const;
 
6767
  /** Get the number of sons. */
7016
6768
  int Sons () const { return _sons.length (); }
 
6769
  /** Get the n-th son.
 
6770
   *  \param n The index of the son. 
 
6771
   *  \return The n-th son or NULL. */
7017
6772
  CTree *Son (int n) const { return _sons.lookup (n); }
 
6773
  /** Get the list properties. */
7018
6774
  int GetProperties () const { return _properties; }
 
6775
  /** Add a list property.
 
6776
   *  \param p The property to add. */
7019
6777
  void AddProperties (int p) { _properties |= p; }
7020
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
7021
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
7022
 
  void InsertSon (CTree *, CTree *);  // before given son
7023
 
  void ReplaceSon (CTree *, CTree *);
7024
 
  void RemoveSon (CTree *);
 
6778
  /** Add a son.
 
6779
   *  \param s The son to add. */
 
6780
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
6781
  /** Prepend a son.
 
6782
   *  \param s The son to prepend. */
 
6783
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
6784
  /** Insert a son before another son.
 
6785
   *  \param before The son to insert the new son before.
 
6786
   *  \param son The son to insert. */
 
6787
  void InsertSon (CTree *before, CTree *son); 
 
6788
  /** Replace a son.
 
6789
   *  \param old_son The son to replace.
 
6790
   *  \param new_son The new son. */
 
6791
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
6792
  /** Remove a son.
 
6793
   *  \param son The son to remove. */
 
6794
  void RemoveSon (CTree *son);
 
6795
  /** Insert a son at the given index. 
 
6796
   *  \param idx The index at which to insert.
 
6797
   *  \param s The son to insert. */
7025
6798
  void InsertSon (int idx, CTree *s)
7026
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
6799
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
6800
  /** Replace the son at the given index.
 
6801
   *  \param idx The index of the son to replace.
 
6802
   *  \param s The new son. */
7027
6803
  void ReplaceSon (int idx, CTree *s) 
7028
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
6804
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
6805
  /** Remove the son at the given index. 
 
6806
   *  \param idx The index of the son to remove. */
7029
6807
  void RemoveSon (int idx) 
7030
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
6808
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
7031
6809
};
7032
6810
 
 
6811
/** \class CT_ExprList CTree.h Puma/CTree.h
 
6812
 *  Tree node representing an expression list. */
7033
6813
 
7034
 
#line 7035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6814
#line 6815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7035
6815
} // closed Puma
 
6816
class CCExprResolve;
 
6817
class CExprResolve;
7036
6818
class WinIfExists;
7037
6819
class WinImportHandler;
7038
6820
class WinMacros;
7039
 
class CMatchSyntax;
7040
 
class ExtGnu;
 
6821
class WinAsm;
 
6822
class WinDeclSpecs;
 
6823
class WinMemberExplSpec;
 
6824
class WinTypeKeywords;
 
6825
class WinFriend;
7041
6826
class ExtAC;
7042
6827
class ExtACBuilderCoupling;
7043
6828
class ExtACSyntaxCoupling;
7044
6829
class ExtACTree;
7045
6830
class ExtACKeywords;
7046
 
class WinAsm;
7047
 
class WinDeclSpecs;
7048
 
class WinMemberExplSpec;
7049
 
class WinTypeKeywords;
 
6831
class ExtGnu;
7050
6832
class PragmaOnceUnitState;
7051
6833
class PragmaOnce;
7052
 
class CCExprResolve;
7053
 
class CExprResolve;
 
6834
class CMatchSyntax;
7054
6835
namespace Puma {
7055
6836
 
7056
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6837
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7057
6838
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
7058
 
#line 7059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6839
#line 6840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6840
  friend class ::CCExprResolve;
 
6841
  friend class ::CExprResolve;
7059
6842
  friend class ::WinIfExists;
7060
6843
  friend class ::WinImportHandler;
7061
6844
  friend class ::WinMacros;
7062
 
  friend class ::CMatchSyntax;
7063
 
  friend class ::ExtGnu;
 
6845
  friend class ::WinAsm;
 
6846
  friend class ::WinDeclSpecs;
 
6847
  friend class ::WinMemberExplSpec;
 
6848
  friend class ::WinTypeKeywords;
 
6849
  friend class ::WinFriend;
7064
6850
  friend class ::ExtAC;
7065
6851
  friend class ::ExtACBuilderCoupling;
7066
6852
  friend class ::ExtACSyntaxCoupling;
7067
6853
  friend class ::ExtACTree;
7068
6854
  friend class ::ExtACKeywords;
7069
 
  friend class ::WinAsm;
7070
 
  friend class ::WinDeclSpecs;
7071
 
  friend class ::WinMemberExplSpec;
7072
 
  friend class ::WinTypeKeywords;
 
6855
  friend class ::ExtGnu;
7073
6856
  friend class ::PragmaOnceUnitState;
7074
6857
  friend class ::PragmaOnce;
7075
 
  friend class ::CCExprResolve;
7076
 
  friend class ::CExprResolve;
 
6858
  friend class ::CMatchSyntax;
7077
6859
 
7078
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6860
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7079
6861
 
7080
6862
public:
 
6863
  /** Constructor. */
7081
6864
  CT_ExprList () { AddProperties (SEPARATORS); }
 
6865
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7082
6866
  static const char *NodeId ();
 
6867
  /** Get the name of the node. Can be compared with NodeId(). */
7083
6868
  const char *NodeName () const { return NodeId (); }
7084
6869
 
 
6870
  /** Get the type of the last expression in the expression list.
 
6871
   *  \return The type or NULL. */
7085
6872
  CTypeInfo *Type () const { return type; }
 
6873
  /** Get the value of the last expression in the expression list.
 
6874
   *  \return The value of NULL. */
7086
6875
  CExprValue *Value () const { return value; }
 
6876
  /** Get the semantic value of the node. */
7087
6877
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
6878
  /** Get the semantic object of the node. */
7088
6879
  CSemObject *SemObject () const { return (CSemObject*)this; }
7089
6880
};
7090
6881
 
 
6882
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
6883
 *  Tree node representing a list of declarators. */
7091
6884
 
7092
 
#line 7093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6885
#line 6886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7093
6886
} // closed Puma
 
6887
class CCExprResolve;
 
6888
class CExprResolve;
7094
6889
class WinIfExists;
7095
6890
class WinImportHandler;
7096
6891
class WinMacros;
7097
 
class CMatchSyntax;
7098
 
class ExtGnu;
 
6892
class WinAsm;
 
6893
class WinDeclSpecs;
 
6894
class WinMemberExplSpec;
 
6895
class WinTypeKeywords;
 
6896
class WinFriend;
7099
6897
class ExtAC;
7100
6898
class ExtACBuilderCoupling;
7101
6899
class ExtACSyntaxCoupling;
7102
6900
class ExtACTree;
7103
6901
class ExtACKeywords;
7104
 
class WinAsm;
7105
 
class WinDeclSpecs;
7106
 
class WinMemberExplSpec;
7107
 
class WinTypeKeywords;
 
6902
class ExtGnu;
7108
6903
class PragmaOnceUnitState;
7109
6904
class PragmaOnce;
7110
 
class CCExprResolve;
7111
 
class CExprResolve;
 
6905
class CMatchSyntax;
7112
6906
namespace Puma {
7113
6907
 
7114
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6908
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7115
6909
class CT_DeclaratorList : public CT_List {
7116
 
#line 7117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6910
#line 6911 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6911
  friend class ::CCExprResolve;
 
6912
  friend class ::CExprResolve;
7117
6913
  friend class ::WinIfExists;
7118
6914
  friend class ::WinImportHandler;
7119
6915
  friend class ::WinMacros;
7120
 
  friend class ::CMatchSyntax;
7121
 
  friend class ::ExtGnu;
 
6916
  friend class ::WinAsm;
 
6917
  friend class ::WinDeclSpecs;
 
6918
  friend class ::WinMemberExplSpec;
 
6919
  friend class ::WinTypeKeywords;
 
6920
  friend class ::WinFriend;
7122
6921
  friend class ::ExtAC;
7123
6922
  friend class ::ExtACBuilderCoupling;
7124
6923
  friend class ::ExtACSyntaxCoupling;
7125
6924
  friend class ::ExtACTree;
7126
6925
  friend class ::ExtACKeywords;
7127
 
  friend class ::WinAsm;
7128
 
  friend class ::WinDeclSpecs;
7129
 
  friend class ::WinMemberExplSpec;
7130
 
  friend class ::WinTypeKeywords;
 
6926
  friend class ::ExtGnu;
7131
6927
  friend class ::PragmaOnceUnitState;
7132
6928
  friend class ::PragmaOnce;
7133
 
  friend class ::CCExprResolve;
7134
 
  friend class ::CExprResolve;
 
6929
  friend class ::CMatchSyntax;
7135
6930
 
7136
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6931
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7137
6932
 
7138
6933
public:
 
6934
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7139
6935
  static const char *NodeId ();
 
6936
  /** Get the name of the node. Can be compared with NodeId(). */
7140
6937
  const char *NodeName () const { return NodeId (); }
7141
6938
};
7142
6939
 
 
6940
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
6941
 *  Tree node representing a list of enumerator constants. */
7143
6942
 
7144
 
#line 7145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6943
#line 6944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7145
6944
} // closed Puma
 
6945
class CCExprResolve;
 
6946
class CExprResolve;
7146
6947
class WinIfExists;
7147
6948
class WinImportHandler;
7148
6949
class WinMacros;
7149
 
class CMatchSyntax;
7150
 
class ExtGnu;
 
6950
class WinAsm;
 
6951
class WinDeclSpecs;
 
6952
class WinMemberExplSpec;
 
6953
class WinTypeKeywords;
 
6954
class WinFriend;
7151
6955
class ExtAC;
7152
6956
class ExtACBuilderCoupling;
7153
6957
class ExtACSyntaxCoupling;
7154
6958
class ExtACTree;
7155
6959
class ExtACKeywords;
7156
 
class WinAsm;
7157
 
class WinDeclSpecs;
7158
 
class WinMemberExplSpec;
7159
 
class WinTypeKeywords;
 
6960
class ExtGnu;
7160
6961
class PragmaOnceUnitState;
7161
6962
class PragmaOnce;
7162
 
class CCExprResolve;
7163
 
class CExprResolve;
 
6963
class CMatchSyntax;
7164
6964
namespace Puma {
7165
6965
 
7166
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6966
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7167
6967
class CT_EnumeratorList : public CT_List {
7168
 
#line 7169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
6968
#line 6969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
6969
  friend class ::CCExprResolve;
 
6970
  friend class ::CExprResolve;
7169
6971
  friend class ::WinIfExists;
7170
6972
  friend class ::WinImportHandler;
7171
6973
  friend class ::WinMacros;
7172
 
  friend class ::CMatchSyntax;
7173
 
  friend class ::ExtGnu;
 
6974
  friend class ::WinAsm;
 
6975
  friend class ::WinDeclSpecs;
 
6976
  friend class ::WinMemberExplSpec;
 
6977
  friend class ::WinTypeKeywords;
 
6978
  friend class ::WinFriend;
7174
6979
  friend class ::ExtAC;
7175
6980
  friend class ::ExtACBuilderCoupling;
7176
6981
  friend class ::ExtACSyntaxCoupling;
7177
6982
  friend class ::ExtACTree;
7178
6983
  friend class ::ExtACKeywords;
7179
 
  friend class ::WinAsm;
7180
 
  friend class ::WinDeclSpecs;
7181
 
  friend class ::WinMemberExplSpec;
7182
 
  friend class ::WinTypeKeywords;
 
6984
  friend class ::ExtGnu;
7183
6985
  friend class ::PragmaOnceUnitState;
7184
6986
  friend class ::PragmaOnce;
7185
 
  friend class ::CCExprResolve;
7186
 
  friend class ::CExprResolve;
 
6987
  friend class ::CMatchSyntax;
7187
6988
 
7188
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6989
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7189
6990
 
7190
6991
public:
 
6992
  /** Constructor. */
7191
6993
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
6994
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7192
6995
  static const char *NodeId ();
 
6996
  /** Get the name of the node. Can be compared with NodeId(). */
7193
6997
  const char *NodeName () const { return NodeId (); }
7194
6998
};
7195
6999
   
 
7000
/** \class CT_DeclList CTree.h Puma/CTree.h
 
7001
 *  Tree node representing a list of declarations. */
7196
7002
 
7197
 
#line 7198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7003
#line 7004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7198
7004
} // closed Puma
 
7005
class CCExprResolve;
 
7006
class CExprResolve;
7199
7007
class WinIfExists;
7200
7008
class WinImportHandler;
7201
7009
class WinMacros;
7202
 
class CMatchSyntax;
7203
 
class ExtGnu;
 
7010
class WinAsm;
 
7011
class WinDeclSpecs;
 
7012
class WinMemberExplSpec;
 
7013
class WinTypeKeywords;
 
7014
class WinFriend;
7204
7015
class ExtAC;
7205
7016
class ExtACBuilderCoupling;
7206
7017
class ExtACSyntaxCoupling;
7207
7018
class ExtACTree;
7208
7019
class ExtACKeywords;
7209
 
class WinAsm;
7210
 
class WinDeclSpecs;
7211
 
class WinMemberExplSpec;
7212
 
class WinTypeKeywords;
 
7020
class ExtGnu;
7213
7021
class PragmaOnceUnitState;
7214
7022
class PragmaOnce;
7215
 
class CCExprResolve;
7216
 
class CExprResolve;
 
7023
class CMatchSyntax;
7217
7024
namespace Puma {
7218
7025
 
7219
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7026
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7220
7027
class CT_DeclList : public CT_List {
7221
 
#line 7222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7028
#line 7029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7029
  friend class ::CCExprResolve;
 
7030
  friend class ::CExprResolve;
7222
7031
  friend class ::WinIfExists;
7223
7032
  friend class ::WinImportHandler;
7224
7033
  friend class ::WinMacros;
7225
 
  friend class ::CMatchSyntax;
7226
 
  friend class ::ExtGnu;
 
7034
  friend class ::WinAsm;
 
7035
  friend class ::WinDeclSpecs;
 
7036
  friend class ::WinMemberExplSpec;
 
7037
  friend class ::WinTypeKeywords;
 
7038
  friend class ::WinFriend;
7227
7039
  friend class ::ExtAC;
7228
7040
  friend class ::ExtACBuilderCoupling;
7229
7041
  friend class ::ExtACSyntaxCoupling;
7230
7042
  friend class ::ExtACTree;
7231
7043
  friend class ::ExtACKeywords;
7232
 
  friend class ::WinAsm;
7233
 
  friend class ::WinDeclSpecs;
7234
 
  friend class ::WinMemberExplSpec;
7235
 
  friend class ::WinTypeKeywords;
 
7044
  friend class ::ExtGnu;
7236
7045
  friend class ::PragmaOnceUnitState;
7237
7046
  friend class ::PragmaOnce;
7238
 
  friend class ::CCExprResolve;
7239
 
  friend class ::CExprResolve;
 
7047
  friend class ::CMatchSyntax;
7240
7048
 
7241
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7049
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7242
7050
 
7243
7051
public:
 
7052
  /** Constructor. 
 
7053
   *  \param size The initial size of the list.
 
7054
   *  \param incr The initial increment count of the list. */
7244
7055
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
7056
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7245
7057
  static const char *NodeId ();
 
7058
  /** Get the name of the node. Can be compared with NodeId(). */
7246
7059
  const char *NodeName () const { return NodeId (); }
 
7060
  /** Set the linkage specifiers to each declaration in the list.
 
7061
   *  \param l The linkage specifiers node. */
7247
7062
  void Linkage (CT_LinkageSpec *l);
7248
7063
};
7249
7064
 
 
7065
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
7066
 *  Tree node representing a sequence of declaration specifiers. */
7250
7067
 
7251
 
#line 7252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7068
#line 7069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7252
7069
} // closed Puma
 
7070
class CCExprResolve;
 
7071
class CExprResolve;
7253
7072
class WinIfExists;
7254
7073
class WinImportHandler;
7255
7074
class WinMacros;
7256
 
class CMatchSyntax;
7257
 
class ExtGnu;
 
7075
class WinAsm;
 
7076
class WinDeclSpecs;
 
7077
class WinMemberExplSpec;
 
7078
class WinTypeKeywords;
 
7079
class WinFriend;
7258
7080
class ExtAC;
7259
7081
class ExtACBuilderCoupling;
7260
7082
class ExtACSyntaxCoupling;
7261
7083
class ExtACTree;
7262
7084
class ExtACKeywords;
7263
 
class WinAsm;
7264
 
class WinDeclSpecs;
7265
 
class WinMemberExplSpec;
7266
 
class WinTypeKeywords;
 
7085
class ExtGnu;
7267
7086
class PragmaOnceUnitState;
7268
7087
class PragmaOnce;
7269
 
class CCExprResolve;
7270
 
class CExprResolve;
 
7088
class CMatchSyntax;
7271
7089
namespace Puma {
7272
7090
 
7273
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7091
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7274
7092
class CT_DeclSpecSeq : public CT_List {
7275
 
#line 7276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7093
#line 7094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7094
  friend class ::CCExprResolve;
 
7095
  friend class ::CExprResolve;
7276
7096
  friend class ::WinIfExists;
7277
7097
  friend class ::WinImportHandler;
7278
7098
  friend class ::WinMacros;
7279
 
  friend class ::CMatchSyntax;
7280
 
  friend class ::ExtGnu;
 
7099
  friend class ::WinAsm;
 
7100
  friend class ::WinDeclSpecs;
 
7101
  friend class ::WinMemberExplSpec;
 
7102
  friend class ::WinTypeKeywords;
 
7103
  friend class ::WinFriend;
7281
7104
  friend class ::ExtAC;
7282
7105
  friend class ::ExtACBuilderCoupling;
7283
7106
  friend class ::ExtACSyntaxCoupling;
7284
7107
  friend class ::ExtACTree;
7285
7108
  friend class ::ExtACKeywords;
7286
 
  friend class ::WinAsm;
7287
 
  friend class ::WinDeclSpecs;
7288
 
  friend class ::WinMemberExplSpec;
7289
 
  friend class ::WinTypeKeywords;
 
7109
  friend class ::ExtGnu;
7290
7110
  friend class ::PragmaOnceUnitState;
7291
7111
  friend class ::PragmaOnce;
7292
 
  friend class ::CCExprResolve;
7293
 
  friend class ::CExprResolve;
 
7112
  friend class ::CMatchSyntax;
7294
7113
 
7295
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7114
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7296
7115
 
7297
7116
public:
 
7117
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7298
7118
  static const char *NodeId ();
 
7119
  /** Get the name of the node. Can be compared with NodeId(). */
7299
7120
  const char *NodeName () const { return NodeId (); }
7300
7121
};
7301
7122
 
 
7123
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
7124
 *  Tree node representing a compound statement. */
7302
7125
 
7303
 
#line 7304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7126
#line 7127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7304
7127
} // closed Puma
 
7128
class CCExprResolve;
 
7129
class CExprResolve;
7305
7130
class WinIfExists;
7306
7131
class WinImportHandler;
7307
7132
class WinMacros;
7308
 
class CMatchSyntax;
7309
 
class ExtGnu;
 
7133
class WinAsm;
 
7134
class WinDeclSpecs;
 
7135
class WinMemberExplSpec;
 
7136
class WinTypeKeywords;
 
7137
class WinFriend;
7310
7138
class ExtAC;
7311
7139
class ExtACBuilderCoupling;
7312
7140
class ExtACSyntaxCoupling;
7313
7141
class ExtACTree;
7314
7142
class ExtACKeywords;
7315
 
class WinAsm;
7316
 
class WinDeclSpecs;
7317
 
class WinMemberExplSpec;
7318
 
class WinTypeKeywords;
 
7143
class ExtGnu;
7319
7144
class PragmaOnceUnitState;
7320
7145
class PragmaOnce;
7321
 
class CCExprResolve;
7322
 
class CExprResolve;
 
7146
class CMatchSyntax;
7323
7147
namespace Puma {
7324
7148
 
7325
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7149
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7326
7150
class CT_CmpdStmt : public CT_List, public CSemScope {
7327
 
#line 7328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7151
#line 7152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7152
  friend class ::CCExprResolve;
 
7153
  friend class ::CExprResolve;
7328
7154
  friend class ::WinIfExists;
7329
7155
  friend class ::WinImportHandler;
7330
7156
  friend class ::WinMacros;
7331
 
  friend class ::CMatchSyntax;
7332
 
  friend class ::ExtGnu;
 
7157
  friend class ::WinAsm;
 
7158
  friend class ::WinDeclSpecs;
 
7159
  friend class ::WinMemberExplSpec;
 
7160
  friend class ::WinTypeKeywords;
 
7161
  friend class ::WinFriend;
7333
7162
  friend class ::ExtAC;
7334
7163
  friend class ::ExtACBuilderCoupling;
7335
7164
  friend class ::ExtACSyntaxCoupling;
7336
7165
  friend class ::ExtACTree;
7337
7166
  friend class ::ExtACKeywords;
7338
 
  friend class ::WinAsm;
7339
 
  friend class ::WinDeclSpecs;
7340
 
  friend class ::WinMemberExplSpec;
7341
 
  friend class ::WinTypeKeywords;
 
7167
  friend class ::ExtGnu;
7342
7168
  friend class ::PragmaOnceUnitState;
7343
7169
  friend class ::PragmaOnce;
7344
 
  friend class ::CCExprResolve;
7345
 
  friend class ::CExprResolve;
 
7170
  friend class ::CMatchSyntax;
7346
7171
 
7347
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7172
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7348
7173
 
7349
7174
public:
 
7175
  /* Constructor. */
7350
7176
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
7177
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7351
7178
  static const char *NodeId ();
 
7179
  /** Get the name of the node. Can be compared with NodeId(). */
7352
7180
  const char *NodeName () const { return NodeId (); }
 
7181
  /** Get the local scope of the compound statement. */
 
7182
  CSemScope *SemScope () const { return (CSemScope*)this; }
7353
7183
};
7354
7184
 
 
7185
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
7186
 *  Tree node representing an exception handler sequence. */
7355
7187
 
7356
 
#line 7357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7188
#line 7189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7357
7189
} // closed Puma
 
7190
class CCExprResolve;
 
7191
class CExprResolve;
7358
7192
class WinIfExists;
7359
7193
class WinImportHandler;
7360
7194
class WinMacros;
7361
 
class CMatchSyntax;
7362
 
class ExtGnu;
 
7195
class WinAsm;
 
7196
class WinDeclSpecs;
 
7197
class WinMemberExplSpec;
 
7198
class WinTypeKeywords;
 
7199
class WinFriend;
7363
7200
class ExtAC;
7364
7201
class ExtACBuilderCoupling;
7365
7202
class ExtACSyntaxCoupling;
7366
7203
class ExtACTree;
7367
7204
class ExtACKeywords;
7368
 
class WinAsm;
7369
 
class WinDeclSpecs;
7370
 
class WinMemberExplSpec;
7371
 
class WinTypeKeywords;
 
7205
class ExtGnu;
7372
7206
class PragmaOnceUnitState;
7373
7207
class PragmaOnce;
7374
 
class CCExprResolve;
7375
 
class CExprResolve;
 
7208
class CMatchSyntax;
7376
7209
namespace Puma {
7377
7210
 
7378
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7211
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7379
7212
class CT_HandlerSeq : public CT_List {
7380
 
#line 7381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7213
#line 7214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7214
  friend class ::CCExprResolve;
 
7215
  friend class ::CExprResolve;
7381
7216
  friend class ::WinIfExists;
7382
7217
  friend class ::WinImportHandler;
7383
7218
  friend class ::WinMacros;
7384
 
  friend class ::CMatchSyntax;
7385
 
  friend class ::ExtGnu;
 
7219
  friend class ::WinAsm;
 
7220
  friend class ::WinDeclSpecs;
 
7221
  friend class ::WinMemberExplSpec;
 
7222
  friend class ::WinTypeKeywords;
 
7223
  friend class ::WinFriend;
7386
7224
  friend class ::ExtAC;
7387
7225
  friend class ::ExtACBuilderCoupling;
7388
7226
  friend class ::ExtACSyntaxCoupling;
7389
7227
  friend class ::ExtACTree;
7390
7228
  friend class ::ExtACKeywords;
7391
 
  friend class ::WinAsm;
7392
 
  friend class ::WinDeclSpecs;
7393
 
  friend class ::WinMemberExplSpec;
7394
 
  friend class ::WinTypeKeywords;
 
7229
  friend class ::ExtGnu;
7395
7230
  friend class ::PragmaOnceUnitState;
7396
7231
  friend class ::PragmaOnce;
7397
 
  friend class ::CCExprResolve;
7398
 
  friend class ::CExprResolve;
 
7232
  friend class ::CMatchSyntax;
7399
7233
 
7400
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7234
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7401
7235
 
7402
7236
public:
 
7237
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7403
7238
  static const char *NodeId ();
 
7239
  /** Get the name of the node. Can be compared with NodeId(). */
7404
7240
  const char *NodeName () const { return NodeId (); }
7405
7241
};
7406
7242
 
 
7243
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
7244
 *  Tree node representing a template parameter list. */
7407
7245
 
7408
 
#line 7409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7246
#line 7247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7409
7247
} // closed Puma
 
7248
class CCExprResolve;
 
7249
class CExprResolve;
7410
7250
class WinIfExists;
7411
7251
class WinImportHandler;
7412
7252
class WinMacros;
7413
 
class CMatchSyntax;
7414
 
class ExtGnu;
 
7253
class WinAsm;
 
7254
class WinDeclSpecs;
 
7255
class WinMemberExplSpec;
 
7256
class WinTypeKeywords;
 
7257
class WinFriend;
7415
7258
class ExtAC;
7416
7259
class ExtACBuilderCoupling;
7417
7260
class ExtACSyntaxCoupling;
7418
7261
class ExtACTree;
7419
7262
class ExtACKeywords;
7420
 
class WinAsm;
7421
 
class WinDeclSpecs;
7422
 
class WinMemberExplSpec;
7423
 
class WinTypeKeywords;
 
7263
class ExtGnu;
7424
7264
class PragmaOnceUnitState;
7425
7265
class PragmaOnce;
7426
 
class CCExprResolve;
7427
 
class CExprResolve;
 
7266
class CMatchSyntax;
7428
7267
namespace Puma {
7429
7268
 
7430
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7269
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7431
7270
class CT_TemplateParamList : public CT_List, public CSemScope {
7432
 
#line 7433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7271
#line 7272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7272
  friend class ::CCExprResolve;
 
7273
  friend class ::CExprResolve;
7433
7274
  friend class ::WinIfExists;
7434
7275
  friend class ::WinImportHandler;
7435
7276
  friend class ::WinMacros;
7436
 
  friend class ::CMatchSyntax;
7437
 
  friend class ::ExtGnu;
 
7277
  friend class ::WinAsm;
 
7278
  friend class ::WinDeclSpecs;
 
7279
  friend class ::WinMemberExplSpec;
 
7280
  friend class ::WinTypeKeywords;
 
7281
  friend class ::WinFriend;
7438
7282
  friend class ::ExtAC;
7439
7283
  friend class ::ExtACBuilderCoupling;
7440
7284
  friend class ::ExtACSyntaxCoupling;
7441
7285
  friend class ::ExtACTree;
7442
7286
  friend class ::ExtACKeywords;
7443
 
  friend class ::WinAsm;
7444
 
  friend class ::WinDeclSpecs;
7445
 
  friend class ::WinMemberExplSpec;
7446
 
  friend class ::WinTypeKeywords;
 
7287
  friend class ::ExtGnu;
7447
7288
  friend class ::PragmaOnceUnitState;
7448
7289
  friend class ::PragmaOnce;
7449
 
  friend class ::CCExprResolve;
7450
 
  friend class ::CExprResolve;
 
7290
  friend class ::CMatchSyntax;
7451
7291
 
7452
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7292
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7453
7293
 
7454
7294
public:
7455
7295
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
7296
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7456
7297
  static const char *NodeId ();
 
7298
  /** Get the name of the node. Can be compared with NodeId(). */
7457
7299
  const char *NodeName () const { return NodeId (); }
 
7300
  /** Get the scope of the template parameter list. */
 
7301
  CSemScope *SemScope () const { return (CSemScope*)this; }
7458
7302
};
7459
7303
 
 
7304
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
7305
 *  Tree node representing a template argument list. */
7460
7306
 
7461
 
#line 7462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7307
#line 7308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7462
7308
} // closed Puma
 
7309
class CCExprResolve;
 
7310
class CExprResolve;
7463
7311
class WinIfExists;
7464
7312
class WinImportHandler;
7465
7313
class WinMacros;
7466
 
class CMatchSyntax;
7467
 
class ExtGnu;
 
7314
class WinAsm;
 
7315
class WinDeclSpecs;
 
7316
class WinMemberExplSpec;
 
7317
class WinTypeKeywords;
 
7318
class WinFriend;
7468
7319
class ExtAC;
7469
7320
class ExtACBuilderCoupling;
7470
7321
class ExtACSyntaxCoupling;
7471
7322
class ExtACTree;
7472
7323
class ExtACKeywords;
7473
 
class WinAsm;
7474
 
class WinDeclSpecs;
7475
 
class WinMemberExplSpec;
7476
 
class WinTypeKeywords;
 
7324
class ExtGnu;
7477
7325
class PragmaOnceUnitState;
7478
7326
class PragmaOnce;
7479
 
class CCExprResolve;
7480
 
class CExprResolve;
 
7327
class CMatchSyntax;
7481
7328
namespace Puma {
7482
7329
 
7483
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7330
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7484
7331
class CT_TemplateArgList : public CT_List {
7485
 
#line 7486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7332
#line 7333 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7333
  friend class ::CCExprResolve;
 
7334
  friend class ::CExprResolve;
7486
7335
  friend class ::WinIfExists;
7487
7336
  friend class ::WinImportHandler;
7488
7337
  friend class ::WinMacros;
7489
 
  friend class ::CMatchSyntax;
7490
 
  friend class ::ExtGnu;
 
7338
  friend class ::WinAsm;
 
7339
  friend class ::WinDeclSpecs;
 
7340
  friend class ::WinMemberExplSpec;
 
7341
  friend class ::WinTypeKeywords;
 
7342
  friend class ::WinFriend;
7491
7343
  friend class ::ExtAC;
7492
7344
  friend class ::ExtACBuilderCoupling;
7493
7345
  friend class ::ExtACSyntaxCoupling;
7494
7346
  friend class ::ExtACTree;
7495
7347
  friend class ::ExtACKeywords;
7496
 
  friend class ::WinAsm;
7497
 
  friend class ::WinDeclSpecs;
7498
 
  friend class ::WinMemberExplSpec;
7499
 
  friend class ::WinTypeKeywords;
 
7348
  friend class ::ExtGnu;
7500
7349
  friend class ::PragmaOnceUnitState;
7501
7350
  friend class ::PragmaOnce;
7502
 
  friend class ::CCExprResolve;
7503
 
  friend class ::CExprResolve;
 
7351
  friend class ::CMatchSyntax;
7504
7352
 
7505
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7353
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7506
7354
 
7507
7355
public:
 
7356
  /** Constructor. */
7508
7357
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
7358
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7509
7359
  static const char *NodeId ();
 
7360
  /** Get the name of the node. Can be compared with NodeId(). */
7510
7361
  const char *NodeName () const { return NodeId (); }
7511
7362
};
7512
7363
 
7516
7367
/*                                                                           */
7517
7368
/*****************************************************************************/
7518
7369
 
 
7370
/** \class CT_Expression CTree.h Puma/CTree.h
 
7371
 *  Base class for all expression tree nodes. */
7519
7372
 
7520
 
#line 7521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7373
#line 7374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7521
7374
} // closed Puma
 
7375
class CCExprResolve;
 
7376
class CExprResolve;
7522
7377
class WinIfExists;
7523
7378
class WinImportHandler;
7524
7379
class WinMacros;
7525
 
class CMatchSyntax;
7526
 
class ExtGnu;
 
7380
class WinAsm;
 
7381
class WinDeclSpecs;
 
7382
class WinMemberExplSpec;
 
7383
class WinTypeKeywords;
 
7384
class WinFriend;
7527
7385
class ExtAC;
7528
7386
class ExtACBuilderCoupling;
7529
7387
class ExtACSyntaxCoupling;
7530
7388
class ExtACTree;
7531
7389
class ExtACKeywords;
7532
 
class WinAsm;
7533
 
class WinDeclSpecs;
7534
 
class WinMemberExplSpec;
7535
 
class WinTypeKeywords;
 
7390
class ExtGnu;
7536
7391
class PragmaOnceUnitState;
7537
7392
class PragmaOnce;
7538
 
class CCExprResolve;
7539
 
class CExprResolve;
7540
 
namespace Puma {
7541
 
 
7542
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7393
class CMatchSyntax;
 
7394
namespace Puma {
 
7395
 
 
7396
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7397
 
 
7398
#line 7399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7399
} // closed Puma
 
7400
 
 
7401
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7402
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7403
#include "CCExprResolveH.ah"
 
7404
#endif
 
7405
namespace Puma {
 
7406
 
 
7407
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7408
 
 
7409
#line 7410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7410
} // closed Puma
 
7411
 
 
7412
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7413
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7414
#include "CExprResolveH.ah"
 
7415
#endif
 
7416
namespace Puma {
 
7417
 
 
7418
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7543
7419
class CT_Expression : public CTree, public CSemValue {
7544
 
#line 7545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7420
#line 7421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7421
  friend class ::CCExprResolve;
 
7422
  friend class ::CExprResolve;
7545
7423
  friend class ::WinIfExists;
7546
7424
  friend class ::WinImportHandler;
7547
7425
  friend class ::WinMacros;
7548
 
  friend class ::CMatchSyntax;
7549
 
  friend class ::ExtGnu;
 
7426
  friend class ::WinAsm;
 
7427
  friend class ::WinDeclSpecs;
 
7428
  friend class ::WinMemberExplSpec;
 
7429
  friend class ::WinTypeKeywords;
 
7430
  friend class ::WinFriend;
7550
7431
  friend class ::ExtAC;
7551
7432
  friend class ::ExtACBuilderCoupling;
7552
7433
  friend class ::ExtACSyntaxCoupling;
7553
7434
  friend class ::ExtACTree;
7554
7435
  friend class ::ExtACKeywords;
7555
 
  friend class ::WinAsm;
7556
 
  friend class ::WinDeclSpecs;
7557
 
  friend class ::WinMemberExplSpec;
7558
 
  friend class ::WinTypeKeywords;
 
7436
  friend class ::ExtGnu;
7559
7437
  friend class ::PragmaOnceUnitState;
7560
7438
  friend class ::PragmaOnce;
7561
 
  friend class ::CCExprResolve;
7562
 
  friend class ::CExprResolve;
 
7439
  friend class ::CMatchSyntax;
7563
7440
 
7564
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7441
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7565
7442
 
7566
7443
protected:
 
7444
  /** Constructor. */
7567
7445
  CT_Expression () {}
7568
7446
 
7569
7447
public:
 
7448
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7570
7449
  static const char *NodeId ();
 
7450
  /** Get the name of the node. Can be compared with NodeId(). */
7571
7451
  const char *NodeName () const { return NodeId (); }
 
7452
  /** Get the type of the expression.
 
7453
   *  \return The type information object or NULL. */
7572
7454
  CTypeInfo *Type () const { return type; }
 
7455
  /** Get the value of the expression.
 
7456
   *  \return The value object or NULL. */
7573
7457
  CExprValue *Value () const { return value; }
 
7458
  /** Get the semantic value information of the expression.
 
7459
   *  \return The value object or NULL. */
7574
7460
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
7461
  /** Get this. */
 
7462
  virtual CT_Expression *IsExpression () { return this; }
7575
7463
   private:
7576
7464
  typedef CT_Expression CCExprResolveExpr;
7577
7465
 
7578
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7466
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7579
7467
 public :
7580
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
7468
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7581
7469
  typedef CT_Expression CExprResolveExpr;
7582
7470
 
7583
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7584
 
 public :
7585
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7586
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7587
 
};
7588
 
 
7589
 
 
7590
 
#line 7591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
7591
 
} // closed Puma
7592
 
class WinIfExists;
7593
 
class WinImportHandler;
7594
 
class WinMacros;
7595
 
class CMatchSyntax;
7596
 
class ExtGnu;
7597
 
class ExtAC;
7598
 
class ExtACBuilderCoupling;
7599
 
class ExtACSyntaxCoupling;
7600
 
class ExtACTree;
7601
 
class ExtACKeywords;
7602
 
class WinAsm;
7603
 
class WinDeclSpecs;
7604
 
class WinMemberExplSpec;
7605
 
class WinTypeKeywords;
7606
 
class PragmaOnceUnitState;
7607
 
class PragmaOnce;
7608
 
class CCExprResolve;
7609
 
class CExprResolve;
7610
 
namespace Puma {
7611
 
 
7612
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7471
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7472
 public :
 
7473
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7474
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7475
};
 
7476
 
 
7477
/** \class CT_Call CTree.h Puma/CTree.h
 
7478
 *  Tree node representing explicit or implicit function calls 
 
7479
 *  including built-in or user-defined functions and overloaded
 
7480
 *  operators. */
 
7481
 
 
7482
#line 7483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7483
} // closed Puma
 
7484
class CCExprResolve;
 
7485
class CExprResolve;
 
7486
class WinIfExists;
 
7487
class WinImportHandler;
 
7488
class WinMacros;
 
7489
class WinAsm;
 
7490
class WinDeclSpecs;
 
7491
class WinMemberExplSpec;
 
7492
class WinTypeKeywords;
 
7493
class WinFriend;
 
7494
class ExtAC;
 
7495
class ExtACBuilderCoupling;
 
7496
class ExtACSyntaxCoupling;
 
7497
class ExtACTree;
 
7498
class ExtACKeywords;
 
7499
class ExtGnu;
 
7500
class PragmaOnceUnitState;
 
7501
class PragmaOnce;
 
7502
class CMatchSyntax;
 
7503
namespace Puma {
 
7504
 
 
7505
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7506
 
 
7507
#line 7508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7508
} // closed Puma
 
7509
 
 
7510
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7511
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7512
#include "CCExprResolveH.ah"
 
7513
#endif
 
7514
namespace Puma {
 
7515
 
 
7516
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7517
 
 
7518
#line 7519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7519
} // closed Puma
 
7520
 
 
7521
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7522
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7523
#include "CExprResolveH.ah"
 
7524
#endif
 
7525
namespace Puma {
 
7526
 
 
7527
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7528
class CT_Call : public CT_Expression, public CSemObject {
 
7529
#line 7530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7530
  friend class ::CCExprResolve;
 
7531
  friend class ::CExprResolve;
 
7532
  friend class ::WinIfExists;
 
7533
  friend class ::WinImportHandler;
 
7534
  friend class ::WinMacros;
 
7535
  friend class ::WinAsm;
 
7536
  friend class ::WinDeclSpecs;
 
7537
  friend class ::WinMemberExplSpec;
 
7538
  friend class ::WinTypeKeywords;
 
7539
  friend class ::WinFriend;
 
7540
  friend class ::ExtAC;
 
7541
  friend class ::ExtACBuilderCoupling;
 
7542
  friend class ::ExtACSyntaxCoupling;
 
7543
  friend class ::ExtACTree;
 
7544
  friend class ::ExtACKeywords;
 
7545
  friend class ::ExtGnu;
 
7546
  friend class ::PragmaOnceUnitState;
 
7547
  friend class ::PragmaOnce;
 
7548
  friend class ::CMatchSyntax;
 
7549
 
 
7550
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7551
 
 
7552
protected:
 
7553
  /** Constructor. */
 
7554
  CT_Call () {}
 
7555
  
 
7556
public:
 
7557
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7558
  static const char *NodeId ();
 
7559
  /** Get the name of the node. Can be compared with NodeId(). */
 
7560
  const char *NodeName () const { return NodeId (); }
 
7561
  /** Get the semantic information of the call.
 
7562
   *  \return The semantic information or NULL. */
 
7563
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
7564
  /** Get this. */
 
7565
  CT_Call *IsCall () { return this; }
 
7566
   private:
 
7567
  typedef CT_Call CCExprResolveExpr;
 
7568
 
 
7569
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7570
 public :
 
7571
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7572
  typedef CT_Call CExprResolveExpr;
 
7573
 
 
7574
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7575
 public :
 
7576
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7577
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7578
};
 
7579
 
 
7580
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
7581
 *  Tree node representing implicit function calls detected by
 
7582
 *  the semantic analysis. */
 
7583
 
 
7584
#line 7585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7585
} // closed Puma
 
7586
class CCExprResolve;
 
7587
class CExprResolve;
 
7588
class WinIfExists;
 
7589
class WinImportHandler;
 
7590
class WinMacros;
 
7591
class WinAsm;
 
7592
class WinDeclSpecs;
 
7593
class WinMemberExplSpec;
 
7594
class WinTypeKeywords;
 
7595
class WinFriend;
 
7596
class ExtAC;
 
7597
class ExtACBuilderCoupling;
 
7598
class ExtACSyntaxCoupling;
 
7599
class ExtACTree;
 
7600
class ExtACKeywords;
 
7601
class ExtGnu;
 
7602
class PragmaOnceUnitState;
 
7603
class PragmaOnce;
 
7604
class CMatchSyntax;
 
7605
namespace Puma {
 
7606
 
 
7607
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7608
 
 
7609
#line 7610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7610
} // closed Puma
 
7611
 
 
7612
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7613
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7614
#include "CCExprResolveH.ah"
 
7615
#endif
 
7616
namespace Puma {
 
7617
 
 
7618
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7619
 
 
7620
#line 7621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7621
} // closed Puma
 
7622
 
 
7623
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7624
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7625
#include "CExprResolveH.ah"
 
7626
#endif
 
7627
namespace Puma {
 
7628
 
 
7629
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7630
class CT_ImplicitCall : public CT_Call {
 
7631
#line 7632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7632
  friend class ::CCExprResolve;
 
7633
  friend class ::CExprResolve;
 
7634
  friend class ::WinIfExists;
 
7635
  friend class ::WinImportHandler;
 
7636
  friend class ::WinMacros;
 
7637
  friend class ::WinAsm;
 
7638
  friend class ::WinDeclSpecs;
 
7639
  friend class ::WinMemberExplSpec;
 
7640
  friend class ::WinTypeKeywords;
 
7641
  friend class ::WinFriend;
 
7642
  friend class ::ExtAC;
 
7643
  friend class ::ExtACBuilderCoupling;
 
7644
  friend class ::ExtACSyntaxCoupling;
 
7645
  friend class ::ExtACTree;
 
7646
  friend class ::ExtACKeywords;
 
7647
  friend class ::ExtGnu;
 
7648
  friend class ::PragmaOnceUnitState;
 
7649
  friend class ::PragmaOnce;
 
7650
  friend class ::CMatchSyntax;
 
7651
 
 
7652
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7653
 
 
7654
  CTree *_arg;
 
7655
 
 
7656
public:
 
7657
  /** Constructor.
 
7658
   *  \param arg The call argument. */
 
7659
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
7660
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7661
  static const char *NodeId ();
 
7662
  /** Get the name of the node. Can be compared with NodeId(). */
 
7663
  const char *NodeName () const { return NodeId (); }
 
7664
  /** Get the number of sons. */
 
7665
  int Sons () const { return 1; }
 
7666
  /** Get the n-th son.
 
7667
   *  \param n The index of the son.
 
7668
   *  \return The n-th son or NULL. */
 
7669
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
7670
  /** Replace a son.
 
7671
   *  \param old_son The son to replace.
 
7672
   *  \param new_son The new son. */
 
7673
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7674
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
7675
   private:
 
7676
  typedef CT_ImplicitCall CCExprResolveExpr;
 
7677
 
 
7678
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7679
 public :
 
7680
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7681
  typedef CT_ImplicitCall CExprResolveExpr;
 
7682
 
 
7683
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7684
 public :
 
7685
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7686
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7687
};
 
7688
 
 
7689
/** \class CT_String CTree.h Puma/CTree.h
 
7690
 *  Tree node representing a string literal. */
 
7691
 
 
7692
#line 7693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7693
} // closed Puma
 
7694
class CCExprResolve;
 
7695
class CExprResolve;
 
7696
class WinIfExists;
 
7697
class WinImportHandler;
 
7698
class WinMacros;
 
7699
class WinAsm;
 
7700
class WinDeclSpecs;
 
7701
class WinMemberExplSpec;
 
7702
class WinTypeKeywords;
 
7703
class WinFriend;
 
7704
class ExtAC;
 
7705
class ExtACBuilderCoupling;
 
7706
class ExtACSyntaxCoupling;
 
7707
class ExtACTree;
 
7708
class ExtACKeywords;
 
7709
class ExtGnu;
 
7710
class PragmaOnceUnitState;
 
7711
class PragmaOnce;
 
7712
class CMatchSyntax;
 
7713
namespace Puma {
 
7714
 
 
7715
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7716
 
 
7717
#line 7718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7718
} // closed Puma
 
7719
 
 
7720
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7721
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7722
#include "CCExprResolveH.ah"
 
7723
#endif
 
7724
namespace Puma {
 
7725
 
 
7726
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7727
 
 
7728
#line 7729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7729
} // closed Puma
 
7730
 
 
7731
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7732
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7733
#include "CExprResolveH.ah"
 
7734
#endif
 
7735
namespace Puma {
 
7736
 
 
7737
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7613
7738
class CT_String : public CT_List, public CSemValue {
7614
 
#line 7615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7739
#line 7740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7740
  friend class ::CCExprResolve;
 
7741
  friend class ::CExprResolve;
7615
7742
  friend class ::WinIfExists;
7616
7743
  friend class ::WinImportHandler;
7617
7744
  friend class ::WinMacros;
7618
 
  friend class ::CMatchSyntax;
7619
 
  friend class ::ExtGnu;
 
7745
  friend class ::WinAsm;
 
7746
  friend class ::WinDeclSpecs;
 
7747
  friend class ::WinMemberExplSpec;
 
7748
  friend class ::WinTypeKeywords;
 
7749
  friend class ::WinFriend;
7620
7750
  friend class ::ExtAC;
7621
7751
  friend class ::ExtACBuilderCoupling;
7622
7752
  friend class ::ExtACSyntaxCoupling;
7623
7753
  friend class ::ExtACTree;
7624
7754
  friend class ::ExtACKeywords;
7625
 
  friend class ::WinAsm;
7626
 
  friend class ::WinDeclSpecs;
7627
 
  friend class ::WinMemberExplSpec;
7628
 
  friend class ::WinTypeKeywords;
 
7755
  friend class ::ExtGnu;
7629
7756
  friend class ::PragmaOnceUnitState;
7630
7757
  friend class ::PragmaOnce;
7631
 
  friend class ::CCExprResolve;
7632
 
  friend class ::CExprResolve;
 
7758
  friend class ::CMatchSyntax;
7633
7759
 
7634
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7760
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7635
7761
 
7636
7762
public:
 
7763
  /** Constructor. 
 
7764
   *  \param size The number of sub-strings. */
7637
7765
  CT_String (int size) : CT_List (size, 1) {}
 
7766
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7638
7767
  static const char *NodeId ();
 
7768
  /** Get the name of the node. Can be compared with NodeId(). */
7639
7769
  const char *NodeName () const { return NodeId (); }
7640
7770
 
 
7771
  /** Get the type of the string. 
 
7772
   *  \return The type or NULL. */
7641
7773
  CTypeInfo *Type () const { return type; }
 
7774
  /** Get the string value.
 
7775
   *  \return The value or NULL. */
7642
7776
  CExprValue *Value () const { return value; }
 
7777
  /** Get the semantic value info object.
 
7778
   *  \return The semantic value object or NULL. */
7643
7779
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
7780
  /** Get this. */
 
7781
  virtual CT_String *IsString () { return this; }
7644
7782
   private:
7645
7783
  typedef CT_String CCExprResolveExpr;
7646
7784
 
7647
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7785
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7648
7786
 public :
7649
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
7787
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7650
7788
  typedef CT_String CExprResolveExpr;
7651
7789
 
7652
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7790
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7653
7791
 public :
7654
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7655
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7792
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7793
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7656
7794
};
7657
7795
 
 
7796
/** \class CT_WideString CTree.h Puma/CTree.h
 
7797
 *  Tree node representing a wide string literal. */
7658
7798
 
7659
 
#line 7660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7799
#line 7800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7660
7800
} // closed Puma
 
7801
class CCExprResolve;
 
7802
class CExprResolve;
7661
7803
class WinIfExists;
7662
7804
class WinImportHandler;
7663
7805
class WinMacros;
7664
 
class CMatchSyntax;
7665
 
class ExtGnu;
 
7806
class WinAsm;
 
7807
class WinDeclSpecs;
 
7808
class WinMemberExplSpec;
 
7809
class WinTypeKeywords;
 
7810
class WinFriend;
7666
7811
class ExtAC;
7667
7812
class ExtACBuilderCoupling;
7668
7813
class ExtACSyntaxCoupling;
7669
7814
class ExtACTree;
7670
7815
class ExtACKeywords;
7671
 
class WinAsm;
7672
 
class WinDeclSpecs;
7673
 
class WinMemberExplSpec;
7674
 
class WinTypeKeywords;
 
7816
class ExtGnu;
7675
7817
class PragmaOnceUnitState;
7676
7818
class PragmaOnce;
7677
 
class CCExprResolve;
7678
 
class CExprResolve;
7679
 
namespace Puma {
7680
 
 
7681
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7819
class CMatchSyntax;
 
7820
namespace Puma {
 
7821
 
 
7822
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7823
 
 
7824
#line 7825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7825
} // closed Puma
 
7826
 
 
7827
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7828
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7829
#include "CCExprResolveH.ah"
 
7830
#endif
 
7831
namespace Puma {
 
7832
 
 
7833
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7834
 
 
7835
#line 7836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7836
} // closed Puma
 
7837
 
 
7838
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7839
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7840
#include "CExprResolveH.ah"
 
7841
#endif
 
7842
namespace Puma {
 
7843
 
 
7844
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7682
7845
class CT_WideString : public CT_String {
7683
 
#line 7684 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7846
#line 7847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7847
  friend class ::CCExprResolve;
 
7848
  friend class ::CExprResolve;
7684
7849
  friend class ::WinIfExists;
7685
7850
  friend class ::WinImportHandler;
7686
7851
  friend class ::WinMacros;
7687
 
  friend class ::CMatchSyntax;
7688
 
  friend class ::ExtGnu;
 
7852
  friend class ::WinAsm;
 
7853
  friend class ::WinDeclSpecs;
 
7854
  friend class ::WinMemberExplSpec;
 
7855
  friend class ::WinTypeKeywords;
 
7856
  friend class ::WinFriend;
7689
7857
  friend class ::ExtAC;
7690
7858
  friend class ::ExtACBuilderCoupling;
7691
7859
  friend class ::ExtACSyntaxCoupling;
7692
7860
  friend class ::ExtACTree;
7693
7861
  friend class ::ExtACKeywords;
7694
 
  friend class ::WinAsm;
7695
 
  friend class ::WinDeclSpecs;
7696
 
  friend class ::WinMemberExplSpec;
7697
 
  friend class ::WinTypeKeywords;
 
7862
  friend class ::ExtGnu;
7698
7863
  friend class ::PragmaOnceUnitState;
7699
7864
  friend class ::PragmaOnce;
7700
 
  friend class ::CCExprResolve;
7701
 
  friend class ::CExprResolve;
 
7865
  friend class ::CMatchSyntax;
7702
7866
 
7703
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7867
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7704
7868
 
7705
7869
public:
 
7870
  /** Constructor.
 
7871
   *  \param size The number of sub-strings. */
7706
7872
  CT_WideString (int size) : CT_String (size) {}
 
7873
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7707
7874
  static const char *NodeId ();
 
7875
  /** Get the name of the node. Can be compared with NodeId(). */
7708
7876
  const char *NodeName () const { return NodeId (); }
7709
7877
   private:
7710
7878
  typedef CT_WideString CCExprResolveExpr;
7711
7879
 
7712
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7880
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7713
7881
 public :
7714
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
7882
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7715
7883
  typedef CT_WideString CExprResolveExpr;
7716
7884
 
7717
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7885
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7718
7886
 public :
7719
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7720
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7887
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7888
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7721
7889
};
7722
7890
 
 
7891
/** \class CT_Integer CTree.h Puma/CTree.h
 
7892
 *  Tree node representing an integer constant. */
7723
7893
 
7724
 
#line 7725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7894
#line 7895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7725
7895
} // closed Puma
 
7896
class CCExprResolve;
 
7897
class CExprResolve;
7726
7898
class WinIfExists;
7727
7899
class WinImportHandler;
7728
7900
class WinMacros;
7729
 
class CMatchSyntax;
7730
 
class ExtGnu;
 
7901
class WinAsm;
 
7902
class WinDeclSpecs;
 
7903
class WinMemberExplSpec;
 
7904
class WinTypeKeywords;
 
7905
class WinFriend;
7731
7906
class ExtAC;
7732
7907
class ExtACBuilderCoupling;
7733
7908
class ExtACSyntaxCoupling;
7734
7909
class ExtACTree;
7735
7910
class ExtACKeywords;
7736
 
class WinAsm;
7737
 
class WinDeclSpecs;
7738
 
class WinMemberExplSpec;
7739
 
class WinTypeKeywords;
 
7911
class ExtGnu;
7740
7912
class PragmaOnceUnitState;
7741
7913
class PragmaOnce;
7742
 
class CCExprResolve;
7743
 
class CExprResolve;
7744
 
namespace Puma {
7745
 
 
7746
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7914
class CMatchSyntax;
 
7915
namespace Puma {
 
7916
 
 
7917
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7918
 
 
7919
#line 7920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7920
} // closed Puma
 
7921
 
 
7922
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7923
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7924
#include "CCExprResolveH.ah"
 
7925
#endif
 
7926
namespace Puma {
 
7927
 
 
7928
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7929
 
 
7930
#line 7931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7931
} // closed Puma
 
7932
 
 
7933
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7934
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7935
#include "CExprResolveH.ah"
 
7936
#endif
 
7937
namespace Puma {
 
7938
 
 
7939
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7747
7940
class CT_Integer : public CT_Expression {
7748
 
#line 7749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
7941
#line 7942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
7942
  friend class ::CCExprResolve;
 
7943
  friend class ::CExprResolve;
7749
7944
  friend class ::WinIfExists;
7750
7945
  friend class ::WinImportHandler;
7751
7946
  friend class ::WinMacros;
7752
 
  friend class ::CMatchSyntax;
7753
 
  friend class ::ExtGnu;
 
7947
  friend class ::WinAsm;
 
7948
  friend class ::WinDeclSpecs;
 
7949
  friend class ::WinMemberExplSpec;
 
7950
  friend class ::WinTypeKeywords;
 
7951
  friend class ::WinFriend;
7754
7952
  friend class ::ExtAC;
7755
7953
  friend class ::ExtACBuilderCoupling;
7756
7954
  friend class ::ExtACSyntaxCoupling;
7757
7955
  friend class ::ExtACTree;
7758
7956
  friend class ::ExtACKeywords;
7759
 
  friend class ::WinAsm;
7760
 
  friend class ::WinDeclSpecs;
7761
 
  friend class ::WinMemberExplSpec;
7762
 
  friend class ::WinTypeKeywords;
 
7957
  friend class ::ExtGnu;
7763
7958
  friend class ::PragmaOnceUnitState;
7764
7959
  friend class ::PragmaOnce;
7765
 
  friend class ::CCExprResolve;
7766
 
  friend class ::CExprResolve;
 
7960
  friend class ::CMatchSyntax;
7767
7961
 
7768
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7962
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7769
7963
 
7770
7964
  CTree *_value;  // CT_Token
7771
7965
 
7772
7966
public:
7773
 
  CT_Integer (CTree *t) : _value (t) {}
 
7967
  /** Constructor.
 
7968
   *  \param token The token containing the integer value. */
 
7969
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
7970
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7774
7971
  static const char *NodeId ();
 
7972
  /** Get the name of the node. Can be compared with NodeId(). */
7775
7973
  const char *NodeName () const { return NodeId (); }
 
7974
  /** Get the number of sons. */
7776
7975
  int Sons () const { return _value ? 1 : 0; }
 
7976
  /** Get the n-th son.
 
7977
   *  \param n The index of the son.
 
7978
   *  \return The n-th son or NULL. */
7777
7979
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7980
  /** Replace a son.
 
7981
   *  \param old_son The son to replace.
 
7982
   *  \param new_son The new son. */
7778
7983
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7779
 
   { if (old_son == _value) _value = new_son; }
 
7984
   { CTree::ReplaceSon (_value, old_son, new_son); }
7780
7985
   private:
7781
7986
  typedef CT_Integer CCExprResolveExpr;
7782
7987
 
7783
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7988
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7784
7989
 public :
7785
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
7990
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7786
7991
  typedef CT_Integer CExprResolveExpr;
7787
7992
 
7788
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7993
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7789
7994
 public :
7790
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7791
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7995
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7996
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7792
7997
};
7793
7998
 
 
7999
/** \class CT_Character CTree.h Puma/CTree.h
 
8000
 *  Tree node representing a single character constant. */
7794
8001
 
7795
 
#line 7796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8002
#line 8003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7796
8003
} // closed Puma
 
8004
class CCExprResolve;
 
8005
class CExprResolve;
7797
8006
class WinIfExists;
7798
8007
class WinImportHandler;
7799
8008
class WinMacros;
7800
 
class CMatchSyntax;
7801
 
class ExtGnu;
 
8009
class WinAsm;
 
8010
class WinDeclSpecs;
 
8011
class WinMemberExplSpec;
 
8012
class WinTypeKeywords;
 
8013
class WinFriend;
7802
8014
class ExtAC;
7803
8015
class ExtACBuilderCoupling;
7804
8016
class ExtACSyntaxCoupling;
7805
8017
class ExtACTree;
7806
8018
class ExtACKeywords;
7807
 
class WinAsm;
7808
 
class WinDeclSpecs;
7809
 
class WinMemberExplSpec;
7810
 
class WinTypeKeywords;
 
8019
class ExtGnu;
7811
8020
class PragmaOnceUnitState;
7812
8021
class PragmaOnce;
7813
 
class CCExprResolve;
7814
 
class CExprResolve;
7815
 
namespace Puma {
7816
 
 
7817
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8022
class CMatchSyntax;
 
8023
namespace Puma {
 
8024
 
 
8025
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8026
 
 
8027
#line 8028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8028
} // closed Puma
 
8029
 
 
8030
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8031
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8032
#include "CCExprResolveH.ah"
 
8033
#endif
 
8034
namespace Puma {
 
8035
 
 
8036
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8037
 
 
8038
#line 8039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8039
} // closed Puma
 
8040
 
 
8041
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8042
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8043
#include "CExprResolveH.ah"
 
8044
#endif
 
8045
namespace Puma {
 
8046
 
 
8047
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7818
8048
class CT_Character : public CT_Expression {
7819
 
#line 7820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8049
#line 8050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8050
  friend class ::CCExprResolve;
 
8051
  friend class ::CExprResolve;
7820
8052
  friend class ::WinIfExists;
7821
8053
  friend class ::WinImportHandler;
7822
8054
  friend class ::WinMacros;
7823
 
  friend class ::CMatchSyntax;
7824
 
  friend class ::ExtGnu;
 
8055
  friend class ::WinAsm;
 
8056
  friend class ::WinDeclSpecs;
 
8057
  friend class ::WinMemberExplSpec;
 
8058
  friend class ::WinTypeKeywords;
 
8059
  friend class ::WinFriend;
7825
8060
  friend class ::ExtAC;
7826
8061
  friend class ::ExtACBuilderCoupling;
7827
8062
  friend class ::ExtACSyntaxCoupling;
7828
8063
  friend class ::ExtACTree;
7829
8064
  friend class ::ExtACKeywords;
7830
 
  friend class ::WinAsm;
7831
 
  friend class ::WinDeclSpecs;
7832
 
  friend class ::WinMemberExplSpec;
7833
 
  friend class ::WinTypeKeywords;
 
8065
  friend class ::ExtGnu;
7834
8066
  friend class ::PragmaOnceUnitState;
7835
8067
  friend class ::PragmaOnce;
7836
 
  friend class ::CCExprResolve;
7837
 
  friend class ::CExprResolve;
 
8068
  friend class ::CMatchSyntax;
7838
8069
 
7839
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8070
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7840
8071
 
7841
8072
  CTree *_value;  // CT_Token
7842
8073
 
7843
8074
public:
7844
 
  CT_Character (CTree *t) : _value (t) {}
 
8075
  /** Constructor.
 
8076
   *  \param token The token containing the character value. */
 
8077
  CT_Character (CTree *token) { AddSon (_value, token); }
 
8078
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7845
8079
  static const char *NodeId ();
 
8080
  /** Get the name of the node. Can be compared with NodeId(). */
7846
8081
  const char *NodeName () const { return NodeId (); }
 
8082
  /** Get the number of sons. */
7847
8083
  int Sons () const { return 1; }
 
8084
  /** Get the n-th son.
 
8085
   *  \param n The index of the son.
 
8086
   *  \return The n-th son or NULL. */
7848
8087
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
8088
  /** Replace a son.
 
8089
   *  \param old_son The son to replace.
 
8090
   *  \param new_son The new son. */
7849
8091
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7850
 
   { if (old_son == _value) _value = new_son; }
 
8092
   { CTree::ReplaceSon (_value, old_son, new_son); }
7851
8093
   private:
7852
8094
  typedef CT_Character CCExprResolveExpr;
7853
8095
 
7854
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8096
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7855
8097
 public :
7856
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8098
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7857
8099
  typedef CT_Character CExprResolveExpr;
7858
8100
 
7859
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8101
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7860
8102
 public :
7861
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7862
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8103
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8104
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7863
8105
};
7864
8106
 
 
8107
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
8108
 *  Tree node representing a wide character constant. */
7865
8109
 
7866
 
#line 7867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8110
#line 8111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7867
8111
} // closed Puma
 
8112
class CCExprResolve;
 
8113
class CExprResolve;
7868
8114
class WinIfExists;
7869
8115
class WinImportHandler;
7870
8116
class WinMacros;
7871
 
class CMatchSyntax;
7872
 
class ExtGnu;
 
8117
class WinAsm;
 
8118
class WinDeclSpecs;
 
8119
class WinMemberExplSpec;
 
8120
class WinTypeKeywords;
 
8121
class WinFriend;
7873
8122
class ExtAC;
7874
8123
class ExtACBuilderCoupling;
7875
8124
class ExtACSyntaxCoupling;
7876
8125
class ExtACTree;
7877
8126
class ExtACKeywords;
7878
 
class WinAsm;
7879
 
class WinDeclSpecs;
7880
 
class WinMemberExplSpec;
7881
 
class WinTypeKeywords;
 
8127
class ExtGnu;
7882
8128
class PragmaOnceUnitState;
7883
8129
class PragmaOnce;
7884
 
class CCExprResolve;
7885
 
class CExprResolve;
7886
 
namespace Puma {
7887
 
 
7888
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8130
class CMatchSyntax;
 
8131
namespace Puma {
 
8132
 
 
8133
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8134
 
 
8135
#line 8136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8136
} // closed Puma
 
8137
 
 
8138
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8139
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8140
#include "CCExprResolveH.ah"
 
8141
#endif
 
8142
namespace Puma {
 
8143
 
 
8144
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8145
 
 
8146
#line 8147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8147
} // closed Puma
 
8148
 
 
8149
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8150
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8151
#include "CExprResolveH.ah"
 
8152
#endif
 
8153
namespace Puma {
 
8154
 
 
8155
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7889
8156
class CT_WideCharacter : public CT_Character {
7890
 
#line 7891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8157
#line 8158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8158
  friend class ::CCExprResolve;
 
8159
  friend class ::CExprResolve;
7891
8160
  friend class ::WinIfExists;
7892
8161
  friend class ::WinImportHandler;
7893
8162
  friend class ::WinMacros;
7894
 
  friend class ::CMatchSyntax;
7895
 
  friend class ::ExtGnu;
 
8163
  friend class ::WinAsm;
 
8164
  friend class ::WinDeclSpecs;
 
8165
  friend class ::WinMemberExplSpec;
 
8166
  friend class ::WinTypeKeywords;
 
8167
  friend class ::WinFriend;
7896
8168
  friend class ::ExtAC;
7897
8169
  friend class ::ExtACBuilderCoupling;
7898
8170
  friend class ::ExtACSyntaxCoupling;
7899
8171
  friend class ::ExtACTree;
7900
8172
  friend class ::ExtACKeywords;
7901
 
  friend class ::WinAsm;
7902
 
  friend class ::WinDeclSpecs;
7903
 
  friend class ::WinMemberExplSpec;
7904
 
  friend class ::WinTypeKeywords;
 
8173
  friend class ::ExtGnu;
7905
8174
  friend class ::PragmaOnceUnitState;
7906
8175
  friend class ::PragmaOnce;
7907
 
  friend class ::CCExprResolve;
7908
 
  friend class ::CExprResolve;
7909
 
 
7910
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7911
 
 
7912
 
  CTree *_value;  // CT_Token
 
8176
  friend class ::CMatchSyntax;
 
8177
 
 
8178
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7913
8179
 
7914
8180
public:
7915
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
8181
  /** Constructor.
 
8182
   *  \param token The token containing the wide character value. */
 
8183
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
8184
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7916
8185
  static const char *NodeId ();
 
8186
  /** Get the name of the node. Can be compared with NodeId(). */
7917
8187
  const char *NodeName () const { return NodeId (); }
7918
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7919
 
   { if (old_son == _value) _value = new_son; }
7920
8188
   private:
7921
8189
  typedef CT_WideCharacter CCExprResolveExpr;
7922
8190
 
7923
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8191
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7924
8192
 public :
7925
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8193
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7926
8194
  typedef CT_WideCharacter CExprResolveExpr;
7927
8195
 
7928
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8196
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7929
8197
 public :
7930
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7931
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8198
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8199
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7932
8200
};
7933
8201
 
 
8202
/** \class CT_Float CTree.h Puma/CTree.h
 
8203
 *  Tree node representing a floating point constant. */
7934
8204
 
7935
 
#line 7936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8205
#line 8206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
7936
8206
} // closed Puma
 
8207
class CCExprResolve;
 
8208
class CExprResolve;
7937
8209
class WinIfExists;
7938
8210
class WinImportHandler;
7939
8211
class WinMacros;
7940
 
class CMatchSyntax;
7941
 
class ExtGnu;
 
8212
class WinAsm;
 
8213
class WinDeclSpecs;
 
8214
class WinMemberExplSpec;
 
8215
class WinTypeKeywords;
 
8216
class WinFriend;
7942
8217
class ExtAC;
7943
8218
class ExtACBuilderCoupling;
7944
8219
class ExtACSyntaxCoupling;
7945
8220
class ExtACTree;
7946
8221
class ExtACKeywords;
7947
 
class WinAsm;
7948
 
class WinDeclSpecs;
7949
 
class WinMemberExplSpec;
7950
 
class WinTypeKeywords;
 
8222
class ExtGnu;
7951
8223
class PragmaOnceUnitState;
7952
8224
class PragmaOnce;
7953
 
class CCExprResolve;
7954
 
class CExprResolve;
7955
 
namespace Puma {
7956
 
 
7957
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8225
class CMatchSyntax;
 
8226
namespace Puma {
 
8227
 
 
8228
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8229
 
 
8230
#line 8231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8231
} // closed Puma
 
8232
 
 
8233
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8234
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8235
#include "CCExprResolveH.ah"
 
8236
#endif
 
8237
namespace Puma {
 
8238
 
 
8239
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8240
 
 
8241
#line 8242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8242
} // closed Puma
 
8243
 
 
8244
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8245
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8246
#include "CExprResolveH.ah"
 
8247
#endif
 
8248
namespace Puma {
 
8249
 
 
8250
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7958
8251
class CT_Float : public CT_Expression {
7959
 
#line 7960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8252
#line 8253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8253
  friend class ::CCExprResolve;
 
8254
  friend class ::CExprResolve;
7960
8255
  friend class ::WinIfExists;
7961
8256
  friend class ::WinImportHandler;
7962
8257
  friend class ::WinMacros;
7963
 
  friend class ::CMatchSyntax;
7964
 
  friend class ::ExtGnu;
 
8258
  friend class ::WinAsm;
 
8259
  friend class ::WinDeclSpecs;
 
8260
  friend class ::WinMemberExplSpec;
 
8261
  friend class ::WinTypeKeywords;
 
8262
  friend class ::WinFriend;
7965
8263
  friend class ::ExtAC;
7966
8264
  friend class ::ExtACBuilderCoupling;
7967
8265
  friend class ::ExtACSyntaxCoupling;
7968
8266
  friend class ::ExtACTree;
7969
8267
  friend class ::ExtACKeywords;
7970
 
  friend class ::WinAsm;
7971
 
  friend class ::WinDeclSpecs;
7972
 
  friend class ::WinMemberExplSpec;
7973
 
  friend class ::WinTypeKeywords;
 
8268
  friend class ::ExtGnu;
7974
8269
  friend class ::PragmaOnceUnitState;
7975
8270
  friend class ::PragmaOnce;
7976
 
  friend class ::CCExprResolve;
7977
 
  friend class ::CExprResolve;
 
8271
  friend class ::CMatchSyntax;
7978
8272
 
7979
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8273
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7980
8274
 
7981
8275
  CTree *_value;  // CT_Token
7982
8276
 
7983
8277
public:
7984
 
  CT_Float (CTree *t) : _value (t) {}
 
8278
  /** Constructor.
 
8279
   *  \param token The token containing the floating point value. */
 
8280
  CT_Float (CTree *token) { AddSon (_value, token); }
 
8281
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7985
8282
  static const char *NodeId ();
 
8283
  /** Get the name of the node. Can be compared with NodeId(). */
7986
8284
  const char *NodeName () const { return NodeId (); }
 
8285
  /** Get the number of sons. */
7987
8286
  int Sons () const { return 1; }
 
8287
  /** Get the n-th son.
 
8288
   *  \param n The index of the son.
 
8289
   *  \return The n-th son or NULL. */
7988
8290
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
8291
  /** Replace a son.
 
8292
   *  \param old_son The son to replace.
 
8293
   *  \param new_son The new son. */
7989
8294
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7990
 
   { if (old_son == _value) _value = new_son; }
 
8295
   { CTree::ReplaceSon (_value, old_son, new_son); }
7991
8296
   private:
7992
8297
  typedef CT_Float CCExprResolveExpr;
7993
8298
 
7994
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8299
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7995
8300
 public :
7996
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8301
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7997
8302
  typedef CT_Float CExprResolveExpr;
7998
8303
 
7999
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8304
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8000
8305
 public :
8001
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8002
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8306
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8307
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8003
8308
};
8004
8309
 
 
8310
/** \class CT_Bool CTree.h Puma/CTree.h
 
8311
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
8005
8312
 
8006
 
#line 8007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8313
#line 8314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8007
8314
} // closed Puma
 
8315
class CCExprResolve;
 
8316
class CExprResolve;
8008
8317
class WinIfExists;
8009
8318
class WinImportHandler;
8010
8319
class WinMacros;
8011
 
class CMatchSyntax;
8012
 
class ExtGnu;
 
8320
class WinAsm;
 
8321
class WinDeclSpecs;
 
8322
class WinMemberExplSpec;
 
8323
class WinTypeKeywords;
 
8324
class WinFriend;
8013
8325
class ExtAC;
8014
8326
class ExtACBuilderCoupling;
8015
8327
class ExtACSyntaxCoupling;
8016
8328
class ExtACTree;
8017
8329
class ExtACKeywords;
8018
 
class WinAsm;
8019
 
class WinDeclSpecs;
8020
 
class WinMemberExplSpec;
8021
 
class WinTypeKeywords;
 
8330
class ExtGnu;
8022
8331
class PragmaOnceUnitState;
8023
8332
class PragmaOnce;
8024
 
class CCExprResolve;
8025
 
class CExprResolve;
8026
 
namespace Puma {
8027
 
 
8028
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8333
class CMatchSyntax;
 
8334
namespace Puma {
 
8335
 
 
8336
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8337
 
 
8338
#line 8339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8339
} // closed Puma
 
8340
 
 
8341
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8342
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8343
#include "CCExprResolveH.ah"
 
8344
#endif
 
8345
namespace Puma {
 
8346
 
 
8347
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8348
 
 
8349
#line 8350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8350
} // closed Puma
 
8351
 
 
8352
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8353
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8354
#include "CExprResolveH.ah"
 
8355
#endif
 
8356
namespace Puma {
 
8357
 
 
8358
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8029
8359
class CT_Bool : public CT_Expression {
8030
 
#line 8031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8360
#line 8361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8361
  friend class ::CCExprResolve;
 
8362
  friend class ::CExprResolve;
8031
8363
  friend class ::WinIfExists;
8032
8364
  friend class ::WinImportHandler;
8033
8365
  friend class ::WinMacros;
8034
 
  friend class ::CMatchSyntax;
8035
 
  friend class ::ExtGnu;
 
8366
  friend class ::WinAsm;
 
8367
  friend class ::WinDeclSpecs;
 
8368
  friend class ::WinMemberExplSpec;
 
8369
  friend class ::WinTypeKeywords;
 
8370
  friend class ::WinFriend;
8036
8371
  friend class ::ExtAC;
8037
8372
  friend class ::ExtACBuilderCoupling;
8038
8373
  friend class ::ExtACSyntaxCoupling;
8039
8374
  friend class ::ExtACTree;
8040
8375
  friend class ::ExtACKeywords;
8041
 
  friend class ::WinAsm;
8042
 
  friend class ::WinDeclSpecs;
8043
 
  friend class ::WinMemberExplSpec;
8044
 
  friend class ::WinTypeKeywords;
 
8376
  friend class ::ExtGnu;
8045
8377
  friend class ::PragmaOnceUnitState;
8046
8378
  friend class ::PragmaOnce;
8047
 
  friend class ::CCExprResolve;
8048
 
  friend class ::CExprResolve;
 
8379
  friend class ::CMatchSyntax;
8049
8380
 
8050
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8381
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8051
8382
 
8052
8383
  CTree *_value;  // CT_Token
8053
8384
 
8054
8385
public:
8055
 
  CT_Bool (CTree *t) : _value (t) {}
 
8386
  /** Constructor.
 
8387
   *  \param token The token containing the boolean value. */
 
8388
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
8389
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8056
8390
  static const char *NodeId ();
 
8391
  /** Get the name of the node. Can be compared with NodeId(). */
8057
8392
  const char *NodeName () const { return NodeId (); }
 
8393
  /** Get the number of sons. */
8058
8394
  int Sons () const { return 1; }
 
8395
  /** Get the n-th son.
 
8396
   *  \param n The index of the son.
 
8397
   *  \return The n-th son or NULL. */
8059
8398
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
8399
  /** Replace a son.
 
8400
   *  \param old_son The son to replace.
 
8401
   *  \param new_son The new son. */
8060
8402
  void ReplaceSon (CTree *old_son, CTree *new_son) 
8061
 
   { if (old_son == _value) _value = new_son; }
 
8403
   { CTree::ReplaceSon (_value, old_son, new_son); }
8062
8404
   private:
8063
8405
  typedef CT_Bool CCExprResolveExpr;
8064
8406
 
8065
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8407
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8066
8408
 public :
8067
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8409
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8068
8410
  typedef CT_Bool CExprResolveExpr;
8069
8411
 
8070
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8412
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8071
8413
 public :
8072
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8073
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8414
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8415
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8074
8416
};
8075
8417
 
 
8418
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
8419
 *  Tree node representing a braced expression, e.g. (a+b). */
8076
8420
 
8077
 
#line 8078 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8421
#line 8422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8078
8422
} // closed Puma
 
8423
class CCExprResolve;
 
8424
class CExprResolve;
8079
8425
class WinIfExists;
8080
8426
class WinImportHandler;
8081
8427
class WinMacros;
8082
 
class CMatchSyntax;
8083
 
class ExtGnu;
 
8428
class WinAsm;
 
8429
class WinDeclSpecs;
 
8430
class WinMemberExplSpec;
 
8431
class WinTypeKeywords;
 
8432
class WinFriend;
8084
8433
class ExtAC;
8085
8434
class ExtACBuilderCoupling;
8086
8435
class ExtACSyntaxCoupling;
8087
8436
class ExtACTree;
8088
8437
class ExtACKeywords;
8089
 
class WinAsm;
8090
 
class WinDeclSpecs;
8091
 
class WinMemberExplSpec;
8092
 
class WinTypeKeywords;
 
8438
class ExtGnu;
8093
8439
class PragmaOnceUnitState;
8094
8440
class PragmaOnce;
8095
 
class CCExprResolve;
8096
 
class CExprResolve;
8097
 
namespace Puma {
8098
 
 
8099
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8441
class CMatchSyntax;
 
8442
namespace Puma {
 
8443
 
 
8444
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8445
 
 
8446
#line 8447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8447
} // closed Puma
 
8448
 
 
8449
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8450
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8451
#include "CCExprResolveH.ah"
 
8452
#endif
 
8453
namespace Puma {
 
8454
 
 
8455
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8456
 
 
8457
#line 8458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8458
} // closed Puma
 
8459
 
 
8460
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8461
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8462
#include "CExprResolveH.ah"
 
8463
#endif
 
8464
namespace Puma {
 
8465
 
 
8466
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8100
8467
class CT_BracedExpr : public CT_Expression {
8101
 
#line 8102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8468
#line 8469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8469
  friend class ::CCExprResolve;
 
8470
  friend class ::CExprResolve;
8102
8471
  friend class ::WinIfExists;
8103
8472
  friend class ::WinImportHandler;
8104
8473
  friend class ::WinMacros;
8105
 
  friend class ::CMatchSyntax;
8106
 
  friend class ::ExtGnu;
 
8474
  friend class ::WinAsm;
 
8475
  friend class ::WinDeclSpecs;
 
8476
  friend class ::WinMemberExplSpec;
 
8477
  friend class ::WinTypeKeywords;
 
8478
  friend class ::WinFriend;
8107
8479
  friend class ::ExtAC;
8108
8480
  friend class ::ExtACBuilderCoupling;
8109
8481
  friend class ::ExtACSyntaxCoupling;
8110
8482
  friend class ::ExtACTree;
8111
8483
  friend class ::ExtACKeywords;
8112
 
  friend class ::WinAsm;
8113
 
  friend class ::WinDeclSpecs;
8114
 
  friend class ::WinMemberExplSpec;
8115
 
  friend class ::WinTypeKeywords;
 
8484
  friend class ::ExtGnu;
8116
8485
  friend class ::PragmaOnceUnitState;
8117
8486
  friend class ::PragmaOnce;
8118
 
  friend class ::CCExprResolve;
8119
 
  friend class ::CExprResolve;
 
8487
  friend class ::CMatchSyntax;
8120
8488
 
8121
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8489
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8122
8490
 
8123
8491
  CTree *sons[3]; // open, expr, close
8124
8492
 
8125
8493
public:
 
8494
  /** Constructor.
 
8495
   *  \param o The opening brace.
 
8496
   *  \param e The enclosed expression.
 
8497
   *  \param c The closing brace. */
8126
8498
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
8127
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
8499
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
8128
8500
  }
 
8501
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8129
8502
  static const char *NodeId ();
 
8503
  /** Get the name of the node. Can be compared with NodeId(). */
8130
8504
  const char *NodeName () const { return NodeId (); }
 
8505
  /** Get the number of sons. */
8131
8506
  int Sons () const { return 3; }
 
8507
  /** Get the n-th son.
 
8508
   *  \param n The index of the son.
 
8509
   *  \return The n-th son or NULL. */
8132
8510
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
8511
  /** Get the enclosed expression. */
8133
8512
  CTree *Expr () const { return sons[1]; }
 
8513
  /** Get the type of the enclosed expression. */
8134
8514
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
8515
  /** Get the value of the enclosed expression. */
8135
8516
  CExprValue *Value () const { return Expr ()->Value (); }
 
8517
  /** Get the semantic value object. */
8136
8518
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
8519
  /** Replace a son.
 
8520
   *  \param old_son The son to replace.
 
8521
   *  \param new_son The new son. */
8137
8522
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8138
8523
    CTree::ReplaceSon (sons, 3, old_son, new_son);
8139
8524
  }
8140
8525
   private:
8141
8526
  typedef CT_BracedExpr CCExprResolveExpr;
8142
8527
 
8143
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8528
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8144
8529
 public :
8145
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8530
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8146
8531
  typedef CT_BracedExpr CExprResolveExpr;
8147
8532
 
8148
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8533
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8149
8534
 public :
8150
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8151
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8535
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8536
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8152
8537
};
8153
8538
 
 
8539
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
8540
 *  Base class for all tree nodes representing a name. */
8154
8541
 
8155
 
#line 8156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8542
#line 8543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8156
8543
} // closed Puma
 
8544
class CCExprResolve;
 
8545
class CExprResolve;
8157
8546
class WinIfExists;
8158
8547
class WinImportHandler;
8159
8548
class WinMacros;
8160
 
class CMatchSyntax;
8161
 
class ExtGnu;
 
8549
class WinAsm;
 
8550
class WinDeclSpecs;
 
8551
class WinMemberExplSpec;
 
8552
class WinTypeKeywords;
 
8553
class WinFriend;
8162
8554
class ExtAC;
8163
8555
class ExtACBuilderCoupling;
8164
8556
class ExtACSyntaxCoupling;
8165
8557
class ExtACTree;
8166
8558
class ExtACKeywords;
8167
 
class WinAsm;
8168
 
class WinDeclSpecs;
8169
 
class WinMemberExplSpec;
8170
 
class WinTypeKeywords;
 
8559
class ExtGnu;
8171
8560
class PragmaOnceUnitState;
8172
8561
class PragmaOnce;
8173
 
class CCExprResolve;
8174
 
class CExprResolve;
8175
 
namespace Puma {
8176
 
 
8177
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8562
class CMatchSyntax;
 
8563
namespace Puma {
 
8564
 
 
8565
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8566
 
 
8567
#line 8568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8568
} // closed Puma
 
8569
 
 
8570
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8571
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8572
#include "CCExprResolveH.ah"
 
8573
#endif
 
8574
namespace Puma {
 
8575
 
 
8576
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8577
 
 
8578
#line 8579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8579
} // closed Puma
 
8580
 
 
8581
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8582
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8583
#include "CExprResolveH.ah"
 
8584
#endif
 
8585
namespace Puma {
 
8586
 
 
8587
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8178
8588
class CT_SimpleName : public CT_List, public Printable, 
8179
8589
                      public CSemValue, public CSemObject {
8180
 
#line 8181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8590
#line 8591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8591
  friend class ::CCExprResolve;
 
8592
  friend class ::CExprResolve;
8181
8593
  friend class ::WinIfExists;
8182
8594
  friend class ::WinImportHandler;
8183
8595
  friend class ::WinMacros;
8184
 
  friend class ::CMatchSyntax;
8185
 
  friend class ::ExtGnu;
 
8596
  friend class ::WinAsm;
 
8597
  friend class ::WinDeclSpecs;
 
8598
  friend class ::WinMemberExplSpec;
 
8599
  friend class ::WinTypeKeywords;
 
8600
  friend class ::WinFriend;
8186
8601
  friend class ::ExtAC;
8187
8602
  friend class ::ExtACBuilderCoupling;
8188
8603
  friend class ::ExtACSyntaxCoupling;
8189
8604
  friend class ::ExtACTree;
8190
8605
  friend class ::ExtACKeywords;
8191
 
  friend class ::WinAsm;
8192
 
  friend class ::WinDeclSpecs;
8193
 
  friend class ::WinMemberExplSpec;
8194
 
  friend class ::WinTypeKeywords;
 
8606
  friend class ::ExtGnu;
8195
8607
  friend class ::PragmaOnceUnitState;
8196
8608
  friend class ::PragmaOnce;
8197
 
  friend class ::CCExprResolve;
8198
 
  friend class ::CExprResolve;
 
8609
  friend class ::CMatchSyntax;
8199
8610
 
8200
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8611
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8201
8612
 
8202
8613
protected:
 
8614
  /** Constructor.
 
8615
   *  \param size The number of sub-names (for qualified names). */
8203
8616
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
8617
  /** Constructor.
 
8618
   *  \param size The number of sub-names (for qualified names). 
 
8619
   *  \param properties Additional name list properties (for root qualified names). */
8204
8620
  CT_SimpleName (int size, int properties) : 
8205
8621
    CT_List (size, 2, properties) {}
8206
8622
  
8207
8623
public:
 
8624
  /** Constructor.
 
8625
   *  \param n The sub-tree containing the name. */
8208
8626
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
8627
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8209
8628
  static const char *NodeId ();
 
8629
  /** Get the name of the node. Can be compared with NodeId(). */
8210
8630
  const char *NodeName () const { return NodeId (); }
 
8631
  /** Get the string containing the name. */
8211
8632
  virtual const char *Text () const 
8212
8633
   { return Son (Sons ()-1)->token ()->text (); }
 
8634
  /** Print the name on the given stream. 
 
8635
   *  \param os The output stream. */
8213
8636
  virtual void print (ostream &os) const { os << Text (); }
 
8637
  /** Get this. */
8214
8638
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
8639
  /** Get the type of the entity represented by the name. */
8215
8640
  CTypeInfo *Type () const { return type; }
 
8641
  /** Get the value of the entity represented by the name. */ 
8216
8642
  CExprValue *Value () const { return value; }
 
8643
  /** Get the sematic value information object. */
8217
8644
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
8645
  /** Get the sematic information object. */
8218
8646
  CSemObject *SemObject () const { return (CSemObject*)this; }
8219
 
  // special new / delete with reusing memory
8220
 
  void *operator new (size_t);
8221
 
  void  operator delete (void *);
8222
 
  // classification function
 
8647
  /** Get this. */
8223
8648
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
8649
 
 
8650
public:
 
8651
  /** Own new operator reusing memory. */
 
8652
  void *operator new (size_t);
 
8653
  /** Own delete operator. */
 
8654
  void operator delete (void *);
8224
8655
   private:
8225
8656
  typedef CT_SimpleName CCExprResolveExpr;
8226
8657
 
8227
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8658
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8228
8659
 public :
8229
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8660
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8230
8661
  typedef CT_SimpleName CExprResolveExpr;
8231
8662
 
8232
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8663
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8233
8664
 public :
8234
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8235
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8665
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8666
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8236
8667
};
8237
8668
 
 
8669
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
8670
 *  Base class for tree nodes representing a special name, like destructor names. */
8238
8671
 
8239
 
#line 8240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8672
#line 8673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8240
8673
} // closed Puma
 
8674
class CCExprResolve;
 
8675
class CExprResolve;
8241
8676
class WinIfExists;
8242
8677
class WinImportHandler;
8243
8678
class WinMacros;
8244
 
class CMatchSyntax;
8245
 
class ExtGnu;
 
8679
class WinAsm;
 
8680
class WinDeclSpecs;
 
8681
class WinMemberExplSpec;
 
8682
class WinTypeKeywords;
 
8683
class WinFriend;
8246
8684
class ExtAC;
8247
8685
class ExtACBuilderCoupling;
8248
8686
class ExtACSyntaxCoupling;
8249
8687
class ExtACTree;
8250
8688
class ExtACKeywords;
8251
 
class WinAsm;
8252
 
class WinDeclSpecs;
8253
 
class WinMemberExplSpec;
8254
 
class WinTypeKeywords;
 
8689
class ExtGnu;
8255
8690
class PragmaOnceUnitState;
8256
8691
class PragmaOnce;
8257
 
class CCExprResolve;
8258
 
class CExprResolve;
8259
 
namespace Puma {
8260
 
 
8261
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8692
class CMatchSyntax;
 
8693
namespace Puma {
 
8694
 
 
8695
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8696
 
 
8697
#line 8698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8698
} // closed Puma
 
8699
 
 
8700
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8701
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8702
#include "CCExprResolveH.ah"
 
8703
#endif
 
8704
namespace Puma {
 
8705
 
 
8706
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8707
 
 
8708
#line 8709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8709
} // closed Puma
 
8710
 
 
8711
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8712
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8713
#include "CExprResolveH.ah"
 
8714
#endif
 
8715
namespace Puma {
 
8716
 
 
8717
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8262
8718
class CT_SpecialName : public CT_SimpleName {
8263
 
#line 8264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8719
#line 8720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8720
  friend class ::CCExprResolve;
 
8721
  friend class ::CExprResolve;
8264
8722
  friend class ::WinIfExists;
8265
8723
  friend class ::WinImportHandler;
8266
8724
  friend class ::WinMacros;
8267
 
  friend class ::CMatchSyntax;
8268
 
  friend class ::ExtGnu;
 
8725
  friend class ::WinAsm;
 
8726
  friend class ::WinDeclSpecs;
 
8727
  friend class ::WinMemberExplSpec;
 
8728
  friend class ::WinTypeKeywords;
 
8729
  friend class ::WinFriend;
8269
8730
  friend class ::ExtAC;
8270
8731
  friend class ::ExtACBuilderCoupling;
8271
8732
  friend class ::ExtACSyntaxCoupling;
8272
8733
  friend class ::ExtACTree;
8273
8734
  friend class ::ExtACKeywords;
8274
 
  friend class ::WinAsm;
8275
 
  friend class ::WinDeclSpecs;
8276
 
  friend class ::WinMemberExplSpec;
8277
 
  friend class ::WinTypeKeywords;
 
8735
  friend class ::ExtGnu;
8278
8736
  friend class ::PragmaOnceUnitState;
8279
8737
  friend class ::PragmaOnce;
8280
 
  friend class ::CCExprResolve;
8281
 
  friend class ::CExprResolve;
 
8738
  friend class ::CMatchSyntax;
8282
8739
 
8283
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8740
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8284
8741
 
8285
8742
  char *_name;
8286
8743
  
8287
8744
protected:
 
8745
  /** Constructor.
 
8746
   *  \param size The number of sub-names (for qualified names). */
8288
8747
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
8289
8748
  
8290
8749
public:
 
8750
  /** Destructor. Deletes the name string. */
8291
8751
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
8752
  /** Get the string containing the name. */
8292
8753
  const char *Text () const { return _name; }
 
8754
  /** Set the name. The name is copied.
 
8755
   *  \param n The name. */
8293
8756
  void Name (const char *n) { 
8294
8757
    if (n) { 
8295
8758
      _name = new char[strlen(n) + 1];
8296
8759
      strcpy (_name,n);
8297
8760
    }
8298
8761
  }
8299
 
  // special new / delete with reusing memory
 
8762
 
 
8763
public:
 
8764
  /** Own new operator reusing memory. */
8300
8765
  void *operator new (size_t);
8301
 
  void  operator delete (void *);
 
8766
  /** Own delete operator. */
 
8767
  void operator delete (void *);
8302
8768
   private:
8303
8769
  typedef CT_SpecialName CCExprResolveExpr;
8304
8770
 
8305
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8771
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8306
8772
 public :
8307
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8773
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8308
8774
  typedef CT_SpecialName CExprResolveExpr;
8309
8775
 
8310
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8776
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8311
8777
 public :
8312
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8313
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8778
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8779
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8314
8780
};
8315
8781
 
 
8782
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
8783
 *  Tree node representing a private name. Private names 
 
8784
 *  are generated names for abstract declarators etc. */
8316
8785
 
8317
 
#line 8318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8786
#line 8787 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8318
8787
} // closed Puma
 
8788
class CCExprResolve;
 
8789
class CExprResolve;
8319
8790
class WinIfExists;
8320
8791
class WinImportHandler;
8321
8792
class WinMacros;
8322
 
class CMatchSyntax;
8323
 
class ExtGnu;
 
8793
class WinAsm;
 
8794
class WinDeclSpecs;
 
8795
class WinMemberExplSpec;
 
8796
class WinTypeKeywords;
 
8797
class WinFriend;
8324
8798
class ExtAC;
8325
8799
class ExtACBuilderCoupling;
8326
8800
class ExtACSyntaxCoupling;
8327
8801
class ExtACTree;
8328
8802
class ExtACKeywords;
8329
 
class WinAsm;
8330
 
class WinDeclSpecs;
8331
 
class WinMemberExplSpec;
8332
 
class WinTypeKeywords;
 
8803
class ExtGnu;
8333
8804
class PragmaOnceUnitState;
8334
8805
class PragmaOnce;
8335
 
class CCExprResolve;
8336
 
class CExprResolve;
8337
 
namespace Puma {
8338
 
 
8339
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8806
class CMatchSyntax;
 
8807
namespace Puma {
 
8808
 
 
8809
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8810
 
 
8811
#line 8812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8812
} // closed Puma
 
8813
 
 
8814
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8815
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8816
#include "CCExprResolveH.ah"
 
8817
#endif
 
8818
namespace Puma {
 
8819
 
 
8820
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8821
 
 
8822
#line 8823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8823
} // closed Puma
 
8824
 
 
8825
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8826
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8827
#include "CExprResolveH.ah"
 
8828
#endif
 
8829
namespace Puma {
 
8830
 
 
8831
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8340
8832
class CT_PrivateName : public CT_SpecialName {
8341
 
#line 8342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8833
#line 8834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8834
  friend class ::CCExprResolve;
 
8835
  friend class ::CExprResolve;
8342
8836
  friend class ::WinIfExists;
8343
8837
  friend class ::WinImportHandler;
8344
8838
  friend class ::WinMacros;
8345
 
  friend class ::CMatchSyntax;
8346
 
  friend class ::ExtGnu;
 
8839
  friend class ::WinAsm;
 
8840
  friend class ::WinDeclSpecs;
 
8841
  friend class ::WinMemberExplSpec;
 
8842
  friend class ::WinTypeKeywords;
 
8843
  friend class ::WinFriend;
8347
8844
  friend class ::ExtAC;
8348
8845
  friend class ::ExtACBuilderCoupling;
8349
8846
  friend class ::ExtACSyntaxCoupling;
8350
8847
  friend class ::ExtACTree;
8351
8848
  friend class ::ExtACKeywords;
8352
 
  friend class ::WinAsm;
8353
 
  friend class ::WinDeclSpecs;
8354
 
  friend class ::WinMemberExplSpec;
8355
 
  friend class ::WinTypeKeywords;
 
8849
  friend class ::ExtGnu;
8356
8850
  friend class ::PragmaOnceUnitState;
8357
8851
  friend class ::PragmaOnce;
8358
 
  friend class ::CCExprResolve;
8359
 
  friend class ::CExprResolve;
 
8852
  friend class ::CMatchSyntax;
8360
8853
 
8361
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8854
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8362
8855
 
8363
8856
public:
 
8857
  /** Constructor.
 
8858
   *  \param n The private (generated) name. */
8364
8859
  CT_PrivateName (const char *n) { Name (n); }
 
8860
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8365
8861
  static const char *NodeId ();
 
8862
  /** Get the name of the node. Can be compared with NodeId(). */
8366
8863
  const char *NodeName () const { return NodeId (); }
 
8864
  /** Get the number of sons. */
8367
8865
  int Sons () const { return 0; }
 
8866
  /** Get the n-th son.
 
8867
   *  \param n The index of the son.
 
8868
   *  \return The n-th son or NULL. */
8368
8869
  CTree *Son (int n) const { return (CTree*)0; }
8369
 
  // special new / delete with reusing memory
 
8870
 
 
8871
public:
 
8872
  /** Own new operator reusing memory. */
8370
8873
  void *operator new (size_t);
8371
 
  void  operator delete (void *);
 
8874
  /** Own delete operator. */
 
8875
  void operator delete (void *);
8372
8876
   private:
8373
8877
  typedef CT_PrivateName CCExprResolveExpr;
8374
8878
 
8375
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8879
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8376
8880
 public :
8377
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8881
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8378
8882
  typedef CT_PrivateName CExprResolveExpr;
8379
8883
 
8380
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8884
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8381
8885
 public :
8382
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8383
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8886
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8887
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8384
8888
};
8385
8889
 
 
8890
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
8891
 *  Tree node representing a destructor name. */
8386
8892
 
8387
 
#line 8388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8893
#line 8894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8388
8894
} // closed Puma
 
8895
class CCExprResolve;
 
8896
class CExprResolve;
8389
8897
class WinIfExists;
8390
8898
class WinImportHandler;
8391
8899
class WinMacros;
8392
 
class CMatchSyntax;
8393
 
class ExtGnu;
 
8900
class WinAsm;
 
8901
class WinDeclSpecs;
 
8902
class WinMemberExplSpec;
 
8903
class WinTypeKeywords;
 
8904
class WinFriend;
8394
8905
class ExtAC;
8395
8906
class ExtACBuilderCoupling;
8396
8907
class ExtACSyntaxCoupling;
8397
8908
class ExtACTree;
8398
8909
class ExtACKeywords;
8399
 
class WinAsm;
8400
 
class WinDeclSpecs;
8401
 
class WinMemberExplSpec;
8402
 
class WinTypeKeywords;
 
8910
class ExtGnu;
8403
8911
class PragmaOnceUnitState;
8404
8912
class PragmaOnce;
8405
 
class CCExprResolve;
8406
 
class CExprResolve;
8407
 
namespace Puma {
8408
 
 
8409
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8913
class CMatchSyntax;
 
8914
namespace Puma {
 
8915
 
 
8916
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8917
 
 
8918
#line 8919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8919
} // closed Puma
 
8920
 
 
8921
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8922
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8923
#include "CCExprResolveH.ah"
 
8924
#endif
 
8925
namespace Puma {
 
8926
 
 
8927
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8928
 
 
8929
#line 8930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8930
} // closed Puma
 
8931
 
 
8932
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8933
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8934
#include "CExprResolveH.ah"
 
8935
#endif
 
8936
namespace Puma {
 
8937
 
 
8938
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8410
8939
class CT_DestructorName : public CT_SpecialName {
8411
 
#line 8412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8940
#line 8941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
8941
  friend class ::CCExprResolve;
 
8942
  friend class ::CExprResolve;
8412
8943
  friend class ::WinIfExists;
8413
8944
  friend class ::WinImportHandler;
8414
8945
  friend class ::WinMacros;
8415
 
  friend class ::CMatchSyntax;
8416
 
  friend class ::ExtGnu;
 
8946
  friend class ::WinAsm;
 
8947
  friend class ::WinDeclSpecs;
 
8948
  friend class ::WinMemberExplSpec;
 
8949
  friend class ::WinTypeKeywords;
 
8950
  friend class ::WinFriend;
8417
8951
  friend class ::ExtAC;
8418
8952
  friend class ::ExtACBuilderCoupling;
8419
8953
  friend class ::ExtACSyntaxCoupling;
8420
8954
  friend class ::ExtACTree;
8421
8955
  friend class ::ExtACKeywords;
8422
 
  friend class ::WinAsm;
8423
 
  friend class ::WinDeclSpecs;
8424
 
  friend class ::WinMemberExplSpec;
8425
 
  friend class ::WinTypeKeywords;
 
8956
  friend class ::ExtGnu;
8426
8957
  friend class ::PragmaOnceUnitState;
8427
8958
  friend class ::PragmaOnce;
8428
 
  friend class ::CCExprResolve;
8429
 
  friend class ::CExprResolve;
 
8959
  friend class ::CMatchSyntax;
8430
8960
 
8431
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8961
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8432
8962
 
8433
8963
public:
8434
 
  CT_DestructorName (CTree *, CTree *);
 
8964
  /** Constructor.
 
8965
   *  \param t The tilde operator.
 
8966
   *  \param n The class name. */
 
8967
  CT_DestructorName (CTree *t, CTree *n);
 
8968
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8435
8969
  static const char *NodeId ();
 
8970
  /** Get the name of the node. Can be compared with NodeId(). */
8436
8971
  const char *NodeName () const { return NodeId (); }
8437
 
  // special new / delete with reusing memory
 
8972
 
 
8973
public:
 
8974
  /** Own new operator reusing memory. */
8438
8975
  void *operator new (size_t);
8439
 
  void  operator delete (void *);
 
8976
  /** Own delete operator. */
 
8977
  void operator delete (void *);
8440
8978
   private:
8441
8979
  typedef CT_DestructorName CCExprResolveExpr;
8442
8980
 
8443
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8981
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8444
8982
 public :
8445
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8983
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8446
8984
  typedef CT_DestructorName CExprResolveExpr;
8447
8985
 
8448
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8986
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8449
8987
 public :
8450
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8451
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8988
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8989
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8452
8990
};
8453
8991
 
 
8992
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
8993
 *  Tree node representing a template name. */
8454
8994
 
8455
 
#line 8456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
8995
#line 8996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8456
8996
} // closed Puma
 
8997
class CCExprResolve;
 
8998
class CExprResolve;
8457
8999
class WinIfExists;
8458
9000
class WinImportHandler;
8459
9001
class WinMacros;
8460
 
class CMatchSyntax;
8461
 
class ExtGnu;
 
9002
class WinAsm;
 
9003
class WinDeclSpecs;
 
9004
class WinMemberExplSpec;
 
9005
class WinTypeKeywords;
 
9006
class WinFriend;
8462
9007
class ExtAC;
8463
9008
class ExtACBuilderCoupling;
8464
9009
class ExtACSyntaxCoupling;
8465
9010
class ExtACTree;
8466
9011
class ExtACKeywords;
8467
 
class WinAsm;
8468
 
class WinDeclSpecs;
8469
 
class WinMemberExplSpec;
8470
 
class WinTypeKeywords;
 
9012
class ExtGnu;
8471
9013
class PragmaOnceUnitState;
8472
9014
class PragmaOnce;
8473
 
class CCExprResolve;
8474
 
class CExprResolve;
8475
 
namespace Puma {
8476
 
 
8477
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9015
class CMatchSyntax;
 
9016
namespace Puma {
 
9017
 
 
9018
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9019
 
 
9020
#line 9021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9021
} // closed Puma
 
9022
 
 
9023
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9024
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9025
#include "CCExprResolveH.ah"
 
9026
#endif
 
9027
namespace Puma {
 
9028
 
 
9029
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9030
 
 
9031
#line 9032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9032
} // closed Puma
 
9033
 
 
9034
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9035
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9036
#include "CExprResolveH.ah"
 
9037
#endif
 
9038
namespace Puma {
 
9039
 
 
9040
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8478
9041
class CT_TemplateName : public CT_SpecialName {
8479
 
#line 8480 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9042
#line 9043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9043
  friend class ::CCExprResolve;
 
9044
  friend class ::CExprResolve;
8480
9045
  friend class ::WinIfExists;
8481
9046
  friend class ::WinImportHandler;
8482
9047
  friend class ::WinMacros;
8483
 
  friend class ::CMatchSyntax;
8484
 
  friend class ::ExtGnu;
 
9048
  friend class ::WinAsm;
 
9049
  friend class ::WinDeclSpecs;
 
9050
  friend class ::WinMemberExplSpec;
 
9051
  friend class ::WinTypeKeywords;
 
9052
  friend class ::WinFriend;
8485
9053
  friend class ::ExtAC;
8486
9054
  friend class ::ExtACBuilderCoupling;
8487
9055
  friend class ::ExtACSyntaxCoupling;
8488
9056
  friend class ::ExtACTree;
8489
9057
  friend class ::ExtACKeywords;
8490
 
  friend class ::WinAsm;
8491
 
  friend class ::WinDeclSpecs;
8492
 
  friend class ::WinMemberExplSpec;
8493
 
  friend class ::WinTypeKeywords;
 
9058
  friend class ::ExtGnu;
8494
9059
  friend class ::PragmaOnceUnitState;
8495
9060
  friend class ::PragmaOnce;
8496
 
  friend class ::CCExprResolve;
8497
 
  friend class ::CExprResolve;
 
9061
  friend class ::CMatchSyntax;
8498
9062
 
8499
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9063
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8500
9064
 
8501
9065
public:
 
9066
  /** Constructor.
 
9067
   *  \param n The template class or function name.
 
9068
   *  \param a The template argument list. */
8502
9069
  CT_TemplateName (CTree *n, CTree *a) 
8503
9070
   { AddSon (n); AddSon (a); }
 
9071
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8504
9072
  static const char *NodeId ();
 
9073
  /** Get the name of the node. Can be compared with NodeId(). */
8505
9074
  const char *NodeName () const { return NodeId (); }
 
9075
  /** Get the template argument list. */
8506
9076
  CT_TemplateArgList *Arguments () const 
8507
9077
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
9078
  /** Get the template class or function name. */
8508
9079
  CT_SimpleName *TemplateName () const 
8509
9080
   { return (CT_SimpleName*)Son (Sons ()-2); }
8510
9081
  // may change in the future
8511
9082
  const char *Text () const { return TemplateName ()->Text (); }
8512
 
  // special new / delete with reusing memory
 
9083
 
 
9084
public:
 
9085
  /** Own new operator reusing memory. */
8513
9086
  void *operator new (size_t);
8514
 
  void  operator delete (void *);
 
9087
  /** Own delete operator. */
 
9088
  void operator delete (void *);
8515
9089
   private:
8516
9090
  typedef CT_TemplateName CCExprResolveExpr;
8517
9091
 
8518
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9092
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8519
9093
 public :
8520
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9094
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8521
9095
  typedef CT_TemplateName CExprResolveExpr;
8522
9096
 
8523
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9097
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8524
9098
 public :
8525
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8526
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9099
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9100
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8527
9101
};
8528
9102
 
 
9103
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
9104
 *  Tree node representing the name of an overloaded operator. */
8529
9105
 
8530
 
#line 8531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9106
#line 9107 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8531
9107
} // closed Puma
 
9108
class CCExprResolve;
 
9109
class CExprResolve;
8532
9110
class WinIfExists;
8533
9111
class WinImportHandler;
8534
9112
class WinMacros;
8535
 
class CMatchSyntax;
8536
 
class ExtGnu;
 
9113
class WinAsm;
 
9114
class WinDeclSpecs;
 
9115
class WinMemberExplSpec;
 
9116
class WinTypeKeywords;
 
9117
class WinFriend;
8537
9118
class ExtAC;
8538
9119
class ExtACBuilderCoupling;
8539
9120
class ExtACSyntaxCoupling;
8540
9121
class ExtACTree;
8541
9122
class ExtACKeywords;
8542
 
class WinAsm;
8543
 
class WinDeclSpecs;
8544
 
class WinMemberExplSpec;
8545
 
class WinTypeKeywords;
 
9123
class ExtGnu;
8546
9124
class PragmaOnceUnitState;
8547
9125
class PragmaOnce;
8548
 
class CCExprResolve;
8549
 
class CExprResolve;
8550
 
namespace Puma {
8551
 
 
8552
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9126
class CMatchSyntax;
 
9127
namespace Puma {
 
9128
 
 
9129
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9130
 
 
9131
#line 9132 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9132
} // closed Puma
 
9133
 
 
9134
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9135
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9136
#include "CCExprResolveH.ah"
 
9137
#endif
 
9138
namespace Puma {
 
9139
 
 
9140
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9141
 
 
9142
#line 9143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9143
} // closed Puma
 
9144
 
 
9145
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9146
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9147
#include "CExprResolveH.ah"
 
9148
#endif
 
9149
namespace Puma {
 
9150
 
 
9151
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8553
9152
class CT_OperatorName : public CT_SpecialName {
8554
 
#line 8555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9153
#line 9154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9154
  friend class ::CCExprResolve;
 
9155
  friend class ::CExprResolve;
8555
9156
  friend class ::WinIfExists;
8556
9157
  friend class ::WinImportHandler;
8557
9158
  friend class ::WinMacros;
8558
 
  friend class ::CMatchSyntax;
8559
 
  friend class ::ExtGnu;
 
9159
  friend class ::WinAsm;
 
9160
  friend class ::WinDeclSpecs;
 
9161
  friend class ::WinMemberExplSpec;
 
9162
  friend class ::WinTypeKeywords;
 
9163
  friend class ::WinFriend;
8560
9164
  friend class ::ExtAC;
8561
9165
  friend class ::ExtACBuilderCoupling;
8562
9166
  friend class ::ExtACSyntaxCoupling;
8563
9167
  friend class ::ExtACTree;
8564
9168
  friend class ::ExtACKeywords;
8565
 
  friend class ::WinAsm;
8566
 
  friend class ::WinDeclSpecs;
8567
 
  friend class ::WinMemberExplSpec;
8568
 
  friend class ::WinTypeKeywords;
 
9169
  friend class ::ExtGnu;
8569
9170
  friend class ::PragmaOnceUnitState;
8570
9171
  friend class ::PragmaOnce;
8571
 
  friend class ::CCExprResolve;
8572
 
  friend class ::CExprResolve;
 
9172
  friend class ::CMatchSyntax;
8573
9173
 
8574
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9174
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8575
9175
 
8576
9176
  int _oper;
8577
9177
 
8578
9178
public:
8579
 
  enum { // complex operators
8580
 
    FCT_CALL = -100,
8581
 
    SUBSCRIPT,
8582
 
    NEW_ARRAY,
8583
 
    DEL_ARRAY
 
9179
  /** Complex operator types. */
 
9180
  enum { 
 
9181
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
9182
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
9183
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
9184
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
8584
9185
  };
8585
9186
 
8586
9187
public:
8587
 
  CT_OperatorName (CTree *);
8588
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
9188
  /** Constructor.
 
9189
   *  \param op The token containing the operator. */
 
9190
  CT_OperatorName (CTree *op);
 
9191
  /** Constructor.
 
9192
   *  \param f The operator function keyword 'operator'.
 
9193
   *  \param op The token containing the operator. 
 
9194
   *  \param o The token of '[' or '('.
 
9195
   *  \param c The token of ']' or ')'. */
 
9196
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
9197
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8589
9198
  static const char *NodeId ();
 
9199
  /** Get the name of the node. Can be compared with NodeId(). */
8590
9200
  const char *NodeName () const { return NodeId (); }
 
9201
  /** Get the operator type (either the token type or one of 
 
9202
   *  the complex operator types). */
8591
9203
  int Operator () const { return _oper; }
8592
 
  // special new / delete with reusing memory
 
9204
 
 
9205
public:
 
9206
  /** Own new operator reusing memory. */
8593
9207
  void *operator new (size_t);
8594
 
  void  operator delete (void *);
 
9208
  /** Own delete operator. */
 
9209
  void operator delete (void *);
8595
9210
   private:
8596
9211
  typedef CT_OperatorName CCExprResolveExpr;
8597
9212
 
8598
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9213
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8599
9214
 public :
8600
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9215
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8601
9216
  typedef CT_OperatorName CExprResolveExpr;
8602
9217
 
8603
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9218
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8604
9219
 public :
8605
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8606
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9220
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9221
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8607
9222
};
8608
9223
 
 
9224
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
9225
 *  Tree node representing the name of a conversion function. */
8609
9226
 
8610
 
#line 8611 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9227
#line 9228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8611
9228
} // closed Puma
 
9229
class CCExprResolve;
 
9230
class CExprResolve;
8612
9231
class WinIfExists;
8613
9232
class WinImportHandler;
8614
9233
class WinMacros;
8615
 
class CMatchSyntax;
8616
 
class ExtGnu;
 
9234
class WinAsm;
 
9235
class WinDeclSpecs;
 
9236
class WinMemberExplSpec;
 
9237
class WinTypeKeywords;
 
9238
class WinFriend;
8617
9239
class ExtAC;
8618
9240
class ExtACBuilderCoupling;
8619
9241
class ExtACSyntaxCoupling;
8620
9242
class ExtACTree;
8621
9243
class ExtACKeywords;
8622
 
class WinAsm;
8623
 
class WinDeclSpecs;
8624
 
class WinMemberExplSpec;
8625
 
class WinTypeKeywords;
 
9244
class ExtGnu;
8626
9245
class PragmaOnceUnitState;
8627
9246
class PragmaOnce;
8628
 
class CCExprResolve;
8629
 
class CExprResolve;
8630
 
namespace Puma {
8631
 
 
8632
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9247
class CMatchSyntax;
 
9248
namespace Puma {
 
9249
 
 
9250
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9251
 
 
9252
#line 9253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9253
} // closed Puma
 
9254
 
 
9255
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9256
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9257
#include "CCExprResolveH.ah"
 
9258
#endif
 
9259
namespace Puma {
 
9260
 
 
9261
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9262
 
 
9263
#line 9264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9264
} // closed Puma
 
9265
 
 
9266
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9267
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9268
#include "CExprResolveH.ah"
 
9269
#endif
 
9270
namespace Puma {
 
9271
 
 
9272
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8633
9273
class CT_ConversionName : public CT_SpecialName {
8634
 
#line 8635 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9274
#line 9275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9275
  friend class ::CCExprResolve;
 
9276
  friend class ::CExprResolve;
8635
9277
  friend class ::WinIfExists;
8636
9278
  friend class ::WinImportHandler;
8637
9279
  friend class ::WinMacros;
8638
 
  friend class ::CMatchSyntax;
8639
 
  friend class ::ExtGnu;
 
9280
  friend class ::WinAsm;
 
9281
  friend class ::WinDeclSpecs;
 
9282
  friend class ::WinMemberExplSpec;
 
9283
  friend class ::WinTypeKeywords;
 
9284
  friend class ::WinFriend;
8640
9285
  friend class ::ExtAC;
8641
9286
  friend class ::ExtACBuilderCoupling;
8642
9287
  friend class ::ExtACSyntaxCoupling;
8643
9288
  friend class ::ExtACTree;
8644
9289
  friend class ::ExtACKeywords;
8645
 
  friend class ::WinAsm;
8646
 
  friend class ::WinDeclSpecs;
8647
 
  friend class ::WinMemberExplSpec;
8648
 
  friend class ::WinTypeKeywords;
 
9290
  friend class ::ExtGnu;
8649
9291
  friend class ::PragmaOnceUnitState;
8650
9292
  friend class ::PragmaOnce;
8651
 
  friend class ::CCExprResolve;
8652
 
  friend class ::CExprResolve;
 
9293
  friend class ::CMatchSyntax;
8653
9294
 
8654
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9295
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8655
9296
 
8656
9297
public:
8657
 
  CT_ConversionName (CTree *, CTree *);
 
9298
  /** Constructor.
 
9299
   *  \param f The operator function keyword 'operator'.
 
9300
   *  \param t The sub-tree containing the conversion type. */
 
9301
  CT_ConversionName (CTree *f, CTree *t);
 
9302
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8658
9303
  static const char *NodeId ();
 
9304
  /** Get the name of the node. Can be compared with NodeId(). */
8659
9305
  const char *NodeName () const { return NodeId (); }
 
9306
  /** Get the conversion type. */
8660
9307
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
8661
 
  // special new / delete with reusing memory
 
9308
 
 
9309
public:
 
9310
  /** Own new operator reusing memory. */
8662
9311
  void *operator new (size_t);
8663
 
  void  operator delete (void *);
 
9312
  /** Own delete operator. */
 
9313
  void operator delete (void *);
8664
9314
   private:
8665
9315
  typedef CT_ConversionName CCExprResolveExpr;
8666
9316
 
8667
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9317
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8668
9318
 public :
8669
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9319
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8670
9320
  typedef CT_ConversionName CExprResolveExpr;
8671
9321
 
8672
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9322
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8673
9323
 public :
8674
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8675
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9324
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9325
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8676
9326
};
8677
9327
 
 
9328
/** \class CT_QualName CTree.h Puma/CTree.h
 
9329
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
8678
9330
 
8679
 
#line 8680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9331
#line 9332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8680
9332
} // closed Puma
 
9333
class CCExprResolve;
 
9334
class CExprResolve;
8681
9335
class WinIfExists;
8682
9336
class WinImportHandler;
8683
9337
class WinMacros;
8684
 
class CMatchSyntax;
8685
 
class ExtGnu;
 
9338
class WinAsm;
 
9339
class WinDeclSpecs;
 
9340
class WinMemberExplSpec;
 
9341
class WinTypeKeywords;
 
9342
class WinFriend;
8686
9343
class ExtAC;
8687
9344
class ExtACBuilderCoupling;
8688
9345
class ExtACSyntaxCoupling;
8689
9346
class ExtACTree;
8690
9347
class ExtACKeywords;
8691
 
class WinAsm;
8692
 
class WinDeclSpecs;
8693
 
class WinMemberExplSpec;
8694
 
class WinTypeKeywords;
 
9348
class ExtGnu;
8695
9349
class PragmaOnceUnitState;
8696
9350
class PragmaOnce;
8697
 
class CCExprResolve;
8698
 
class CExprResolve;
8699
 
namespace Puma {
8700
 
 
8701
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9351
class CMatchSyntax;
 
9352
namespace Puma {
 
9353
 
 
9354
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9355
 
 
9356
#line 9357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9357
} // closed Puma
 
9358
 
 
9359
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9360
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9361
#include "CCExprResolveH.ah"
 
9362
#endif
 
9363
namespace Puma {
 
9364
 
 
9365
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9366
 
 
9367
#line 9368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9368
} // closed Puma
 
9369
 
 
9370
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9371
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9372
#include "CExprResolveH.ah"
 
9373
#endif
 
9374
namespace Puma {
 
9375
 
 
9376
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8702
9377
class CT_QualName : public CT_SimpleName {
8703
 
#line 8704 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9378
#line 9379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9379
  friend class ::CCExprResolve;
 
9380
  friend class ::CExprResolve;
8704
9381
  friend class ::WinIfExists;
8705
9382
  friend class ::WinImportHandler;
8706
9383
  friend class ::WinMacros;
8707
 
  friend class ::CMatchSyntax;
8708
 
  friend class ::ExtGnu;
 
9384
  friend class ::WinAsm;
 
9385
  friend class ::WinDeclSpecs;
 
9386
  friend class ::WinMemberExplSpec;
 
9387
  friend class ::WinTypeKeywords;
 
9388
  friend class ::WinFriend;
8709
9389
  friend class ::ExtAC;
8710
9390
  friend class ::ExtACBuilderCoupling;
8711
9391
  friend class ::ExtACSyntaxCoupling;
8712
9392
  friend class ::ExtACTree;
8713
9393
  friend class ::ExtACKeywords;
8714
 
  friend class ::WinAsm;
8715
 
  friend class ::WinDeclSpecs;
8716
 
  friend class ::WinMemberExplSpec;
8717
 
  friend class ::WinTypeKeywords;
 
9394
  friend class ::ExtGnu;
8718
9395
  friend class ::PragmaOnceUnitState;
8719
9396
  friend class ::PragmaOnce;
8720
 
  friend class ::CCExprResolve;
8721
 
  friend class ::CExprResolve;
 
9397
  friend class ::CMatchSyntax;
8722
9398
 
8723
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9399
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8724
9400
 
8725
9401
public:
 
9402
  /** Constructor.
 
9403
   *  \param size The initial number sub-names plus separators. */
8726
9404
  CT_QualName (int size = 3) : 
8727
9405
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
9406
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8728
9407
  static const char *NodeId ();
 
9408
  /** Get the name of the node. Can be compared with NodeId(). */
8729
9409
  const char *NodeName () const { return NodeId (); }
8730
 
  void print (ostream &) const;
 
9410
  /** Print the qualified name on the given stream. 
 
9411
   *  \param os The output stream. */
 
9412
  void print (ostream &os) const;
 
9413
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
8731
9414
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
9415
  /** Get the string containing the last name of the qualified name. */
8732
9416
  const char *Text () const { return Name ()->Text (); }
 
9417
  /** Get the type of the last name. */
8733
9418
  CTypeInfo *Type () const { return Name ()->Type (); }
 
9419
  /** Get the value of the last name. */
8734
9420
  CExprValue *Value () const { return Name ()->Value (); }
 
9421
  /** Get the semantic value object of the last name. */
8735
9422
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
9423
  /** Get the semantic information object of the last name. */
8736
9424
  CSemObject *SemObject () const { return Name ()->SemObject (); }
8737
 
  // special new / delete with reusing memory
 
9425
 
 
9426
public:
 
9427
  /** Own new operator reusing memory. */
8738
9428
  void *operator new (size_t);
8739
 
  void  operator delete (void *);
 
9429
  /** Own delete operator. */
 
9430
  void operator delete (void *);
8740
9431
   private:
8741
9432
  typedef CT_QualName CCExprResolveExpr;
8742
9433
 
8743
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9434
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8744
9435
 public :
8745
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9436
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8746
9437
  typedef CT_QualName CExprResolveExpr;
8747
9438
 
8748
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9439
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8749
9440
 public :
8750
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8751
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9441
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9442
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8752
9443
};
8753
9444
 
 
9445
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
9446
 *  Tree node representing a qualified name with introducing name separator,
 
9447
 *  e.g. ::X::Y::Z. */
8754
9448
 
8755
 
#line 8756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9449
#line 9450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8756
9450
} // closed Puma
 
9451
class CCExprResolve;
 
9452
class CExprResolve;
8757
9453
class WinIfExists;
8758
9454
class WinImportHandler;
8759
9455
class WinMacros;
8760
 
class CMatchSyntax;
8761
 
class ExtGnu;
 
9456
class WinAsm;
 
9457
class WinDeclSpecs;
 
9458
class WinMemberExplSpec;
 
9459
class WinTypeKeywords;
 
9460
class WinFriend;
8762
9461
class ExtAC;
8763
9462
class ExtACBuilderCoupling;
8764
9463
class ExtACSyntaxCoupling;
8765
9464
class ExtACTree;
8766
9465
class ExtACKeywords;
8767
 
class WinAsm;
8768
 
class WinDeclSpecs;
8769
 
class WinMemberExplSpec;
8770
 
class WinTypeKeywords;
 
9466
class ExtGnu;
8771
9467
class PragmaOnceUnitState;
8772
9468
class PragmaOnce;
8773
 
class CCExprResolve;
8774
 
class CExprResolve;
8775
 
namespace Puma {
8776
 
 
8777
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9469
class CMatchSyntax;
 
9470
namespace Puma {
 
9471
 
 
9472
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9473
 
 
9474
#line 9475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9475
} // closed Puma
 
9476
 
 
9477
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9478
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9479
#include "CCExprResolveH.ah"
 
9480
#endif
 
9481
namespace Puma {
 
9482
 
 
9483
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9484
 
 
9485
#line 9486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9486
} // closed Puma
 
9487
 
 
9488
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9489
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9490
#include "CExprResolveH.ah"
 
9491
#endif
 
9492
namespace Puma {
 
9493
 
 
9494
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8778
9495
class CT_RootQualName : public CT_QualName {
8779
 
#line 8780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9496
#line 9497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9497
  friend class ::CCExprResolve;
 
9498
  friend class ::CExprResolve;
8780
9499
  friend class ::WinIfExists;
8781
9500
  friend class ::WinImportHandler;
8782
9501
  friend class ::WinMacros;
8783
 
  friend class ::CMatchSyntax;
8784
 
  friend class ::ExtGnu;
 
9502
  friend class ::WinAsm;
 
9503
  friend class ::WinDeclSpecs;
 
9504
  friend class ::WinMemberExplSpec;
 
9505
  friend class ::WinTypeKeywords;
 
9506
  friend class ::WinFriend;
8785
9507
  friend class ::ExtAC;
8786
9508
  friend class ::ExtACBuilderCoupling;
8787
9509
  friend class ::ExtACSyntaxCoupling;
8788
9510
  friend class ::ExtACTree;
8789
9511
  friend class ::ExtACKeywords;
8790
 
  friend class ::WinAsm;
8791
 
  friend class ::WinDeclSpecs;
8792
 
  friend class ::WinMemberExplSpec;
8793
 
  friend class ::WinTypeKeywords;
 
9512
  friend class ::ExtGnu;
8794
9513
  friend class ::PragmaOnceUnitState;
8795
9514
  friend class ::PragmaOnce;
8796
 
  friend class ::CCExprResolve;
8797
 
  friend class ::CExprResolve;
 
9515
  friend class ::CMatchSyntax;
8798
9516
 
8799
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9517
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8800
9518
 
8801
9519
public:
 
9520
  /** Constructor.
 
9521
   *  \param size Initial number of sub-name plus separator. */
8802
9522
  CT_RootQualName (int size = 2) : 
8803
9523
    CT_QualName (size) { AddProperties (INTRO); }
 
9524
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8804
9525
  static const char *NodeId ();
 
9526
  /** Get the name of the node. Can be compared with NodeId(). */
8805
9527
  const char *NodeName () const { return NodeId (); }
8806
 
  // special new / delete with reusing memory
 
9528
 
 
9529
public:
 
9530
  /** Own new operator reusing memory. */
8807
9531
  void *operator new (size_t);
8808
 
  void  operator delete (void *);
 
9532
  /** Own delete operator. */
 
9533
  void operator delete (void *);
8809
9534
   private:
8810
9535
  typedef CT_RootQualName CCExprResolveExpr;
8811
9536
 
8812
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9537
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8813
9538
 public :
8814
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9539
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8815
9540
  typedef CT_RootQualName CExprResolveExpr;
8816
9541
 
8817
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9542
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8818
9543
 public :
8819
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8820
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9544
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9545
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8821
9546
};
8822
9547
 
 
9548
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
9549
 *  Tree node representing a binary expression, e.g. a+b. */
8823
9550
 
8824
 
#line 8825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9551
#line 9552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8825
9552
} // closed Puma
 
9553
class CCExprResolve;
 
9554
class CExprResolve;
8826
9555
class WinIfExists;
8827
9556
class WinImportHandler;
8828
9557
class WinMacros;
8829
 
class CMatchSyntax;
8830
 
class ExtGnu;
 
9558
class WinAsm;
 
9559
class WinDeclSpecs;
 
9560
class WinMemberExplSpec;
 
9561
class WinTypeKeywords;
 
9562
class WinFriend;
8831
9563
class ExtAC;
8832
9564
class ExtACBuilderCoupling;
8833
9565
class ExtACSyntaxCoupling;
8834
9566
class ExtACTree;
8835
9567
class ExtACKeywords;
8836
 
class WinAsm;
8837
 
class WinDeclSpecs;
8838
 
class WinMemberExplSpec;
8839
 
class WinTypeKeywords;
 
9568
class ExtGnu;
8840
9569
class PragmaOnceUnitState;
8841
9570
class PragmaOnce;
8842
 
class CCExprResolve;
8843
 
class CExprResolve;
8844
 
namespace Puma {
8845
 
 
8846
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8847
 
class CT_BinaryExpr : public CT_Expression {
8848
 
#line 8849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9571
class CMatchSyntax;
 
9572
namespace Puma {
 
9573
 
 
9574
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9575
 
 
9576
#line 9577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9577
} // closed Puma
 
9578
 
 
9579
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9580
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9581
#include "CCExprResolveH.ah"
 
9582
#endif
 
9583
namespace Puma {
 
9584
 
 
9585
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9586
 
 
9587
#line 9588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9588
} // closed Puma
 
9589
 
 
9590
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9591
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9592
#include "CExprResolveH.ah"
 
9593
#endif
 
9594
namespace Puma {
 
9595
 
 
9596
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9597
class CT_BinaryExpr : public CT_Call {
 
9598
#line 9599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9599
  friend class ::CCExprResolve;
 
9600
  friend class ::CExprResolve;
8849
9601
  friend class ::WinIfExists;
8850
9602
  friend class ::WinImportHandler;
8851
9603
  friend class ::WinMacros;
8852
 
  friend class ::CMatchSyntax;
8853
 
  friend class ::ExtGnu;
 
9604
  friend class ::WinAsm;
 
9605
  friend class ::WinDeclSpecs;
 
9606
  friend class ::WinMemberExplSpec;
 
9607
  friend class ::WinTypeKeywords;
 
9608
  friend class ::WinFriend;
8854
9609
  friend class ::ExtAC;
8855
9610
  friend class ::ExtACBuilderCoupling;
8856
9611
  friend class ::ExtACSyntaxCoupling;
8857
9612
  friend class ::ExtACTree;
8858
9613
  friend class ::ExtACKeywords;
8859
 
  friend class ::WinAsm;
8860
 
  friend class ::WinDeclSpecs;
8861
 
  friend class ::WinMemberExplSpec;
8862
 
  friend class ::WinTypeKeywords;
 
9614
  friend class ::ExtGnu;
8863
9615
  friend class ::PragmaOnceUnitState;
8864
9616
  friend class ::PragmaOnce;
8865
 
  friend class ::CCExprResolve;
8866
 
  friend class ::CExprResolve;
 
9617
  friend class ::CMatchSyntax;
8867
9618
 
8868
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9619
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8869
9620
 
8870
9621
  CTree *sons[3]; // expr, oper, expr
8871
9622
 
8872
9623
public:
 
9624
  /** Constructor. 
 
9625
   *  \param l Left hand side of the expression. 
 
9626
   *  \param o The operator token. 
 
9627
   *  \param r Right hand side of the expression. */
8873
9628
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
8874
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
9629
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
8875
9630
  }
 
9631
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8876
9632
  static const char *NodeId ();
 
9633
  /** Get the name of the node. Can be compared with NodeId(). */
8877
9634
  const char *NodeName () const { return NodeId (); }
 
9635
  /** Get the number of sons. */
8878
9636
  int Sons () const { return 3; }
 
9637
  /** Get the n-th son.
 
9638
   *  \param n The index of the son.
 
9639
   *  \return The n-th son or NULL. */
8879
9640
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
9641
  /** Replace a son.
 
9642
   *  \param old_son The son to replace.
 
9643
   *  \param new_son The new son. */
8880
9644
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8881
9645
    CTree::ReplaceSon (sons, 3, old_son, new_son);
8882
9646
  }
8883
9647
   private:
8884
9648
  typedef CT_BinaryExpr CCExprResolveExpr;
8885
9649
 
8886
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9650
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8887
9651
 public :
8888
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9652
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8889
9653
  typedef CT_BinaryExpr CExprResolveExpr;
8890
9654
 
8891
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9655
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8892
9656
 public :
8893
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8894
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9657
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9658
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8895
9659
};
8896
9660
 
 
9661
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
9662
 *  Tree node representing a member pointer expression, e.g. a->b. */
8897
9663
 
8898
 
#line 8899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9664
#line 9665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8899
9665
} // closed Puma
 
9666
class CCExprResolve;
 
9667
class CExprResolve;
8900
9668
class WinIfExists;
8901
9669
class WinImportHandler;
8902
9670
class WinMacros;
8903
 
class CMatchSyntax;
8904
 
class ExtGnu;
 
9671
class WinAsm;
 
9672
class WinDeclSpecs;
 
9673
class WinMemberExplSpec;
 
9674
class WinTypeKeywords;
 
9675
class WinFriend;
8905
9676
class ExtAC;
8906
9677
class ExtACBuilderCoupling;
8907
9678
class ExtACSyntaxCoupling;
8908
9679
class ExtACTree;
8909
9680
class ExtACKeywords;
8910
 
class WinAsm;
8911
 
class WinDeclSpecs;
8912
 
class WinMemberExplSpec;
8913
 
class WinTypeKeywords;
 
9681
class ExtGnu;
8914
9682
class PragmaOnceUnitState;
8915
9683
class PragmaOnce;
8916
 
class CCExprResolve;
8917
 
class CExprResolve;
8918
 
namespace Puma {
8919
 
 
8920
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8921
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
8922
 
#line 8923 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9684
class CMatchSyntax;
 
9685
namespace Puma {
 
9686
 
 
9687
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9688
 
 
9689
#line 9690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9690
} // closed Puma
 
9691
 
 
9692
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9693
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9694
#include "CCExprResolveH.ah"
 
9695
#endif
 
9696
namespace Puma {
 
9697
 
 
9698
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9699
 
 
9700
#line 9701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9701
} // closed Puma
 
9702
 
 
9703
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9704
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9705
#include "CExprResolveH.ah"
 
9706
#endif
 
9707
namespace Puma {
 
9708
 
 
9709
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9710
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
9711
#line 9712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9712
  friend class ::CCExprResolve;
 
9713
  friend class ::CExprResolve;
8923
9714
  friend class ::WinIfExists;
8924
9715
  friend class ::WinImportHandler;
8925
9716
  friend class ::WinMacros;
8926
 
  friend class ::CMatchSyntax;
8927
 
  friend class ::ExtGnu;
 
9717
  friend class ::WinAsm;
 
9718
  friend class ::WinDeclSpecs;
 
9719
  friend class ::WinMemberExplSpec;
 
9720
  friend class ::WinTypeKeywords;
 
9721
  friend class ::WinFriend;
8928
9722
  friend class ::ExtAC;
8929
9723
  friend class ::ExtACBuilderCoupling;
8930
9724
  friend class ::ExtACSyntaxCoupling;
8931
9725
  friend class ::ExtACTree;
8932
9726
  friend class ::ExtACKeywords;
8933
 
  friend class ::WinAsm;
8934
 
  friend class ::WinDeclSpecs;
8935
 
  friend class ::WinMemberExplSpec;
8936
 
  friend class ::WinTypeKeywords;
 
9727
  friend class ::ExtGnu;
8937
9728
  friend class ::PragmaOnceUnitState;
8938
9729
  friend class ::PragmaOnce;
8939
 
  friend class ::CCExprResolve;
8940
 
  friend class ::CExprResolve;
8941
 
 
8942
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8943
 
 
 
9730
  friend class ::CMatchSyntax;
 
9731
 
 
9732
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9733
 
 
9734
  CTree *sons[3]; // expr, oper, expr
 
9735
  
8944
9736
public:
8945
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
8946
 
    CT_BinaryExpr (e, o, i) {}
 
9737
  /** Constructor.
 
9738
   *  \param e Expression on which to call the member.
 
9739
   *  \param o The arrow operator token.
 
9740
   *  \param i The member name. */
 
9741
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
9742
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
9743
  }
 
9744
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8947
9745
  static const char *NodeId ();
 
9746
  /** Get the name of the node. Can be compared with NodeId(). */
8948
9747
  const char *NodeName () const { return NodeId (); }
8949
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
9748
  /** Get the number of sons. */
 
9749
  int Sons () const { return 3; }
 
9750
  /** Get the n-th son.
 
9751
   *  \param n The index of the son.
 
9752
   *  \return The n-th son or NULL. */
 
9753
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
9754
  /** Replace a son.
 
9755
   *  \param old_son The son to replace.
 
9756
   *  \param new_son The new son. */
 
9757
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9758
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
9759
  }
8950
9760
   private:
8951
9761
  typedef CT_MembPtrExpr CCExprResolveExpr;
8952
9762
 
8953
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9763
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8954
9764
 public :
8955
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9765
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8956
9766
  typedef CT_MembPtrExpr CExprResolveExpr;
8957
9767
 
8958
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9768
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8959
9769
 public :
8960
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8961
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9770
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9771
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8962
9772
};
8963
9773
 
 
9774
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
9775
 *  Tree node representing a member reference expression, e.g. a.b. */
8964
9776
 
8965
 
#line 8966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9777
#line 9778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
8966
9778
} // closed Puma
 
9779
class CCExprResolve;
 
9780
class CExprResolve;
8967
9781
class WinIfExists;
8968
9782
class WinImportHandler;
8969
9783
class WinMacros;
8970
 
class CMatchSyntax;
8971
 
class ExtGnu;
 
9784
class WinAsm;
 
9785
class WinDeclSpecs;
 
9786
class WinMemberExplSpec;
 
9787
class WinTypeKeywords;
 
9788
class WinFriend;
8972
9789
class ExtAC;
8973
9790
class ExtACBuilderCoupling;
8974
9791
class ExtACSyntaxCoupling;
8975
9792
class ExtACTree;
8976
9793
class ExtACKeywords;
8977
 
class WinAsm;
8978
 
class WinDeclSpecs;
8979
 
class WinMemberExplSpec;
8980
 
class WinTypeKeywords;
 
9794
class ExtGnu;
8981
9795
class PragmaOnceUnitState;
8982
9796
class PragmaOnce;
8983
 
class CCExprResolve;
8984
 
class CExprResolve;
8985
 
namespace Puma {
8986
 
 
8987
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9797
class CMatchSyntax;
 
9798
namespace Puma {
 
9799
 
 
9800
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9801
 
 
9802
#line 9803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9803
} // closed Puma
 
9804
 
 
9805
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9806
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9807
#include "CCExprResolveH.ah"
 
9808
#endif
 
9809
namespace Puma {
 
9810
 
 
9811
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9812
 
 
9813
#line 9814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9814
} // closed Puma
 
9815
 
 
9816
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9817
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9818
#include "CExprResolveH.ah"
 
9819
#endif
 
9820
namespace Puma {
 
9821
 
 
9822
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8988
9823
class CT_MembRefExpr : public CT_MembPtrExpr {
8989
 
#line 8990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9824
#line 9825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9825
  friend class ::CCExprResolve;
 
9826
  friend class ::CExprResolve;
8990
9827
  friend class ::WinIfExists;
8991
9828
  friend class ::WinImportHandler;
8992
9829
  friend class ::WinMacros;
8993
 
  friend class ::CMatchSyntax;
8994
 
  friend class ::ExtGnu;
 
9830
  friend class ::WinAsm;
 
9831
  friend class ::WinDeclSpecs;
 
9832
  friend class ::WinMemberExplSpec;
 
9833
  friend class ::WinTypeKeywords;
 
9834
  friend class ::WinFriend;
8995
9835
  friend class ::ExtAC;
8996
9836
  friend class ::ExtACBuilderCoupling;
8997
9837
  friend class ::ExtACSyntaxCoupling;
8998
9838
  friend class ::ExtACTree;
8999
9839
  friend class ::ExtACKeywords;
9000
 
  friend class ::WinAsm;
9001
 
  friend class ::WinDeclSpecs;
9002
 
  friend class ::WinMemberExplSpec;
9003
 
  friend class ::WinTypeKeywords;
 
9840
  friend class ::ExtGnu;
9004
9841
  friend class ::PragmaOnceUnitState;
9005
9842
  friend class ::PragmaOnce;
9006
 
  friend class ::CCExprResolve;
9007
 
  friend class ::CExprResolve;
 
9843
  friend class ::CMatchSyntax;
9008
9844
 
9009
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9845
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9010
9846
 
9011
9847
public:
 
9848
  /** Constructor.
 
9849
   *  \param e Expression on which to call the member.
 
9850
   *  \param o The dot operator.
 
9851
   *  \param i The member name. */
9012
9852
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
9013
9853
    CT_MembPtrExpr (e, o, i) {}
 
9854
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9014
9855
  static const char *NodeId ();
 
9856
  /** Get the name of the node. Can be compared with NodeId(). */
9015
9857
  const char *NodeName () const { return NodeId (); }
9016
9858
   private:
9017
9859
  typedef CT_MembRefExpr CCExprResolveExpr;
9018
9860
 
9019
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9861
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9020
9862
 public :
9021
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9863
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9022
9864
  typedef CT_MembRefExpr CExprResolveExpr;
9023
9865
 
9024
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9866
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9025
9867
 public :
9026
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9027
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9868
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9869
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9028
9870
};
9029
9871
 
 
9872
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
9873
 *  Base class for tree nodes representing unary expressions. */
9030
9874
 
9031
 
#line 9032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9875
#line 9876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9032
9876
} // closed Puma
 
9877
class CCExprResolve;
 
9878
class CExprResolve;
9033
9879
class WinIfExists;
9034
9880
class WinImportHandler;
9035
9881
class WinMacros;
9036
 
class CMatchSyntax;
9037
 
class ExtGnu;
 
9882
class WinAsm;
 
9883
class WinDeclSpecs;
 
9884
class WinMemberExplSpec;
 
9885
class WinTypeKeywords;
 
9886
class WinFriend;
9038
9887
class ExtAC;
9039
9888
class ExtACBuilderCoupling;
9040
9889
class ExtACSyntaxCoupling;
9041
9890
class ExtACTree;
9042
9891
class ExtACKeywords;
9043
 
class WinAsm;
9044
 
class WinDeclSpecs;
9045
 
class WinMemberExplSpec;
9046
 
class WinTypeKeywords;
 
9892
class ExtGnu;
9047
9893
class PragmaOnceUnitState;
9048
9894
class PragmaOnce;
9049
 
class CCExprResolve;
9050
 
class CExprResolve;
9051
 
namespace Puma {
9052
 
 
9053
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9054
 
class CT_UnaryExpr : public CT_Expression {
9055
 
#line 9056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9895
class CMatchSyntax;
 
9896
namespace Puma {
 
9897
 
 
9898
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9899
 
 
9900
#line 9901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9901
} // closed Puma
 
9902
 
 
9903
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9904
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9905
#include "CCExprResolveH.ah"
 
9906
#endif
 
9907
namespace Puma {
 
9908
 
 
9909
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9910
 
 
9911
#line 9912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9912
} // closed Puma
 
9913
 
 
9914
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9915
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9916
#include "CExprResolveH.ah"
 
9917
#endif
 
9918
namespace Puma {
 
9919
 
 
9920
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9921
class CT_UnaryExpr : public CT_Call {
 
9922
#line 9923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
9923
  friend class ::CCExprResolve;
 
9924
  friend class ::CExprResolve;
9056
9925
  friend class ::WinIfExists;
9057
9926
  friend class ::WinImportHandler;
9058
9927
  friend class ::WinMacros;
9059
 
  friend class ::CMatchSyntax;
9060
 
  friend class ::ExtGnu;
 
9928
  friend class ::WinAsm;
 
9929
  friend class ::WinDeclSpecs;
 
9930
  friend class ::WinMemberExplSpec;
 
9931
  friend class ::WinTypeKeywords;
 
9932
  friend class ::WinFriend;
9061
9933
  friend class ::ExtAC;
9062
9934
  friend class ::ExtACBuilderCoupling;
9063
9935
  friend class ::ExtACSyntaxCoupling;
9064
9936
  friend class ::ExtACTree;
9065
9937
  friend class ::ExtACKeywords;
9066
 
  friend class ::WinAsm;
9067
 
  friend class ::WinDeclSpecs;
9068
 
  friend class ::WinMemberExplSpec;
9069
 
  friend class ::WinTypeKeywords;
 
9938
  friend class ::ExtGnu;
9070
9939
  friend class ::PragmaOnceUnitState;
9071
9940
  friend class ::PragmaOnce;
9072
 
  friend class ::CCExprResolve;
9073
 
  friend class ::CExprResolve;
 
9941
  friend class ::CMatchSyntax;
9074
9942
 
9075
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9943
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9076
9944
 
9077
9945
  CTree *sons[2]; // oper, expr
9078
9946
 
9079
9947
public:
9080
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
9948
  /** Constructor.
 
9949
   *  \param o The unary operator.
 
9950
   *  \param e The expression on which the operator is invoked. */
 
9951
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
9952
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9081
9953
  static const char *NodeId ();
 
9954
  /** Get the name of the node. Can be compared with NodeId(). */
9082
9955
  const char *NodeName () const { return NodeId (); }
 
9956
  /** Get the number of sons. */
9083
9957
  int Sons () const { return 2; }
 
9958
  /** Get the n-th son.
 
9959
   *  \param n The index of the son.
 
9960
   *  \return The n-th son or NULL. */
9084
9961
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
9962
  /** Replace a son.
 
9963
   *  \param old_son The son to replace.
 
9964
   *  \param new_son The new son. */
9085
9965
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9086
9966
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9087
9967
  }
 
9968
  /** Get the expression node. */
9088
9969
  CTree *Expr () const { return sons[1]; }
9089
9970
   private:
9090
9971
  typedef CT_UnaryExpr CCExprResolveExpr;
9091
9972
 
9092
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9973
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9093
9974
 public :
9094
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9975
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9095
9976
  typedef CT_UnaryExpr CExprResolveExpr;
9096
9977
 
9097
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9978
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9098
9979
 public :
9099
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9100
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9980
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9981
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9101
9982
};
9102
9983
 
 
9984
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
9985
 *  Tree node representing a postfix expression, e.g. a++. */
9103
9986
 
9104
 
#line 9105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
9987
#line 9988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9105
9988
} // closed Puma
 
9989
class CCExprResolve;
 
9990
class CExprResolve;
9106
9991
class WinIfExists;
9107
9992
class WinImportHandler;
9108
9993
class WinMacros;
9109
 
class CMatchSyntax;
9110
 
class ExtGnu;
 
9994
class WinAsm;
 
9995
class WinDeclSpecs;
 
9996
class WinMemberExplSpec;
 
9997
class WinTypeKeywords;
 
9998
class WinFriend;
9111
9999
class ExtAC;
9112
10000
class ExtACBuilderCoupling;
9113
10001
class ExtACSyntaxCoupling;
9114
10002
class ExtACTree;
9115
10003
class ExtACKeywords;
9116
 
class WinAsm;
9117
 
class WinDeclSpecs;
9118
 
class WinMemberExplSpec;
9119
 
class WinTypeKeywords;
 
10004
class ExtGnu;
9120
10005
class PragmaOnceUnitState;
9121
10006
class PragmaOnce;
9122
 
class CCExprResolve;
9123
 
class CExprResolve;
9124
 
namespace Puma {
9125
 
 
9126
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10007
class CMatchSyntax;
 
10008
namespace Puma {
 
10009
 
 
10010
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10011
 
 
10012
#line 10013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10013
} // closed Puma
 
10014
 
 
10015
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10016
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10017
#include "CCExprResolveH.ah"
 
10018
#endif
 
10019
namespace Puma {
 
10020
 
 
10021
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10022
 
 
10023
#line 10024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10024
} // closed Puma
 
10025
 
 
10026
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10027
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10028
#include "CExprResolveH.ah"
 
10029
#endif
 
10030
namespace Puma {
 
10031
 
 
10032
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9127
10033
class CT_PostfixExpr : public CT_UnaryExpr {
9128
 
#line 9129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10034
#line 10035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10035
  friend class ::CCExprResolve;
 
10036
  friend class ::CExprResolve;
9129
10037
  friend class ::WinIfExists;
9130
10038
  friend class ::WinImportHandler;
9131
10039
  friend class ::WinMacros;
9132
 
  friend class ::CMatchSyntax;
9133
 
  friend class ::ExtGnu;
 
10040
  friend class ::WinAsm;
 
10041
  friend class ::WinDeclSpecs;
 
10042
  friend class ::WinMemberExplSpec;
 
10043
  friend class ::WinTypeKeywords;
 
10044
  friend class ::WinFriend;
9134
10045
  friend class ::ExtAC;
9135
10046
  friend class ::ExtACBuilderCoupling;
9136
10047
  friend class ::ExtACSyntaxCoupling;
9137
10048
  friend class ::ExtACTree;
9138
10049
  friend class ::ExtACKeywords;
9139
 
  friend class ::WinAsm;
9140
 
  friend class ::WinDeclSpecs;
9141
 
  friend class ::WinMemberExplSpec;
9142
 
  friend class ::WinTypeKeywords;
 
10050
  friend class ::ExtGnu;
9143
10051
  friend class ::PragmaOnceUnitState;
9144
10052
  friend class ::PragmaOnce;
9145
 
  friend class ::CCExprResolve;
9146
 
  friend class ::CExprResolve;
 
10053
  friend class ::CMatchSyntax;
9147
10054
 
9148
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10055
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9149
10056
 
9150
10057
public:
 
10058
  /** Constructor.
 
10059
   *  \param e The expression on which to invoke the operator. 
 
10060
   *  \param o The postfix operator. */
9151
10061
  CT_PostfixExpr (CTree *e, CTree *o) :
9152
10062
    CT_UnaryExpr (e, o) {}
 
10063
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9153
10064
  static const char *NodeId ();
 
10065
  /** Get the name of the node. Can be compared with NodeId(). */
9154
10066
  const char *NodeName () const { return NodeId (); }
9155
10067
   private:
9156
10068
  typedef CT_PostfixExpr CCExprResolveExpr;
9157
10069
 
9158
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10070
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9159
10071
 public :
9160
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10072
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9161
10073
  typedef CT_PostfixExpr CExprResolveExpr;
9162
10074
 
9163
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10075
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9164
10076
 public :
9165
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9166
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10077
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10078
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9167
10079
};
9168
10080
 
 
10081
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
10082
 *  Tree node representing an address expression, e.g. &a. */
9169
10083
 
9170
 
#line 9171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10084
#line 10085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9171
10085
} // closed Puma
 
10086
class CCExprResolve;
 
10087
class CExprResolve;
9172
10088
class WinIfExists;
9173
10089
class WinImportHandler;
9174
10090
class WinMacros;
9175
 
class CMatchSyntax;
9176
 
class ExtGnu;
 
10091
class WinAsm;
 
10092
class WinDeclSpecs;
 
10093
class WinMemberExplSpec;
 
10094
class WinTypeKeywords;
 
10095
class WinFriend;
9177
10096
class ExtAC;
9178
10097
class ExtACBuilderCoupling;
9179
10098
class ExtACSyntaxCoupling;
9180
10099
class ExtACTree;
9181
10100
class ExtACKeywords;
9182
 
class WinAsm;
9183
 
class WinDeclSpecs;
9184
 
class WinMemberExplSpec;
9185
 
class WinTypeKeywords;
 
10101
class ExtGnu;
9186
10102
class PragmaOnceUnitState;
9187
10103
class PragmaOnce;
9188
 
class CCExprResolve;
9189
 
class CExprResolve;
9190
 
namespace Puma {
9191
 
 
9192
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10104
class CMatchSyntax;
 
10105
namespace Puma {
 
10106
 
 
10107
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10108
 
 
10109
#line 10110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10110
} // closed Puma
 
10111
 
 
10112
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10113
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10114
#include "CCExprResolveH.ah"
 
10115
#endif
 
10116
namespace Puma {
 
10117
 
 
10118
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10119
 
 
10120
#line 10121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10121
} // closed Puma
 
10122
 
 
10123
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10124
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10125
#include "CExprResolveH.ah"
 
10126
#endif
 
10127
namespace Puma {
 
10128
 
 
10129
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9193
10130
class CT_AddrExpr : public CT_UnaryExpr {
9194
 
#line 9195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10131
#line 10132 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10132
  friend class ::CCExprResolve;
 
10133
  friend class ::CExprResolve;
9195
10134
  friend class ::WinIfExists;
9196
10135
  friend class ::WinImportHandler;
9197
10136
  friend class ::WinMacros;
9198
 
  friend class ::CMatchSyntax;
9199
 
  friend class ::ExtGnu;
 
10137
  friend class ::WinAsm;
 
10138
  friend class ::WinDeclSpecs;
 
10139
  friend class ::WinMemberExplSpec;
 
10140
  friend class ::WinTypeKeywords;
 
10141
  friend class ::WinFriend;
9200
10142
  friend class ::ExtAC;
9201
10143
  friend class ::ExtACBuilderCoupling;
9202
10144
  friend class ::ExtACSyntaxCoupling;
9203
10145
  friend class ::ExtACTree;
9204
10146
  friend class ::ExtACKeywords;
9205
 
  friend class ::WinAsm;
9206
 
  friend class ::WinDeclSpecs;
9207
 
  friend class ::WinMemberExplSpec;
9208
 
  friend class ::WinTypeKeywords;
 
10147
  friend class ::ExtGnu;
9209
10148
  friend class ::PragmaOnceUnitState;
9210
10149
  friend class ::PragmaOnce;
9211
 
  friend class ::CCExprResolve;
9212
 
  friend class ::CExprResolve;
 
10150
  friend class ::CMatchSyntax;
9213
10151
 
9214
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10152
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9215
10153
 
9216
10154
public:
 
10155
  /** Constructor.
 
10156
   *  \param o The address operator, i.e. '&'.
 
10157
   *  \param e The expression from which to take the address. */
9217
10158
  CT_AddrExpr (CTree *o, CTree *e) :
9218
10159
    CT_UnaryExpr (o, e) {}
 
10160
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9219
10161
  static const char *NodeId ();
 
10162
  /** Get the name of the node. Can be compared with NodeId(). */
9220
10163
  const char *NodeName () const { return NodeId (); }
9221
10164
   private:
9222
10165
  typedef CT_AddrExpr CCExprResolveExpr;
9223
10166
 
9224
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10167
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9225
10168
 public :
9226
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10169
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9227
10170
  typedef CT_AddrExpr CExprResolveExpr;
9228
10171
 
9229
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10172
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9230
10173
 public :
9231
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9232
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10174
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10175
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9233
10176
};
9234
10177
 
 
10178
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
10179
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
9235
10180
 
9236
 
#line 9237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10181
#line 10182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9237
10182
} // closed Puma
 
10183
class CCExprResolve;
 
10184
class CExprResolve;
9238
10185
class WinIfExists;
9239
10186
class WinImportHandler;
9240
10187
class WinMacros;
9241
 
class CMatchSyntax;
9242
 
class ExtGnu;
 
10188
class WinAsm;
 
10189
class WinDeclSpecs;
 
10190
class WinMemberExplSpec;
 
10191
class WinTypeKeywords;
 
10192
class WinFriend;
9243
10193
class ExtAC;
9244
10194
class ExtACBuilderCoupling;
9245
10195
class ExtACSyntaxCoupling;
9246
10196
class ExtACTree;
9247
10197
class ExtACKeywords;
9248
 
class WinAsm;
9249
 
class WinDeclSpecs;
9250
 
class WinMemberExplSpec;
9251
 
class WinTypeKeywords;
 
10198
class ExtGnu;
9252
10199
class PragmaOnceUnitState;
9253
10200
class PragmaOnce;
9254
 
class CCExprResolve;
9255
 
class CExprResolve;
9256
 
namespace Puma {
9257
 
 
9258
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10201
class CMatchSyntax;
 
10202
namespace Puma {
 
10203
 
 
10204
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10205
 
 
10206
#line 10207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10207
} // closed Puma
 
10208
 
 
10209
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10210
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10211
#include "CCExprResolveH.ah"
 
10212
#endif
 
10213
namespace Puma {
 
10214
 
 
10215
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10216
 
 
10217
#line 10218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10218
} // closed Puma
 
10219
 
 
10220
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10221
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10222
#include "CExprResolveH.ah"
 
10223
#endif
 
10224
namespace Puma {
 
10225
 
 
10226
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9259
10227
class CT_DerefExpr : public CT_UnaryExpr {
9260
 
#line 9261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10228
#line 10229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10229
  friend class ::CCExprResolve;
 
10230
  friend class ::CExprResolve;
9261
10231
  friend class ::WinIfExists;
9262
10232
  friend class ::WinImportHandler;
9263
10233
  friend class ::WinMacros;
9264
 
  friend class ::CMatchSyntax;
9265
 
  friend class ::ExtGnu;
 
10234
  friend class ::WinAsm;
 
10235
  friend class ::WinDeclSpecs;
 
10236
  friend class ::WinMemberExplSpec;
 
10237
  friend class ::WinTypeKeywords;
 
10238
  friend class ::WinFriend;
9266
10239
  friend class ::ExtAC;
9267
10240
  friend class ::ExtACBuilderCoupling;
9268
10241
  friend class ::ExtACSyntaxCoupling;
9269
10242
  friend class ::ExtACTree;
9270
10243
  friend class ::ExtACKeywords;
9271
 
  friend class ::WinAsm;
9272
 
  friend class ::WinDeclSpecs;
9273
 
  friend class ::WinMemberExplSpec;
9274
 
  friend class ::WinTypeKeywords;
 
10244
  friend class ::ExtGnu;
9275
10245
  friend class ::PragmaOnceUnitState;
9276
10246
  friend class ::PragmaOnce;
9277
 
  friend class ::CCExprResolve;
9278
 
  friend class ::CExprResolve;
 
10247
  friend class ::CMatchSyntax;
9279
10248
 
9280
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10249
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9281
10250
 
9282
10251
public:
 
10252
  /** Constructor.
 
10253
   *  \param o The dereferencing operator, i.e. '*'.
 
10254
   *  \param e The expression to dereference. */
9283
10255
  CT_DerefExpr (CTree *o, CTree *e) :
9284
10256
    CT_UnaryExpr (o, e) {}
 
10257
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9285
10258
  static const char *NodeId ();
 
10259
  /** Get the name of the node. Can be compared with NodeId(). */
9286
10260
  const char *NodeName () const { return NodeId (); }
9287
10261
   private:
9288
10262
  typedef CT_DerefExpr CCExprResolveExpr;
9289
10263
 
9290
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10264
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9291
10265
 public :
9292
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10266
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9293
10267
  typedef CT_DerefExpr CExprResolveExpr;
9294
10268
 
9295
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10269
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9296
10270
 public :
9297
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9298
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10271
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10272
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9299
10273
};
9300
10274
 
 
10275
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
10276
 *  Tree node representing a delete expression, e.g. delete a. */
9301
10277
 
9302
 
#line 9303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10278
#line 10279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9303
10279
} // closed Puma
 
10280
class CCExprResolve;
 
10281
class CExprResolve;
9304
10282
class WinIfExists;
9305
10283
class WinImportHandler;
9306
10284
class WinMacros;
9307
 
class CMatchSyntax;
9308
 
class ExtGnu;
 
10285
class WinAsm;
 
10286
class WinDeclSpecs;
 
10287
class WinMemberExplSpec;
 
10288
class WinTypeKeywords;
 
10289
class WinFriend;
9309
10290
class ExtAC;
9310
10291
class ExtACBuilderCoupling;
9311
10292
class ExtACSyntaxCoupling;
9312
10293
class ExtACTree;
9313
10294
class ExtACKeywords;
9314
 
class WinAsm;
9315
 
class WinDeclSpecs;
9316
 
class WinMemberExplSpec;
9317
 
class WinTypeKeywords;
 
10295
class ExtGnu;
9318
10296
class PragmaOnceUnitState;
9319
10297
class PragmaOnce;
9320
 
class CCExprResolve;
9321
 
class CExprResolve;
9322
 
namespace Puma {
9323
 
 
9324
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10298
class CMatchSyntax;
 
10299
namespace Puma {
 
10300
 
 
10301
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10302
 
 
10303
#line 10304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10304
} // closed Puma
 
10305
 
 
10306
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10307
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10308
#include "CCExprResolveH.ah"
 
10309
#endif
 
10310
namespace Puma {
 
10311
 
 
10312
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10313
 
 
10314
#line 10315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10315
} // closed Puma
 
10316
 
 
10317
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10318
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10319
#include "CExprResolveH.ah"
 
10320
#endif
 
10321
namespace Puma {
 
10322
 
 
10323
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9325
10324
class CT_DeleteExpr : public CT_Expression, public CSemObject {
9326
 
#line 9327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10325
#line 10326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10326
  friend class ::CCExprResolve;
 
10327
  friend class ::CExprResolve;
9327
10328
  friend class ::WinIfExists;
9328
10329
  friend class ::WinImportHandler;
9329
10330
  friend class ::WinMacros;
9330
 
  friend class ::CMatchSyntax;
9331
 
  friend class ::ExtGnu;
 
10331
  friend class ::WinAsm;
 
10332
  friend class ::WinDeclSpecs;
 
10333
  friend class ::WinMemberExplSpec;
 
10334
  friend class ::WinTypeKeywords;
 
10335
  friend class ::WinFriend;
9332
10336
  friend class ::ExtAC;
9333
10337
  friend class ::ExtACBuilderCoupling;
9334
10338
  friend class ::ExtACSyntaxCoupling;
9335
10339
  friend class ::ExtACTree;
9336
10340
  friend class ::ExtACKeywords;
9337
 
  friend class ::WinAsm;
9338
 
  friend class ::WinDeclSpecs;
9339
 
  friend class ::WinMemberExplSpec;
9340
 
  friend class ::WinTypeKeywords;
 
10341
  friend class ::ExtGnu;
9341
10342
  friend class ::PragmaOnceUnitState;
9342
10343
  friend class ::PragmaOnce;
9343
 
  friend class ::CCExprResolve;
9344
 
  friend class ::CExprResolve;
 
10344
  friend class ::CMatchSyntax;
9345
10345
 
9346
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10346
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9347
10347
 
9348
10348
  CTree *sons[2]; // oper, expr
9349
10349
 
9350
10350
public:
9351
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
10351
  /** Constructor.
 
10352
   *  \param op The delete operator.
 
10353
   *  \param e The expression representing the object to delete. */
 
10354
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
10355
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9352
10356
  static const char *NodeId ();
 
10357
  /** Get the name of the node. Can be compared with NodeId(). */
9353
10358
  const char *NodeName () const { return NodeId (); }
 
10359
  /** Get the number of sons. */
9354
10360
  int Sons () const { return 2; }
 
10361
  /** Get the n-th son.
 
10362
   *  \param n The index of the son.
 
10363
   *  \return The n-th son or NULL. */
9355
10364
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10365
  /** Replace a son.
 
10366
   *  \param old_son The son to replace.
 
10367
   *  \param new_son The new son. */
9356
10368
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9357
10369
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9358
10370
  }
 
10371
  /** Get the expression. */
9359
10372
  CTree *Expr () const { return sons[1]; }
 
10373
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
9360
10374
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
10375
  /** Get the semantic information object. */
9361
10376
  CSemObject *SemObject () const { return (CSemObject*)this; }
9362
10377
   private:
9363
10378
  typedef CT_DeleteExpr CCExprResolveExpr;
9364
10379
 
9365
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10380
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9366
10381
 public :
9367
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10382
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9368
10383
  typedef CT_DeleteExpr CExprResolveExpr;
9369
10384
 
9370
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10385
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9371
10386
 public :
9372
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9373
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10387
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10388
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9374
10389
};
9375
10390
 
 
10391
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
10392
 *  Tree node representing a new expression, e.g. new A(). */
9376
10393
 
9377
 
#line 9378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10394
#line 10395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9378
10395
} // closed Puma
 
10396
class CCExprResolve;
 
10397
class CExprResolve;
9379
10398
class WinIfExists;
9380
10399
class WinImportHandler;
9381
10400
class WinMacros;
9382
 
class CMatchSyntax;
9383
 
class ExtGnu;
 
10401
class WinAsm;
 
10402
class WinDeclSpecs;
 
10403
class WinMemberExplSpec;
 
10404
class WinTypeKeywords;
 
10405
class WinFriend;
9384
10406
class ExtAC;
9385
10407
class ExtACBuilderCoupling;
9386
10408
class ExtACSyntaxCoupling;
9387
10409
class ExtACTree;
9388
10410
class ExtACKeywords;
9389
 
class WinAsm;
9390
 
class WinDeclSpecs;
9391
 
class WinMemberExplSpec;
9392
 
class WinTypeKeywords;
 
10411
class ExtGnu;
9393
10412
class PragmaOnceUnitState;
9394
10413
class PragmaOnce;
9395
 
class CCExprResolve;
9396
 
class CExprResolve;
9397
 
namespace Puma {
9398
 
 
9399
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10414
class CMatchSyntax;
 
10415
namespace Puma {
 
10416
 
 
10417
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10418
 
 
10419
#line 10420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10420
} // closed Puma
 
10421
 
 
10422
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10423
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10424
#include "CCExprResolveH.ah"
 
10425
#endif
 
10426
namespace Puma {
 
10427
 
 
10428
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10429
 
 
10430
#line 10431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10431
} // closed Puma
 
10432
 
 
10433
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10434
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10435
#include "CExprResolveH.ah"
 
10436
#endif
 
10437
namespace Puma {
 
10438
 
 
10439
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9400
10440
class CT_NewExpr : public CT_Expression, public CSemObject {
9401
 
#line 9402 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10441
#line 10442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10442
  friend class ::CCExprResolve;
 
10443
  friend class ::CExprResolve;
9402
10444
  friend class ::WinIfExists;
9403
10445
  friend class ::WinImportHandler;
9404
10446
  friend class ::WinMacros;
9405
 
  friend class ::CMatchSyntax;
9406
 
  friend class ::ExtGnu;
 
10447
  friend class ::WinAsm;
 
10448
  friend class ::WinDeclSpecs;
 
10449
  friend class ::WinMemberExplSpec;
 
10450
  friend class ::WinTypeKeywords;
 
10451
  friend class ::WinFriend;
9407
10452
  friend class ::ExtAC;
9408
10453
  friend class ::ExtACBuilderCoupling;
9409
10454
  friend class ::ExtACSyntaxCoupling;
9410
10455
  friend class ::ExtACTree;
9411
10456
  friend class ::ExtACKeywords;
9412
 
  friend class ::WinAsm;
9413
 
  friend class ::WinDeclSpecs;
9414
 
  friend class ::WinMemberExplSpec;
9415
 
  friend class ::WinTypeKeywords;
 
10457
  friend class ::ExtGnu;
9416
10458
  friend class ::PragmaOnceUnitState;
9417
10459
  friend class ::PragmaOnce;
9418
 
  friend class ::CCExprResolve;
9419
 
  friend class ::CExprResolve;
 
10460
  friend class ::CMatchSyntax;
9420
10461
 
9421
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10462
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9422
10463
 
9423
10464
  CTree *sons[6]; // oper, placement, open, type, close, init
9424
10465
 
9425
10466
public:
 
10467
  /** Constructor.
 
10468
   *  \param op The new operator.
 
10469
   *  \param p The optional placement expression.
 
10470
   *  \param o The optional left parenthesis around the type identifier.
 
10471
   *  \param t The type identifier specifying the type of the object to create.
 
10472
   *  \param c The optional right parenthesis around the type identifier.
 
10473
   *  \param i The optional initializer. */
9426
10474
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
9427
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
10475
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
10476
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
9428
10477
  }
 
10478
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9429
10479
  static const char *NodeId ();
 
10480
  /** Get the name of the node. Can be compared with NodeId(). */
9430
10481
  const char *NodeName () const { return NodeId (); }
 
10482
  /** Get the number of sons. */
9431
10483
  int Sons () const { return CTree::Sons (sons, 6); }
 
10484
  /** Get the n-th son.
 
10485
   *  \param n The index of the son.
 
10486
   *  \return The n-th son or NULL. */
9432
10487
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
10488
  /** Replace a son.
 
10489
   *  \param old_son The son to replace.
 
10490
   *  \param new_son The new son. */
9433
10491
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9434
10492
    CTree::ReplaceSon (sons, 6, old_son, new_son);
9435
10493
  }
 
10494
  /** Get the operator name. */
9436
10495
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
10496
  /** Get the placement expression. */
9437
10497
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
10498
  /** Get the initializer. */
9438
10499
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
10500
  /** Get the type of the object to create. */
9439
10501
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
10502
  /** Get the semantic information object. */
9440
10503
  CSemObject *SemObject () const { return (CSemObject*)this; }
9441
10504
   private:
9442
10505
  typedef CT_NewExpr CCExprResolveExpr;
9443
10506
 
9444
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10507
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9445
10508
 public :
9446
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10509
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9447
10510
  typedef CT_NewExpr CExprResolveExpr;
9448
10511
 
9449
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10512
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9450
10513
 public :
9451
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9452
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10514
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10515
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9453
10516
};
9454
10517
 
 
10518
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
10519
 *  Tree node representing an if-then expression, 
 
10520
 *  e.g. a>0?a:b or a?:b. */
9455
10521
 
9456
 
#line 9457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10522
#line 10523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9457
10523
} // closed Puma
 
10524
class CCExprResolve;
 
10525
class CExprResolve;
9458
10526
class WinIfExists;
9459
10527
class WinImportHandler;
9460
10528
class WinMacros;
9461
 
class CMatchSyntax;
9462
 
class ExtGnu;
 
10529
class WinAsm;
 
10530
class WinDeclSpecs;
 
10531
class WinMemberExplSpec;
 
10532
class WinTypeKeywords;
 
10533
class WinFriend;
9463
10534
class ExtAC;
9464
10535
class ExtACBuilderCoupling;
9465
10536
class ExtACSyntaxCoupling;
9466
10537
class ExtACTree;
9467
10538
class ExtACKeywords;
9468
 
class WinAsm;
9469
 
class WinDeclSpecs;
9470
 
class WinMemberExplSpec;
9471
 
class WinTypeKeywords;
 
10539
class ExtGnu;
9472
10540
class PragmaOnceUnitState;
9473
10541
class PragmaOnce;
9474
 
class CCExprResolve;
9475
 
class CExprResolve;
9476
 
namespace Puma {
9477
 
 
9478
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10542
class CMatchSyntax;
 
10543
namespace Puma {
 
10544
 
 
10545
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10546
 
 
10547
#line 10548 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10548
} // closed Puma
 
10549
 
 
10550
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10551
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10552
#include "CCExprResolveH.ah"
 
10553
#endif
 
10554
namespace Puma {
 
10555
 
 
10556
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10557
 
 
10558
#line 10559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10559
} // closed Puma
 
10560
 
 
10561
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10562
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10563
#include "CExprResolveH.ah"
 
10564
#endif
 
10565
namespace Puma {
 
10566
 
 
10567
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9479
10568
class CT_IfThenExpr : public CT_Expression {
9480
 
#line 9481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10569
#line 10570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10570
  friend class ::CCExprResolve;
 
10571
  friend class ::CExprResolve;
9481
10572
  friend class ::WinIfExists;
9482
10573
  friend class ::WinImportHandler;
9483
10574
  friend class ::WinMacros;
9484
 
  friend class ::CMatchSyntax;
9485
 
  friend class ::ExtGnu;
 
10575
  friend class ::WinAsm;
 
10576
  friend class ::WinDeclSpecs;
 
10577
  friend class ::WinMemberExplSpec;
 
10578
  friend class ::WinTypeKeywords;
 
10579
  friend class ::WinFriend;
9486
10580
  friend class ::ExtAC;
9487
10581
  friend class ::ExtACBuilderCoupling;
9488
10582
  friend class ::ExtACSyntaxCoupling;
9489
10583
  friend class ::ExtACTree;
9490
10584
  friend class ::ExtACKeywords;
9491
 
  friend class ::WinAsm;
9492
 
  friend class ::WinDeclSpecs;
9493
 
  friend class ::WinMemberExplSpec;
9494
 
  friend class ::WinTypeKeywords;
 
10585
  friend class ::ExtGnu;
9495
10586
  friend class ::PragmaOnceUnitState;
9496
10587
  friend class ::PragmaOnce;
9497
 
  friend class ::CCExprResolve;
9498
 
  friend class ::CExprResolve;
 
10588
  friend class ::CMatchSyntax;
9499
10589
 
9500
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10590
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9501
10591
 
9502
10592
  CTree *sons[5]; // cond, oper, left, colon, right
9503
10593
 
9504
10594
public:
 
10595
  /** Constructor.
 
10596
   *  \param c1 The condition expression.
 
10597
   *  \param o The question mark operator. 
 
10598
   *  \param l The expression to the left of the colon.
 
10599
   *  \param c2 The colon operator.
 
10600
   *  \param r The expression to the right of the colon. */ 
9505
10601
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
9506
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
10602
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
10603
    AddSon (sons[3], c2); AddSon (sons[4], r);
9507
10604
  }
 
10605
  /** Constructor.
 
10606
   *  \param c1 The condition expression.
 
10607
   *  \param o The question mark operator. 
 
10608
   *  \param c2 The colon operator.
 
10609
   *  \param r The expression to the right of the colon. */ 
9508
10610
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
9509
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
10611
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
10612
    AddSon (sons[3], c2); AddSon (sons[4], r);
9510
10613
  }
 
10614
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9511
10615
  static const char *NodeId ();
 
10616
  /** Get the name of the node. Can be compared with NodeId(). */
9512
10617
  const char *NodeName () const { return NodeId (); }
 
10618
  /** Get the number of sons. */
9513
10619
  int Sons () const { return CTree::Sons (sons, 5); }
 
10620
  /** Get the n-th son.
 
10621
   *  \param n The index of the son.
 
10622
   *  \return The n-th son or NULL. */
9514
10623
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
10624
  /** Get the condition expression. */
9515
10625
  CTree *Condition () const { return sons[0]; }
 
10626
  /** Get the left expression (condition=true). */
9516
10627
  CTree *LeftOperand () const { return sons[2]; }
 
10628
  /** Get the right expression (condition=false). */
9517
10629
  CTree *RightOperand () const { return sons[4]; }
 
10630
  /** Replace a son.
 
10631
   *  \param old_son The son to replace.
 
10632
   *  \param new_son The new son. */
9518
10633
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9519
10634
    CTree::ReplaceSon (sons, 5, old_son, new_son);
9520
10635
  }
9521
10636
   private:
9522
10637
  typedef CT_IfThenExpr CCExprResolveExpr;
9523
10638
 
9524
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10639
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9525
10640
 public :
9526
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10641
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9527
10642
  typedef CT_IfThenExpr CExprResolveExpr;
9528
10643
 
9529
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10644
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9530
10645
 public :
9531
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9532
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10646
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10647
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9533
10648
};
9534
10649
 
 
10650
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
10651
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
9535
10652
 
9536
 
#line 9537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10653
#line 10654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9537
10654
} // closed Puma
 
10655
class CCExprResolve;
 
10656
class CExprResolve;
9538
10657
class WinIfExists;
9539
10658
class WinImportHandler;
9540
10659
class WinMacros;
9541
 
class CMatchSyntax;
9542
 
class ExtGnu;
 
10660
class WinAsm;
 
10661
class WinDeclSpecs;
 
10662
class WinMemberExplSpec;
 
10663
class WinTypeKeywords;
 
10664
class WinFriend;
9543
10665
class ExtAC;
9544
10666
class ExtACBuilderCoupling;
9545
10667
class ExtACSyntaxCoupling;
9546
10668
class ExtACTree;
9547
10669
class ExtACKeywords;
9548
 
class WinAsm;
9549
 
class WinDeclSpecs;
9550
 
class WinMemberExplSpec;
9551
 
class WinTypeKeywords;
 
10670
class ExtGnu;
9552
10671
class PragmaOnceUnitState;
9553
10672
class PragmaOnce;
9554
 
class CCExprResolve;
9555
 
class CExprResolve;
9556
 
namespace Puma {
9557
 
 
9558
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10673
class CMatchSyntax;
 
10674
namespace Puma {
 
10675
 
 
10676
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10677
 
 
10678
#line 10679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10679
} // closed Puma
 
10680
 
 
10681
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10682
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10683
#include "CCExprResolveH.ah"
 
10684
#endif
 
10685
namespace Puma {
 
10686
 
 
10687
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10688
 
 
10689
#line 10690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10690
} // closed Puma
 
10691
 
 
10692
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10693
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10694
#include "CExprResolveH.ah"
 
10695
#endif
 
10696
namespace Puma {
 
10697
 
 
10698
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9559
10699
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
9560
 
#line 9561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10700
#line 10701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10701
  friend class ::CCExprResolve;
 
10702
  friend class ::CExprResolve;
9561
10703
  friend class ::WinIfExists;
9562
10704
  friend class ::WinImportHandler;
9563
10705
  friend class ::WinMacros;
9564
 
  friend class ::CMatchSyntax;
9565
 
  friend class ::ExtGnu;
 
10706
  friend class ::WinAsm;
 
10707
  friend class ::WinDeclSpecs;
 
10708
  friend class ::WinMemberExplSpec;
 
10709
  friend class ::WinTypeKeywords;
 
10710
  friend class ::WinFriend;
9566
10711
  friend class ::ExtAC;
9567
10712
  friend class ::ExtACBuilderCoupling;
9568
10713
  friend class ::ExtACSyntaxCoupling;
9569
10714
  friend class ::ExtACTree;
9570
10715
  friend class ::ExtACKeywords;
9571
 
  friend class ::WinAsm;
9572
 
  friend class ::WinDeclSpecs;
9573
 
  friend class ::WinMemberExplSpec;
9574
 
  friend class ::WinTypeKeywords;
 
10716
  friend class ::ExtGnu;
9575
10717
  friend class ::PragmaOnceUnitState;
9576
10718
  friend class ::PragmaOnce;
9577
 
  friend class ::CCExprResolve;
9578
 
  friend class ::CExprResolve;
 
10719
  friend class ::CMatchSyntax;
9579
10720
 
9580
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10721
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9581
10722
 
9582
10723
  CTree *sons[4]; // open, type, close, init
9583
10724
 
9584
10725
public:
 
10726
  /** Constructor.
 
10727
   *  \param r Left parenthesis of the type name.
 
10728
   *  \param t The type name.
 
10729
   *  \param cr Right parenthesis of the type name.
 
10730
   *  \param i The initializer list. */
9585
10731
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
9586
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
10732
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
10733
    AddSon (sons[2], cr); AddSon (sons[3], i);
9587
10734
  }
 
10735
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9588
10736
  static const char *NodeId ();
 
10737
  /** Get the name of the node. Can be compared with NodeId(). */
9589
10738
  const char *NodeName () const { return NodeId (); }
 
10739
  /** Get the number of sons. */
9590
10740
  int Sons () const { return 4; }
 
10741
  /** Get the n-th son.
 
10742
   *  \param n The index of the son.
 
10743
   *  \return The n-th son or NULL. */
9591
10744
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
10745
  /** Replace a son.
 
10746
   *  \param old_son The son to replace.
 
10747
   *  \param new_son The new son. */
9592
10748
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9593
10749
    CTree::ReplaceSon (sons, 4, old_son, new_son);
9594
10750
  }
 
10751
  /** Get the type name. */
9595
10752
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
10753
  /** Get the initializer list. */
9596
10754
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
10755
  /** Get the semantic information object. */
9597
10756
  CSemObject *SemObject () const { return (CSemObject*)this; }
9598
10757
   private:
9599
10758
  typedef CT_CmpdLiteral CCExprResolveExpr;
9600
10759
 
9601
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10760
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9602
10761
 public :
9603
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10762
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9604
10763
  typedef CT_CmpdLiteral CExprResolveExpr;
9605
10764
 
9606
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10765
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9607
10766
 public :
9608
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9609
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10767
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10768
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9610
10769
};
9611
10770
 
 
10771
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
10772
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
9612
10773
 
9613
 
#line 9614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10774
#line 10775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9614
10775
} // closed Puma
 
10776
class CCExprResolve;
 
10777
class CExprResolve;
9615
10778
class WinIfExists;
9616
10779
class WinImportHandler;
9617
10780
class WinMacros;
9618
 
class CMatchSyntax;
9619
 
class ExtGnu;
 
10781
class WinAsm;
 
10782
class WinDeclSpecs;
 
10783
class WinMemberExplSpec;
 
10784
class WinTypeKeywords;
 
10785
class WinFriend;
9620
10786
class ExtAC;
9621
10787
class ExtACBuilderCoupling;
9622
10788
class ExtACSyntaxCoupling;
9623
10789
class ExtACTree;
9624
10790
class ExtACKeywords;
9625
 
class WinAsm;
9626
 
class WinDeclSpecs;
9627
 
class WinMemberExplSpec;
9628
 
class WinTypeKeywords;
 
10791
class ExtGnu;
9629
10792
class PragmaOnceUnitState;
9630
10793
class PragmaOnce;
9631
 
class CCExprResolve;
9632
 
class CExprResolve;
9633
 
namespace Puma {
9634
 
 
9635
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10794
class CMatchSyntax;
 
10795
namespace Puma {
 
10796
 
 
10797
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10798
 
 
10799
#line 10800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10800
} // closed Puma
 
10801
 
 
10802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10804
#include "CCExprResolveH.ah"
 
10805
#endif
 
10806
namespace Puma {
 
10807
 
 
10808
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10809
 
 
10810
#line 10811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10811
} // closed Puma
 
10812
 
 
10813
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10814
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10815
#include "CExprResolveH.ah"
 
10816
#endif
 
10817
namespace Puma {
 
10818
 
 
10819
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9636
10820
class CT_ConstructExpr : public CT_Expression, public CSemObject {
9637
 
#line 9638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10821
#line 10822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10822
  friend class ::CCExprResolve;
 
10823
  friend class ::CExprResolve;
9638
10824
  friend class ::WinIfExists;
9639
10825
  friend class ::WinImportHandler;
9640
10826
  friend class ::WinMacros;
9641
 
  friend class ::CMatchSyntax;
9642
 
  friend class ::ExtGnu;
 
10827
  friend class ::WinAsm;
 
10828
  friend class ::WinDeclSpecs;
 
10829
  friend class ::WinMemberExplSpec;
 
10830
  friend class ::WinTypeKeywords;
 
10831
  friend class ::WinFriend;
9643
10832
  friend class ::ExtAC;
9644
10833
  friend class ::ExtACBuilderCoupling;
9645
10834
  friend class ::ExtACSyntaxCoupling;
9646
10835
  friend class ::ExtACTree;
9647
10836
  friend class ::ExtACKeywords;
9648
 
  friend class ::WinAsm;
9649
 
  friend class ::WinDeclSpecs;
9650
 
  friend class ::WinMemberExplSpec;
9651
 
  friend class ::WinTypeKeywords;
 
10837
  friend class ::ExtGnu;
9652
10838
  friend class ::PragmaOnceUnitState;
9653
10839
  friend class ::PragmaOnce;
9654
 
  friend class ::CCExprResolve;
9655
 
  friend class ::CExprResolve;
 
10840
  friend class ::CMatchSyntax;
9656
10841
 
9657
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10842
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9658
10843
 
9659
10844
  CTree *sons[2]; // type, init
9660
10845
 
9661
10846
public:
9662
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
10847
  /** Constructor.
 
10848
   *  \param t The type name.
 
10849
   *  \param i The initializer list. */
 
10850
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
10851
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9663
10852
  static const char *NodeId ();
 
10853
  /** Get the name of the node. Can be compared with NodeId(). */
9664
10854
  const char *NodeName () const { return NodeId (); }
 
10855
  /** Get the number of sons. */
9665
10856
  int Sons () const { return 2; }
 
10857
  /** Get the n-th son.
 
10858
   *  \param n The index of the son.
 
10859
   *  \return The n-th son or NULL. */
9666
10860
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10861
  /** Replace a son.
 
10862
   *  \param old_son The son to replace.
 
10863
   *  \param new_son The new son. */
9667
10864
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9668
10865
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9669
10866
  }
 
10867
  /** Get the type name. */
9670
10868
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
10869
  /** Get the initializer. */
9671
10870
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
10871
  /** Get the semantic information object. */
9672
10872
  CSemObject *SemObject () const { return (CSemObject*)this; }
9673
10873
   private:
9674
10874
  typedef CT_ConstructExpr CCExprResolveExpr;
9675
10875
 
9676
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10876
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9677
10877
 public :
9678
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10878
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9679
10879
  typedef CT_ConstructExpr CExprResolveExpr;
9680
10880
 
9681
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10881
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9682
10882
 public :
9683
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9684
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10883
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10884
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9685
10885
};
9686
10886
 
 
10887
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
10888
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
9687
10889
 
9688
 
#line 9689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10890
#line 10891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9689
10891
} // closed Puma
 
10892
class CCExprResolve;
 
10893
class CExprResolve;
9690
10894
class WinIfExists;
9691
10895
class WinImportHandler;
9692
10896
class WinMacros;
9693
 
class CMatchSyntax;
9694
 
class ExtGnu;
 
10897
class WinAsm;
 
10898
class WinDeclSpecs;
 
10899
class WinMemberExplSpec;
 
10900
class WinTypeKeywords;
 
10901
class WinFriend;
9695
10902
class ExtAC;
9696
10903
class ExtACBuilderCoupling;
9697
10904
class ExtACSyntaxCoupling;
9698
10905
class ExtACTree;
9699
10906
class ExtACKeywords;
9700
 
class WinAsm;
9701
 
class WinDeclSpecs;
9702
 
class WinMemberExplSpec;
9703
 
class WinTypeKeywords;
 
10907
class ExtGnu;
9704
10908
class PragmaOnceUnitState;
9705
10909
class PragmaOnce;
9706
 
class CCExprResolve;
9707
 
class CExprResolve;
9708
 
namespace Puma {
9709
 
 
9710
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10910
class CMatchSyntax;
 
10911
namespace Puma {
 
10912
 
 
10913
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10914
 
 
10915
#line 10916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10916
} // closed Puma
 
10917
 
 
10918
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10919
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10920
#include "CCExprResolveH.ah"
 
10921
#endif
 
10922
namespace Puma {
 
10923
 
 
10924
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10925
 
 
10926
#line 10927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10927
} // closed Puma
 
10928
 
 
10929
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10930
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10931
#include "CExprResolveH.ah"
 
10932
#endif
 
10933
namespace Puma {
 
10934
 
 
10935
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9711
10936
class CT_ThrowExpr : public CT_Expression {
9712
 
#line 9713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
10937
#line 10938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
10938
  friend class ::CCExprResolve;
 
10939
  friend class ::CExprResolve;
9713
10940
  friend class ::WinIfExists;
9714
10941
  friend class ::WinImportHandler;
9715
10942
  friend class ::WinMacros;
9716
 
  friend class ::CMatchSyntax;
9717
 
  friend class ::ExtGnu;
 
10943
  friend class ::WinAsm;
 
10944
  friend class ::WinDeclSpecs;
 
10945
  friend class ::WinMemberExplSpec;
 
10946
  friend class ::WinTypeKeywords;
 
10947
  friend class ::WinFriend;
9718
10948
  friend class ::ExtAC;
9719
10949
  friend class ::ExtACBuilderCoupling;
9720
10950
  friend class ::ExtACSyntaxCoupling;
9721
10951
  friend class ::ExtACTree;
9722
10952
  friend class ::ExtACKeywords;
9723
 
  friend class ::WinAsm;
9724
 
  friend class ::WinDeclSpecs;
9725
 
  friend class ::WinMemberExplSpec;
9726
 
  friend class ::WinTypeKeywords;
 
10953
  friend class ::ExtGnu;
9727
10954
  friend class ::PragmaOnceUnitState;
9728
10955
  friend class ::PragmaOnce;
9729
 
  friend class ::CCExprResolve;
9730
 
  friend class ::CExprResolve;
 
10956
  friend class ::CMatchSyntax;
9731
10957
 
9732
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10958
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9733
10959
 
9734
10960
  CTree *sons[2]; // throw, expr
9735
10961
 
9736
10962
public:
9737
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
10963
  /** Constructor.
 
10964
   *  \param t The 'throw' keyword.
 
10965
   *  \param e The expression. */
 
10966
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
10967
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9738
10968
  static const char *NodeId ();
 
10969
  /** Get the name of the node. Can be compared with NodeId(). */
9739
10970
  const char *NodeName () const { return NodeId (); }
 
10971
  /** Get the number of sons. */
9740
10972
  int Sons () const { return CTree::Sons (sons, 2); }
 
10973
  /** Get the n-th son.
 
10974
   *  \param n The index of the son.
 
10975
   *  \return The n-th son or NULL. */
9741
10976
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10977
  /** Replace a son.
 
10978
   *  \param old_son The son to replace.
 
10979
   *  \param new_son The new son. */
9742
10980
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9743
10981
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9744
10982
  }
 
10983
  /** Get the expression. */
9745
10984
  CTree *Expr () const { return sons[1]; }
9746
10985
   private:
9747
10986
  typedef CT_ThrowExpr CCExprResolveExpr;
9748
10987
 
9749
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10988
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9750
10989
 public :
9751
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10990
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9752
10991
  typedef CT_ThrowExpr CExprResolveExpr;
9753
10992
 
9754
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10993
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9755
10994
 public :
9756
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9757
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10995
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10996
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9758
10997
};
9759
10998
 
 
10999
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
11000
 *  Tree node representing an index expression. */
9760
11001
 
9761
 
#line 9762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11002
#line 11003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9762
11003
} // closed Puma
 
11004
class CCExprResolve;
 
11005
class CExprResolve;
9763
11006
class WinIfExists;
9764
11007
class WinImportHandler;
9765
11008
class WinMacros;
9766
 
class CMatchSyntax;
9767
 
class ExtGnu;
 
11009
class WinAsm;
 
11010
class WinDeclSpecs;
 
11011
class WinMemberExplSpec;
 
11012
class WinTypeKeywords;
 
11013
class WinFriend;
9768
11014
class ExtAC;
9769
11015
class ExtACBuilderCoupling;
9770
11016
class ExtACSyntaxCoupling;
9771
11017
class ExtACTree;
9772
11018
class ExtACKeywords;
9773
 
class WinAsm;
9774
 
class WinDeclSpecs;
9775
 
class WinMemberExplSpec;
9776
 
class WinTypeKeywords;
 
11019
class ExtGnu;
9777
11020
class PragmaOnceUnitState;
9778
11021
class PragmaOnce;
9779
 
class CCExprResolve;
9780
 
class CExprResolve;
9781
 
namespace Puma {
9782
 
 
9783
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9784
 
class CT_IndexExpr : public CT_Expression {
9785
 
#line 9786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11022
class CMatchSyntax;
 
11023
namespace Puma {
 
11024
 
 
11025
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11026
 
 
11027
#line 11028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11028
} // closed Puma
 
11029
 
 
11030
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11031
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11032
#include "CCExprResolveH.ah"
 
11033
#endif
 
11034
namespace Puma {
 
11035
 
 
11036
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11037
 
 
11038
#line 11039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11039
} // closed Puma
 
11040
 
 
11041
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11042
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11043
#include "CExprResolveH.ah"
 
11044
#endif
 
11045
namespace Puma {
 
11046
 
 
11047
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11048
class CT_IndexExpr : public CT_Call {
 
11049
#line 11050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11050
  friend class ::CCExprResolve;
 
11051
  friend class ::CExprResolve;
9786
11052
  friend class ::WinIfExists;
9787
11053
  friend class ::WinImportHandler;
9788
11054
  friend class ::WinMacros;
9789
 
  friend class ::CMatchSyntax;
9790
 
  friend class ::ExtGnu;
 
11055
  friend class ::WinAsm;
 
11056
  friend class ::WinDeclSpecs;
 
11057
  friend class ::WinMemberExplSpec;
 
11058
  friend class ::WinTypeKeywords;
 
11059
  friend class ::WinFriend;
9791
11060
  friend class ::ExtAC;
9792
11061
  friend class ::ExtACBuilderCoupling;
9793
11062
  friend class ::ExtACSyntaxCoupling;
9794
11063
  friend class ::ExtACTree;
9795
11064
  friend class ::ExtACKeywords;
9796
 
  friend class ::WinAsm;
9797
 
  friend class ::WinDeclSpecs;
9798
 
  friend class ::WinMemberExplSpec;
9799
 
  friend class ::WinTypeKeywords;
 
11065
  friend class ::ExtGnu;
9800
11066
  friend class ::PragmaOnceUnitState;
9801
11067
  friend class ::PragmaOnce;
9802
 
  friend class ::CCExprResolve;
9803
 
  friend class ::CExprResolve;
 
11068
  friend class ::CMatchSyntax;
9804
11069
 
9805
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11070
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9806
11071
 
9807
11072
  CTree *sons[4]; // expr, open, index, close
9808
11073
 
9809
11074
public:
 
11075
  /** Constructor.
 
11076
   *  \param e The expression on which to invoke the index operator.
 
11077
   *  \param o Left parenthesis of the index expression.
 
11078
   *  \param i The index expression. 
 
11079
   *  \param c Right parenthesis of the index expression. */
9810
11080
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
9811
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
11081
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
11082
    AddSon (sons[2], i); AddSon (sons[3], c);
9812
11083
  }
 
11084
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9813
11085
  static const char *NodeId ();
 
11086
  /** Get the name of the node. Can be compared with NodeId(). */
9814
11087
  const char *NodeName () const { return NodeId (); }
 
11088
  /** Get the number of sons. */
9815
11089
  int Sons () const { return 4; }
 
11090
  /** Get the n-th son.
 
11091
   *  \param n The index of the son.
 
11092
   *  \return The n-th son or NULL. */
9816
11093
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
11094
  /** Replace a son.
 
11095
   *  \param old_son The son to replace.
 
11096
   *  \param new_son The new son. */
9817
11097
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9818
11098
    CTree::ReplaceSon (sons, 4, old_son, new_son);
9819
11099
  }
9820
11100
   private:
9821
11101
  typedef CT_IndexExpr CCExprResolveExpr;
9822
11102
 
9823
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11103
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9824
11104
 public :
9825
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11105
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9826
11106
  typedef CT_IndexExpr CExprResolveExpr;
9827
11107
 
9828
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11108
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9829
11109
 public :
9830
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9831
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11110
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11111
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9832
11112
};
9833
11113
 
 
11114
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
11115
 *  Tree node representing a function call expression, e.g. f(i). */
9834
11116
 
9835
 
#line 9836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11117
#line 11118 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9836
11118
} // closed Puma
 
11119
class CCExprResolve;
 
11120
class CExprResolve;
9837
11121
class WinIfExists;
9838
11122
class WinImportHandler;
9839
11123
class WinMacros;
9840
 
class CMatchSyntax;
9841
 
class ExtGnu;
 
11124
class WinAsm;
 
11125
class WinDeclSpecs;
 
11126
class WinMemberExplSpec;
 
11127
class WinTypeKeywords;
 
11128
class WinFriend;
9842
11129
class ExtAC;
9843
11130
class ExtACBuilderCoupling;
9844
11131
class ExtACSyntaxCoupling;
9845
11132
class ExtACTree;
9846
11133
class ExtACKeywords;
9847
 
class WinAsm;
9848
 
class WinDeclSpecs;
9849
 
class WinMemberExplSpec;
9850
 
class WinTypeKeywords;
 
11134
class ExtGnu;
9851
11135
class PragmaOnceUnitState;
9852
11136
class PragmaOnce;
9853
 
class CCExprResolve;
9854
 
class CExprResolve;
9855
 
namespace Puma {
9856
 
 
9857
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9858
 
class CT_CallExpr : public CT_Expression, public CSemObject {
9859
 
#line 9860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11137
class CMatchSyntax;
 
11138
namespace Puma {
 
11139
 
 
11140
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11141
 
 
11142
#line 11143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11143
} // closed Puma
 
11144
 
 
11145
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11146
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11147
#include "CCExprResolveH.ah"
 
11148
#endif
 
11149
namespace Puma {
 
11150
 
 
11151
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11152
 
 
11153
#line 11154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11154
} // closed Puma
 
11155
 
 
11156
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11157
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11158
#include "CExprResolveH.ah"
 
11159
#endif
 
11160
namespace Puma {
 
11161
 
 
11162
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11163
class CT_CallExpr : public CT_Call {
 
11164
#line 11165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11165
  friend class ::CCExprResolve;
 
11166
  friend class ::CExprResolve;
9860
11167
  friend class ::WinIfExists;
9861
11168
  friend class ::WinImportHandler;
9862
11169
  friend class ::WinMacros;
9863
 
  friend class ::CMatchSyntax;
9864
 
  friend class ::ExtGnu;
 
11170
  friend class ::WinAsm;
 
11171
  friend class ::WinDeclSpecs;
 
11172
  friend class ::WinMemberExplSpec;
 
11173
  friend class ::WinTypeKeywords;
 
11174
  friend class ::WinFriend;
9865
11175
  friend class ::ExtAC;
9866
11176
  friend class ::ExtACBuilderCoupling;
9867
11177
  friend class ::ExtACSyntaxCoupling;
9868
11178
  friend class ::ExtACTree;
9869
11179
  friend class ::ExtACKeywords;
9870
 
  friend class ::WinAsm;
9871
 
  friend class ::WinDeclSpecs;
9872
 
  friend class ::WinMemberExplSpec;
9873
 
  friend class ::WinTypeKeywords;
 
11180
  friend class ::ExtGnu;
9874
11181
  friend class ::PragmaOnceUnitState;
9875
11182
  friend class ::PragmaOnce;
9876
 
  friend class ::CCExprResolve;
9877
 
  friend class ::CExprResolve;
 
11183
  friend class ::CMatchSyntax;
9878
11184
 
9879
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11185
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9880
11186
 
9881
11187
  CTree *sons[2]; // expr, args
9882
11188
 
9883
11189
public:
9884
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
9885
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
11190
  /** Constructor.
 
11191
   *  \param e The expression on which the call is invoked. */
 
11192
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
11193
  /** Constructor.
 
11194
   *  \param e The expression on which the call is invoked.
 
11195
   *  \param l The argument list of the call. */
 
11196
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
11197
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9886
11198
  static const char *NodeId ();
 
11199
  /** Get the name of the node. Can be compared with NodeId(). */
9887
11200
  const char *NodeName () const { return NodeId (); }
 
11201
  /** Get the number of sons. */
9888
11202
  int Sons () const { return CTree::Sons (sons, 2); }
 
11203
  /** Get the n-th son.
 
11204
   *  \param n The index of the son.
 
11205
   *  \return The n-th son or NULL. */
9889
11206
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
11207
  /** Replace a son.
 
11208
   *  \param old_son The son to replace.
 
11209
   *  \param new_son The new son. */
9890
11210
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9891
11211
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9892
11212
  }
9893
11213
  CTree *Expr () const { return sons[0]; }
9894
11214
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
9895
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
9896
11215
   private:
9897
11216
  typedef CT_CallExpr CCExprResolveExpr;
9898
11217
 
9899
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11218
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9900
11219
 public :
9901
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11220
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9902
11221
  typedef CT_CallExpr CExprResolveExpr;
9903
11222
 
9904
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11223
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9905
11224
 public :
9906
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9907
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11225
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11226
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9908
11227
};
9909
11228
 
 
11229
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
11230
 *  Tree node representing a cast expression, e.g. (int)a. */
9910
11231
 
9911
 
#line 9912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11232
#line 11233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9912
11233
} // closed Puma
 
11234
class CCExprResolve;
 
11235
class CExprResolve;
9913
11236
class WinIfExists;
9914
11237
class WinImportHandler;
9915
11238
class WinMacros;
9916
 
class CMatchSyntax;
9917
 
class ExtGnu;
 
11239
class WinAsm;
 
11240
class WinDeclSpecs;
 
11241
class WinMemberExplSpec;
 
11242
class WinTypeKeywords;
 
11243
class WinFriend;
9918
11244
class ExtAC;
9919
11245
class ExtACBuilderCoupling;
9920
11246
class ExtACSyntaxCoupling;
9921
11247
class ExtACTree;
9922
11248
class ExtACKeywords;
9923
 
class WinAsm;
9924
 
class WinDeclSpecs;
9925
 
class WinMemberExplSpec;
9926
 
class WinTypeKeywords;
 
11249
class ExtGnu;
9927
11250
class PragmaOnceUnitState;
9928
11251
class PragmaOnce;
9929
 
class CCExprResolve;
9930
 
class CExprResolve;
9931
 
namespace Puma {
9932
 
 
9933
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11252
class CMatchSyntax;
 
11253
namespace Puma {
 
11254
 
 
11255
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11256
 
 
11257
#line 11258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11258
} // closed Puma
 
11259
 
 
11260
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11261
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11262
#include "CCExprResolveH.ah"
 
11263
#endif
 
11264
namespace Puma {
 
11265
 
 
11266
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11267
 
 
11268
#line 11269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11269
} // closed Puma
 
11270
 
 
11271
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11272
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11273
#include "CExprResolveH.ah"
 
11274
#endif
 
11275
namespace Puma {
 
11276
 
 
11277
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9934
11278
class CT_CastExpr : public CT_Expression {
9935
 
#line 9936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11279
#line 11280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11280
  friend class ::CCExprResolve;
 
11281
  friend class ::CExprResolve;
9936
11282
  friend class ::WinIfExists;
9937
11283
  friend class ::WinImportHandler;
9938
11284
  friend class ::WinMacros;
9939
 
  friend class ::CMatchSyntax;
9940
 
  friend class ::ExtGnu;
 
11285
  friend class ::WinAsm;
 
11286
  friend class ::WinDeclSpecs;
 
11287
  friend class ::WinMemberExplSpec;
 
11288
  friend class ::WinTypeKeywords;
 
11289
  friend class ::WinFriend;
9941
11290
  friend class ::ExtAC;
9942
11291
  friend class ::ExtACBuilderCoupling;
9943
11292
  friend class ::ExtACSyntaxCoupling;
9944
11293
  friend class ::ExtACTree;
9945
11294
  friend class ::ExtACKeywords;
9946
 
  friend class ::WinAsm;
9947
 
  friend class ::WinDeclSpecs;
9948
 
  friend class ::WinMemberExplSpec;
9949
 
  friend class ::WinTypeKeywords;
 
11295
  friend class ::ExtGnu;
9950
11296
  friend class ::PragmaOnceUnitState;
9951
11297
  friend class ::PragmaOnce;
9952
 
  friend class ::CCExprResolve;
9953
 
  friend class ::CExprResolve;
 
11298
  friend class ::CMatchSyntax;
9954
11299
 
9955
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11300
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9956
11301
 
9957
11302
  CTree *sons[4]; // open, type, close, expr
9958
11303
 
9959
11304
public:
 
11305
  /** Constructor.
 
11306
   *  \param o Left parenthesis of the type name.
 
11307
   *  \param t The type to cast to.
 
11308
   *  \param c Right parenthesis of the type name. 
 
11309
   *  \param e The expression to cast. */
9960
11310
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
9961
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
11311
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
11312
    AddSon (sons[2], c); AddSon (sons[3], e);
9962
11313
  }
 
11314
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9963
11315
  static const char *NodeId ();
 
11316
  /** Get the name of the node. Can be compared with NodeId(). */
9964
11317
  const char *NodeName () const { return NodeId (); }
 
11318
  /** Get the number of sons. */
9965
11319
  int Sons () const { return 4; }
 
11320
  /** Get the n-th son.
 
11321
   *  \param n The index of the son.
 
11322
   *  \return The n-th son or NULL. */
9966
11323
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
11324
  /** Replace a son.
 
11325
   *  \param old_son The son to replace.
 
11326
   *  \param new_son The new son. */
9967
11327
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9968
11328
    CTree::ReplaceSon (sons, 4, old_son, new_son);
9969
11329
  }
 
11330
  /** Get the casted expression. */
9970
11331
  CTree *Expr () const { return sons[3]; }
 
11332
  /** Get the type to cast to. */
9971
11333
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
9972
11334
   private:
9973
11335
  typedef CT_CastExpr CCExprResolveExpr;
9974
11336
 
9975
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11337
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9976
11338
 public :
9977
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11339
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9978
11340
  typedef CT_CastExpr CExprResolveExpr;
9979
11341
 
9980
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11342
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9981
11343
 public :
9982
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9983
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11344
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11345
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9984
11346
};
9985
11347
 
 
11348
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
11349
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
9986
11350
 
9987
 
#line 9988 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11351
#line 11352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
9988
11352
} // closed Puma
 
11353
class CCExprResolve;
 
11354
class CExprResolve;
9989
11355
class WinIfExists;
9990
11356
class WinImportHandler;
9991
11357
class WinMacros;
9992
 
class CMatchSyntax;
9993
 
class ExtGnu;
 
11358
class WinAsm;
 
11359
class WinDeclSpecs;
 
11360
class WinMemberExplSpec;
 
11361
class WinTypeKeywords;
 
11362
class WinFriend;
9994
11363
class ExtAC;
9995
11364
class ExtACBuilderCoupling;
9996
11365
class ExtACSyntaxCoupling;
9997
11366
class ExtACTree;
9998
11367
class ExtACKeywords;
9999
 
class WinAsm;
10000
 
class WinDeclSpecs;
10001
 
class WinMemberExplSpec;
10002
 
class WinTypeKeywords;
 
11368
class ExtGnu;
10003
11369
class PragmaOnceUnitState;
10004
11370
class PragmaOnce;
10005
 
class CCExprResolve;
10006
 
class CExprResolve;
10007
 
namespace Puma {
10008
 
 
10009
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11371
class CMatchSyntax;
 
11372
namespace Puma {
 
11373
 
 
11374
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11375
 
 
11376
#line 11377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11377
} // closed Puma
 
11378
 
 
11379
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11380
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11381
#include "CCExprResolveH.ah"
 
11382
#endif
 
11383
namespace Puma {
 
11384
 
 
11385
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11386
 
 
11387
#line 11388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11388
} // closed Puma
 
11389
 
 
11390
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11391
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11392
#include "CExprResolveH.ah"
 
11393
#endif
 
11394
namespace Puma {
 
11395
 
 
11396
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10010
11397
class CT_StaticCast : public CT_Expression {
10011
 
#line 10012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11398
#line 11399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11399
  friend class ::CCExprResolve;
 
11400
  friend class ::CExprResolve;
10012
11401
  friend class ::WinIfExists;
10013
11402
  friend class ::WinImportHandler;
10014
11403
  friend class ::WinMacros;
10015
 
  friend class ::CMatchSyntax;
10016
 
  friend class ::ExtGnu;
 
11404
  friend class ::WinAsm;
 
11405
  friend class ::WinDeclSpecs;
 
11406
  friend class ::WinMemberExplSpec;
 
11407
  friend class ::WinTypeKeywords;
 
11408
  friend class ::WinFriend;
10017
11409
  friend class ::ExtAC;
10018
11410
  friend class ::ExtACBuilderCoupling;
10019
11411
  friend class ::ExtACSyntaxCoupling;
10020
11412
  friend class ::ExtACTree;
10021
11413
  friend class ::ExtACKeywords;
10022
 
  friend class ::WinAsm;
10023
 
  friend class ::WinDeclSpecs;
10024
 
  friend class ::WinMemberExplSpec;
10025
 
  friend class ::WinTypeKeywords;
 
11414
  friend class ::ExtGnu;
10026
11415
  friend class ::PragmaOnceUnitState;
10027
11416
  friend class ::PragmaOnce;
10028
 
  friend class ::CCExprResolve;
10029
 
  friend class ::CExprResolve;
 
11417
  friend class ::CMatchSyntax;
10030
11418
 
10031
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11419
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10032
11420
 
10033
11421
  CTree *sons[5]; // cast, open, type, close, expr
10034
11422
 
10035
11423
public:
 
11424
  /** Constructor.
 
11425
   *  \param cst The cast operator, i.e. 'static_cast'.
 
11426
   *  \param o Left arrow bracket of the type name.
 
11427
   *  \param t The type to cast to.
 
11428
   *  \param c Right array bracket of the type name.
 
11429
   *  \param e The expression to cast. */
10036
11430
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
10037
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
11431
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
11432
    AddSon (sons[3], c); AddSon (sons[4], e);
10038
11433
  }
 
11434
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10039
11435
  static const char *NodeId ();
 
11436
  /** Get the name of the node. Can be compared with NodeId(). */
10040
11437
  const char *NodeName () const { return NodeId (); }
 
11438
  /** Get the number of sons. */
10041
11439
  int Sons () const { return 5; }
 
11440
  /** Get the n-th son.
 
11441
   *  \param n The index of the son.
 
11442
   *  \return The n-th son or NULL. */
10042
11443
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
11444
  /** Replace a son.
 
11445
   *  \param old_son The son to replace.
 
11446
   *  \param new_son The new son. */
10043
11447
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10044
11448
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10045
11449
  }
 
11450
  /** Get the casted expression. */
10046
11451
  CTree *Expr () const { return sons[4]; }
 
11452
  /** Get the type to cast to. */
10047
11453
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
10048
11454
   private:
10049
11455
  typedef CT_StaticCast CCExprResolveExpr;
10050
11456
 
10051
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11457
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10052
11458
 public :
10053
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11459
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10054
11460
  typedef CT_StaticCast CExprResolveExpr;
10055
11461
 
10056
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11462
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10057
11463
 public :
10058
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10059
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11464
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11465
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10060
11466
};
10061
11467
 
 
11468
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
11469
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
10062
11470
 
10063
 
#line 10064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11471
#line 11472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10064
11472
} // closed Puma
 
11473
class CCExprResolve;
 
11474
class CExprResolve;
10065
11475
class WinIfExists;
10066
11476
class WinImportHandler;
10067
11477
class WinMacros;
10068
 
class CMatchSyntax;
10069
 
class ExtGnu;
 
11478
class WinAsm;
 
11479
class WinDeclSpecs;
 
11480
class WinMemberExplSpec;
 
11481
class WinTypeKeywords;
 
11482
class WinFriend;
10070
11483
class ExtAC;
10071
11484
class ExtACBuilderCoupling;
10072
11485
class ExtACSyntaxCoupling;
10073
11486
class ExtACTree;
10074
11487
class ExtACKeywords;
10075
 
class WinAsm;
10076
 
class WinDeclSpecs;
10077
 
class WinMemberExplSpec;
10078
 
class WinTypeKeywords;
 
11488
class ExtGnu;
10079
11489
class PragmaOnceUnitState;
10080
11490
class PragmaOnce;
10081
 
class CCExprResolve;
10082
 
class CExprResolve;
10083
 
namespace Puma {
10084
 
 
10085
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11491
class CMatchSyntax;
 
11492
namespace Puma {
 
11493
 
 
11494
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11495
 
 
11496
#line 11497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11497
} // closed Puma
 
11498
 
 
11499
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11500
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11501
#include "CCExprResolveH.ah"
 
11502
#endif
 
11503
namespace Puma {
 
11504
 
 
11505
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11506
 
 
11507
#line 11508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11508
} // closed Puma
 
11509
 
 
11510
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11511
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11512
#include "CExprResolveH.ah"
 
11513
#endif
 
11514
namespace Puma {
 
11515
 
 
11516
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10086
11517
class CT_ConstCast : public CT_StaticCast {
10087
 
#line 10088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11518
#line 11519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11519
  friend class ::CCExprResolve;
 
11520
  friend class ::CExprResolve;
10088
11521
  friend class ::WinIfExists;
10089
11522
  friend class ::WinImportHandler;
10090
11523
  friend class ::WinMacros;
10091
 
  friend class ::CMatchSyntax;
10092
 
  friend class ::ExtGnu;
 
11524
  friend class ::WinAsm;
 
11525
  friend class ::WinDeclSpecs;
 
11526
  friend class ::WinMemberExplSpec;
 
11527
  friend class ::WinTypeKeywords;
 
11528
  friend class ::WinFriend;
10093
11529
  friend class ::ExtAC;
10094
11530
  friend class ::ExtACBuilderCoupling;
10095
11531
  friend class ::ExtACSyntaxCoupling;
10096
11532
  friend class ::ExtACTree;
10097
11533
  friend class ::ExtACKeywords;
10098
 
  friend class ::WinAsm;
10099
 
  friend class ::WinDeclSpecs;
10100
 
  friend class ::WinMemberExplSpec;
10101
 
  friend class ::WinTypeKeywords;
 
11534
  friend class ::ExtGnu;
10102
11535
  friend class ::PragmaOnceUnitState;
10103
11536
  friend class ::PragmaOnce;
10104
 
  friend class ::CCExprResolve;
10105
 
  friend class ::CExprResolve;
 
11537
  friend class ::CMatchSyntax;
10106
11538
 
10107
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11539
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10108
11540
 
10109
11541
public:
 
11542
  /** Constructor.
 
11543
   *  \param cst The cast operator, i.e. 'const_cast'.
 
11544
   *  \param o Left arrow bracket of the type name.
 
11545
   *  \param t The type to cast to.
 
11546
   *  \param c Right array bracket of the type name.
 
11547
   *  \param e The expression to cast. */
10110
11548
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
10111
11549
    CT_StaticCast (cst, o, t, c, e) {}
 
11550
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10112
11551
  static const char *NodeId ();
 
11552
  /** Get the name of the node. Can be compared with NodeId(). */
10113
11553
  const char *NodeName () const { return NodeId (); }
10114
11554
   private:
10115
11555
  typedef CT_ConstCast CCExprResolveExpr;
10116
11556
 
10117
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11557
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10118
11558
 public :
10119
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11559
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10120
11560
  typedef CT_ConstCast CExprResolveExpr;
10121
11561
 
10122
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11562
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10123
11563
 public :
10124
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10125
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11564
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11565
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10126
11566
};
10127
11567
 
 
11568
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
11569
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
10128
11570
 
10129
 
#line 10130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11571
#line 11572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10130
11572
} // closed Puma
 
11573
class CCExprResolve;
 
11574
class CExprResolve;
10131
11575
class WinIfExists;
10132
11576
class WinImportHandler;
10133
11577
class WinMacros;
10134
 
class CMatchSyntax;
10135
 
class ExtGnu;
 
11578
class WinAsm;
 
11579
class WinDeclSpecs;
 
11580
class WinMemberExplSpec;
 
11581
class WinTypeKeywords;
 
11582
class WinFriend;
10136
11583
class ExtAC;
10137
11584
class ExtACBuilderCoupling;
10138
11585
class ExtACSyntaxCoupling;
10139
11586
class ExtACTree;
10140
11587
class ExtACKeywords;
10141
 
class WinAsm;
10142
 
class WinDeclSpecs;
10143
 
class WinMemberExplSpec;
10144
 
class WinTypeKeywords;
 
11588
class ExtGnu;
10145
11589
class PragmaOnceUnitState;
10146
11590
class PragmaOnce;
10147
 
class CCExprResolve;
10148
 
class CExprResolve;
10149
 
namespace Puma {
10150
 
 
10151
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11591
class CMatchSyntax;
 
11592
namespace Puma {
 
11593
 
 
11594
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11595
 
 
11596
#line 11597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11597
} // closed Puma
 
11598
 
 
11599
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11600
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11601
#include "CCExprResolveH.ah"
 
11602
#endif
 
11603
namespace Puma {
 
11604
 
 
11605
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11606
 
 
11607
#line 11608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11608
} // closed Puma
 
11609
 
 
11610
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11611
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11612
#include "CExprResolveH.ah"
 
11613
#endif
 
11614
namespace Puma {
 
11615
 
 
11616
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10152
11617
class CT_ReintCast : public CT_StaticCast {
10153
 
#line 10154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11618
#line 11619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11619
  friend class ::CCExprResolve;
 
11620
  friend class ::CExprResolve;
10154
11621
  friend class ::WinIfExists;
10155
11622
  friend class ::WinImportHandler;
10156
11623
  friend class ::WinMacros;
10157
 
  friend class ::CMatchSyntax;
10158
 
  friend class ::ExtGnu;
 
11624
  friend class ::WinAsm;
 
11625
  friend class ::WinDeclSpecs;
 
11626
  friend class ::WinMemberExplSpec;
 
11627
  friend class ::WinTypeKeywords;
 
11628
  friend class ::WinFriend;
10159
11629
  friend class ::ExtAC;
10160
11630
  friend class ::ExtACBuilderCoupling;
10161
11631
  friend class ::ExtACSyntaxCoupling;
10162
11632
  friend class ::ExtACTree;
10163
11633
  friend class ::ExtACKeywords;
10164
 
  friend class ::WinAsm;
10165
 
  friend class ::WinDeclSpecs;
10166
 
  friend class ::WinMemberExplSpec;
10167
 
  friend class ::WinTypeKeywords;
 
11634
  friend class ::ExtGnu;
10168
11635
  friend class ::PragmaOnceUnitState;
10169
11636
  friend class ::PragmaOnce;
10170
 
  friend class ::CCExprResolve;
10171
 
  friend class ::CExprResolve;
 
11637
  friend class ::CMatchSyntax;
10172
11638
 
10173
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11639
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10174
11640
 
10175
11641
public:
 
11642
  /** Constructor.
 
11643
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
11644
   *  \param o Left arrow bracket of the type name.
 
11645
   *  \param t The type to cast to.
 
11646
   *  \param c Right array bracket of the type name.
 
11647
   *  \param e The expression to cast. */
10176
11648
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
10177
11649
    CT_StaticCast (cst, o, t, c, e) {}
 
11650
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10178
11651
  static const char *NodeId ();
 
11652
  /** Get the name of the node. Can be compared with NodeId(). */
10179
11653
  const char *NodeName () const { return NodeId (); }
10180
11654
   private:
10181
11655
  typedef CT_ReintCast CCExprResolveExpr;
10182
11656
 
10183
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11657
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10184
11658
 public :
10185
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11659
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10186
11660
  typedef CT_ReintCast CExprResolveExpr;
10187
11661
 
10188
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11662
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10189
11663
 public :
10190
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10191
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11664
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11665
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10192
11666
};
10193
11667
 
 
11668
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
11669
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
10194
11670
 
10195
 
#line 10196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11671
#line 11672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10196
11672
} // closed Puma
 
11673
class CCExprResolve;
 
11674
class CExprResolve;
10197
11675
class WinIfExists;
10198
11676
class WinImportHandler;
10199
11677
class WinMacros;
10200
 
class CMatchSyntax;
10201
 
class ExtGnu;
 
11678
class WinAsm;
 
11679
class WinDeclSpecs;
 
11680
class WinMemberExplSpec;
 
11681
class WinTypeKeywords;
 
11682
class WinFriend;
10202
11683
class ExtAC;
10203
11684
class ExtACBuilderCoupling;
10204
11685
class ExtACSyntaxCoupling;
10205
11686
class ExtACTree;
10206
11687
class ExtACKeywords;
10207
 
class WinAsm;
10208
 
class WinDeclSpecs;
10209
 
class WinMemberExplSpec;
10210
 
class WinTypeKeywords;
 
11688
class ExtGnu;
10211
11689
class PragmaOnceUnitState;
10212
11690
class PragmaOnce;
10213
 
class CCExprResolve;
10214
 
class CExprResolve;
10215
 
namespace Puma {
10216
 
 
10217
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11691
class CMatchSyntax;
 
11692
namespace Puma {
 
11693
 
 
11694
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11695
 
 
11696
#line 11697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11697
} // closed Puma
 
11698
 
 
11699
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11700
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11701
#include "CCExprResolveH.ah"
 
11702
#endif
 
11703
namespace Puma {
 
11704
 
 
11705
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11706
 
 
11707
#line 11708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11708
} // closed Puma
 
11709
 
 
11710
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11711
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11712
#include "CExprResolveH.ah"
 
11713
#endif
 
11714
namespace Puma {
 
11715
 
 
11716
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10218
11717
class CT_DynamicCast : public CT_StaticCast {
10219
 
#line 10220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11718
#line 11719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11719
  friend class ::CCExprResolve;
 
11720
  friend class ::CExprResolve;
10220
11721
  friend class ::WinIfExists;
10221
11722
  friend class ::WinImportHandler;
10222
11723
  friend class ::WinMacros;
10223
 
  friend class ::CMatchSyntax;
10224
 
  friend class ::ExtGnu;
 
11724
  friend class ::WinAsm;
 
11725
  friend class ::WinDeclSpecs;
 
11726
  friend class ::WinMemberExplSpec;
 
11727
  friend class ::WinTypeKeywords;
 
11728
  friend class ::WinFriend;
10225
11729
  friend class ::ExtAC;
10226
11730
  friend class ::ExtACBuilderCoupling;
10227
11731
  friend class ::ExtACSyntaxCoupling;
10228
11732
  friend class ::ExtACTree;
10229
11733
  friend class ::ExtACKeywords;
10230
 
  friend class ::WinAsm;
10231
 
  friend class ::WinDeclSpecs;
10232
 
  friend class ::WinMemberExplSpec;
10233
 
  friend class ::WinTypeKeywords;
 
11734
  friend class ::ExtGnu;
10234
11735
  friend class ::PragmaOnceUnitState;
10235
11736
  friend class ::PragmaOnce;
10236
 
  friend class ::CCExprResolve;
10237
 
  friend class ::CExprResolve;
 
11737
  friend class ::CMatchSyntax;
10238
11738
 
10239
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11739
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10240
11740
 
10241
11741
public:
 
11742
  /** Constructor.
 
11743
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
11744
   *  \param o Left arrow bracket of the type name.
 
11745
   *  \param t The type to cast to.
 
11746
   *  \param c Right array bracket of the type name.
 
11747
   *  \param e The expression to cast. */
10242
11748
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
10243
11749
    CT_StaticCast (cst, o, t, c, e) {}
 
11750
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10244
11751
  static const char *NodeId ();
 
11752
  /** Get the name of the node. Can be compared with NodeId(). */
10245
11753
  const char *NodeName () const { return NodeId (); }
10246
11754
   private:
10247
11755
  typedef CT_DynamicCast CCExprResolveExpr;
10248
11756
 
10249
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11757
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10250
11758
 public :
10251
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11759
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10252
11760
  typedef CT_DynamicCast CExprResolveExpr;
10253
11761
 
10254
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11762
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10255
11763
 public :
10256
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10257
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11764
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11765
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10258
11766
};
10259
11767
 
 
11768
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
11769
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
11770
 *  where 1.2 is implicitely casted from float to int. */
10260
11771
 
10261
 
#line 10262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11772
#line 11773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10262
11773
} // closed Puma
 
11774
class CCExprResolve;
 
11775
class CExprResolve;
10263
11776
class WinIfExists;
10264
11777
class WinImportHandler;
10265
11778
class WinMacros;
10266
 
class CMatchSyntax;
10267
 
class ExtGnu;
 
11779
class WinAsm;
 
11780
class WinDeclSpecs;
 
11781
class WinMemberExplSpec;
 
11782
class WinTypeKeywords;
 
11783
class WinFriend;
10268
11784
class ExtAC;
10269
11785
class ExtACBuilderCoupling;
10270
11786
class ExtACSyntaxCoupling;
10271
11787
class ExtACTree;
10272
11788
class ExtACKeywords;
10273
 
class WinAsm;
10274
 
class WinDeclSpecs;
10275
 
class WinMemberExplSpec;
10276
 
class WinTypeKeywords;
 
11789
class ExtGnu;
10277
11790
class PragmaOnceUnitState;
10278
11791
class PragmaOnce;
10279
 
class CCExprResolve;
10280
 
class CExprResolve;
10281
 
namespace Puma {
10282
 
 
10283
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11792
class CMatchSyntax;
 
11793
namespace Puma {
 
11794
 
 
11795
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11796
 
 
11797
#line 11798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11798
} // closed Puma
 
11799
 
 
11800
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11801
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11802
#include "CCExprResolveH.ah"
 
11803
#endif
 
11804
namespace Puma {
 
11805
 
 
11806
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11807
 
 
11808
#line 11809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11809
} // closed Puma
 
11810
 
 
11811
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11812
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11813
#include "CExprResolveH.ah"
 
11814
#endif
 
11815
namespace Puma {
 
11816
 
 
11817
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10284
11818
class CT_ImplicitCast : public CT_Expression {
10285
 
#line 10286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11819
#line 11820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11820
  friend class ::CCExprResolve;
 
11821
  friend class ::CExprResolve;
10286
11822
  friend class ::WinIfExists;
10287
11823
  friend class ::WinImportHandler;
10288
11824
  friend class ::WinMacros;
10289
 
  friend class ::CMatchSyntax;
10290
 
  friend class ::ExtGnu;
 
11825
  friend class ::WinAsm;
 
11826
  friend class ::WinDeclSpecs;
 
11827
  friend class ::WinMemberExplSpec;
 
11828
  friend class ::WinTypeKeywords;
 
11829
  friend class ::WinFriend;
10291
11830
  friend class ::ExtAC;
10292
11831
  friend class ::ExtACBuilderCoupling;
10293
11832
  friend class ::ExtACSyntaxCoupling;
10294
11833
  friend class ::ExtACTree;
10295
11834
  friend class ::ExtACKeywords;
10296
 
  friend class ::WinAsm;
10297
 
  friend class ::WinDeclSpecs;
10298
 
  friend class ::WinMemberExplSpec;
10299
 
  friend class ::WinTypeKeywords;
 
11835
  friend class ::ExtGnu;
10300
11836
  friend class ::PragmaOnceUnitState;
10301
11837
  friend class ::PragmaOnce;
10302
 
  friend class ::CCExprResolve;
10303
 
  friend class ::CExprResolve;
 
11838
  friend class ::CMatchSyntax;
10304
11839
 
10305
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11840
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10306
11841
 
10307
11842
  CTree *_expr; // casted expression
10308
11843
 
10309
11844
public:
10310
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
11845
  /** Constructor.
 
11846
   *  \param e The expression that is implicitely casted. */
 
11847
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
11848
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10311
11849
  static const char *NodeId ();
 
11850
  /** Get the name of the node. Can be compared with NodeId(). */
10312
11851
  const char *NodeName () const { return NodeId (); }
 
11852
  /** Get the number of sons. */
10313
11853
  int Sons () const { return 1; }
 
11854
  /** Get the n-th son.
 
11855
   *  \param n The index of the son.
 
11856
   *  \return The n-th son or NULL. */
10314
11857
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
11858
  /** Get the casted expression. */
10315
11859
  CTree *Expr () const { return _expr; }
 
11860
  /** Replace a son.
 
11861
   *  \param old_son The son to replace.
 
11862
   *  \param new_son The new son. */
10316
11863
  void ReplaceSon (CTree *old_son, CTree *new_son) 
10317
 
   { if (old_son == _expr) _expr = new_son; }
 
11864
   { CTree::ReplaceSon (_expr, old_son, new_son); }
10318
11865
   private:
10319
11866
  typedef CT_ImplicitCast CCExprResolveExpr;
10320
11867
 
10321
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11868
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10322
11869
 public :
10323
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11870
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10324
11871
  typedef CT_ImplicitCast CExprResolveExpr;
10325
11872
 
10326
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11873
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10327
11874
 public :
10328
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10329
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11875
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11876
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10330
11877
};
10331
11878
 
 
11879
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
11880
 *  Tree node representing a typeid expression, e.g. typeid(X). */
10332
11881
 
10333
 
#line 10334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11882
#line 11883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10334
11883
} // closed Puma
 
11884
class CCExprResolve;
 
11885
class CExprResolve;
10335
11886
class WinIfExists;
10336
11887
class WinImportHandler;
10337
11888
class WinMacros;
10338
 
class CMatchSyntax;
10339
 
class ExtGnu;
 
11889
class WinAsm;
 
11890
class WinDeclSpecs;
 
11891
class WinMemberExplSpec;
 
11892
class WinTypeKeywords;
 
11893
class WinFriend;
10340
11894
class ExtAC;
10341
11895
class ExtACBuilderCoupling;
10342
11896
class ExtACSyntaxCoupling;
10343
11897
class ExtACTree;
10344
11898
class ExtACKeywords;
10345
 
class WinAsm;
10346
 
class WinDeclSpecs;
10347
 
class WinMemberExplSpec;
10348
 
class WinTypeKeywords;
 
11899
class ExtGnu;
10349
11900
class PragmaOnceUnitState;
10350
11901
class PragmaOnce;
10351
 
class CCExprResolve;
10352
 
class CExprResolve;
10353
 
namespace Puma {
10354
 
 
10355
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11902
class CMatchSyntax;
 
11903
namespace Puma {
 
11904
 
 
11905
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11906
 
 
11907
#line 11908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11908
} // closed Puma
 
11909
 
 
11910
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11911
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11912
#include "CCExprResolveH.ah"
 
11913
#endif
 
11914
namespace Puma {
 
11915
 
 
11916
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11917
 
 
11918
#line 11919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11919
} // closed Puma
 
11920
 
 
11921
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11922
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11923
#include "CExprResolveH.ah"
 
11924
#endif
 
11925
namespace Puma {
 
11926
 
 
11927
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10356
11928
class CT_TypeidExpr : public CT_Expression {
10357
 
#line 10358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
11929
#line 11930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
11930
  friend class ::CCExprResolve;
 
11931
  friend class ::CExprResolve;
10358
11932
  friend class ::WinIfExists;
10359
11933
  friend class ::WinImportHandler;
10360
11934
  friend class ::WinMacros;
10361
 
  friend class ::CMatchSyntax;
10362
 
  friend class ::ExtGnu;
 
11935
  friend class ::WinAsm;
 
11936
  friend class ::WinDeclSpecs;
 
11937
  friend class ::WinMemberExplSpec;
 
11938
  friend class ::WinTypeKeywords;
 
11939
  friend class ::WinFriend;
10363
11940
  friend class ::ExtAC;
10364
11941
  friend class ::ExtACBuilderCoupling;
10365
11942
  friend class ::ExtACSyntaxCoupling;
10366
11943
  friend class ::ExtACTree;
10367
11944
  friend class ::ExtACKeywords;
10368
 
  friend class ::WinAsm;
10369
 
  friend class ::WinDeclSpecs;
10370
 
  friend class ::WinMemberExplSpec;
10371
 
  friend class ::WinTypeKeywords;
 
11945
  friend class ::ExtGnu;
10372
11946
  friend class ::PragmaOnceUnitState;
10373
11947
  friend class ::PragmaOnce;
10374
 
  friend class ::CCExprResolve;
10375
 
  friend class ::CExprResolve;
 
11948
  friend class ::CMatchSyntax;
10376
11949
 
10377
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11950
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10378
11951
 
10379
11952
  CTree *sons[4]; // typeid, open, type_id/expr, close
10380
11953
 
10381
11954
public:
 
11955
  /** Constructor.
 
11956
   *  \param tid The 'typeid' operator.
 
11957
   *  \param o The left parenthesis of the type name or expression.
 
11958
   *  \param e The expression or type name for which to get the type identifier.
 
11959
   *  \param c The right parenthesis of the type name or expression. */
10382
11960
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
10383
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
11961
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
11962
    AddSon (sons[2], e); AddSon (sons[3], c);
10384
11963
  }
 
11964
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10385
11965
  static const char *NodeId ();
 
11966
  /** Get the name of the node. Can be compared with NodeId(). */
10386
11967
  const char *NodeName () const { return NodeId (); }
 
11968
  /** Get the number of sons. */
10387
11969
  int Sons () const { return 4; }
 
11970
  /** Get the n-th son.
 
11971
   *  \param n The index of the son.
 
11972
   *  \return The n-th son or NULL. */
10388
11973
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
11974
  /** Replace a son.
 
11975
   *  \param old_son The son to replace.
 
11976
   *  \param new_son The new son. */
10389
11977
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10390
11978
    CTree::ReplaceSon (sons, 4, old_son, new_son);
10391
11979
  }
 
11980
  /** Get the typeid argument, i.e. the expression or type name for
 
11981
   *  which to get the type identifier. */
10392
11982
  CTree *Arg () const { return sons[2]; }
10393
11983
   private:
10394
11984
  typedef CT_TypeidExpr CCExprResolveExpr;
10395
11985
 
10396
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11986
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10397
11987
 public :
10398
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11988
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10399
11989
  typedef CT_TypeidExpr CExprResolveExpr;
10400
11990
 
10401
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11991
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10402
11992
 public :
10403
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10404
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11993
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11994
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10405
11995
};
10406
11996
 
 
11997
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
11998
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
10407
11999
 
10408
 
#line 10409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12000
#line 12001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10409
12001
} // closed Puma
 
12002
class CCExprResolve;
 
12003
class CExprResolve;
10410
12004
class WinIfExists;
10411
12005
class WinImportHandler;
10412
12006
class WinMacros;
10413
 
class CMatchSyntax;
10414
 
class ExtGnu;
 
12007
class WinAsm;
 
12008
class WinDeclSpecs;
 
12009
class WinMemberExplSpec;
 
12010
class WinTypeKeywords;
 
12011
class WinFriend;
10415
12012
class ExtAC;
10416
12013
class ExtACBuilderCoupling;
10417
12014
class ExtACSyntaxCoupling;
10418
12015
class ExtACTree;
10419
12016
class ExtACKeywords;
10420
 
class WinAsm;
10421
 
class WinDeclSpecs;
10422
 
class WinMemberExplSpec;
10423
 
class WinTypeKeywords;
 
12017
class ExtGnu;
10424
12018
class PragmaOnceUnitState;
10425
12019
class PragmaOnce;
10426
 
class CCExprResolve;
10427
 
class CExprResolve;
10428
 
namespace Puma {
10429
 
 
10430
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12020
class CMatchSyntax;
 
12021
namespace Puma {
 
12022
 
 
12023
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12024
 
 
12025
#line 12026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12026
} // closed Puma
 
12027
 
 
12028
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12029
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12030
#include "CCExprResolveH.ah"
 
12031
#endif
 
12032
namespace Puma {
 
12033
 
 
12034
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12035
 
 
12036
#line 12037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12037
} // closed Puma
 
12038
 
 
12039
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12040
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12041
#include "CExprResolveH.ah"
 
12042
#endif
 
12043
namespace Puma {
 
12044
 
 
12045
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10431
12046
class CT_SizeofExpr : public CT_Expression {
10432
 
#line 10433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12047
#line 12048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12048
  friend class ::CCExprResolve;
 
12049
  friend class ::CExprResolve;
10433
12050
  friend class ::WinIfExists;
10434
12051
  friend class ::WinImportHandler;
10435
12052
  friend class ::WinMacros;
10436
 
  friend class ::CMatchSyntax;
10437
 
  friend class ::ExtGnu;
 
12053
  friend class ::WinAsm;
 
12054
  friend class ::WinDeclSpecs;
 
12055
  friend class ::WinMemberExplSpec;
 
12056
  friend class ::WinTypeKeywords;
 
12057
  friend class ::WinFriend;
10438
12058
  friend class ::ExtAC;
10439
12059
  friend class ::ExtACBuilderCoupling;
10440
12060
  friend class ::ExtACSyntaxCoupling;
10441
12061
  friend class ::ExtACTree;
10442
12062
  friend class ::ExtACKeywords;
10443
 
  friend class ::WinAsm;
10444
 
  friend class ::WinDeclSpecs;
10445
 
  friend class ::WinMemberExplSpec;
10446
 
  friend class ::WinTypeKeywords;
 
12063
  friend class ::ExtGnu;
10447
12064
  friend class ::PragmaOnceUnitState;
10448
12065
  friend class ::PragmaOnce;
10449
 
  friend class ::CCExprResolve;
10450
 
  friend class ::CExprResolve;
 
12066
  friend class ::CMatchSyntax;
10451
12067
 
10452
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12068
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10453
12069
 
10454
12070
  CTree *sons[5]; // key, open, type, close, expr
10455
12071
 
10456
12072
public:
 
12073
  /** Constructor.
 
12074
   *  \param k The 'sizeof' keyword.
 
12075
   *  \param o Left parenthesis around the type name.
 
12076
   *  \param t The type from which to get the size.
 
12077
   *  \param c Right parenthesis around the type name. */
10457
12078
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
10458
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
12079
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
12080
    AddSon (sons[3], c); AddSon (sons[4], 0);
10459
12081
  }
 
12082
  /** Constructor.
 
12083
   *  \param k The 'sizeof' keyword.
 
12084
   *  \param e The expression from which to get the size. */
10460
12085
  CT_SizeofExpr (CTree *k, CTree *e) {
10461
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
12086
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
12087
    AddSon (sons[3], 0); AddSon (sons[4], e);
10462
12088
  }
 
12089
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10463
12090
  static const char *NodeId ();
 
12091
  /** Get the name of the node. Can be compared with NodeId(). */
10464
12092
  const char *NodeName () const { return NodeId (); }
 
12093
  /** Get the number of sons. */
10465
12094
  int Sons () const { return CTree::Sons (sons, 5); }
 
12095
  /** Get the n-th son.
 
12096
   *  \param n The index of the son.
 
12097
   *  \return The n-th son or NULL. */
10466
12098
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
12099
  /** Replace a son.
 
12100
   *  \param old_son The son to replace.
 
12101
   *  \param new_son The new son. */
10467
12102
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10468
12103
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10469
12104
  }
 
12105
  /** Get the expression. */
10470
12106
  CTree *Expr () const { return sons[4]; }
 
12107
  /** Get the type name. */
10471
12108
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
10472
12109
   private:
10473
12110
  typedef CT_SizeofExpr CCExprResolveExpr;
10474
12111
 
10475
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12112
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10476
12113
 public :
10477
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12114
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10478
12115
  typedef CT_SizeofExpr CExprResolveExpr;
10479
12116
 
10480
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12117
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10481
12118
 public :
10482
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10483
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12119
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12120
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10484
12121
};
10485
12122
 
 
12123
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
12124
 *  Tree node representing an index designator, i.e. [1]. */
10486
12125
 
10487
 
#line 10488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12126
#line 12127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10488
12127
} // closed Puma
 
12128
class CCExprResolve;
 
12129
class CExprResolve;
10489
12130
class WinIfExists;
10490
12131
class WinImportHandler;
10491
12132
class WinMacros;
10492
 
class CMatchSyntax;
10493
 
class ExtGnu;
 
12133
class WinAsm;
 
12134
class WinDeclSpecs;
 
12135
class WinMemberExplSpec;
 
12136
class WinTypeKeywords;
 
12137
class WinFriend;
10494
12138
class ExtAC;
10495
12139
class ExtACBuilderCoupling;
10496
12140
class ExtACSyntaxCoupling;
10497
12141
class ExtACTree;
10498
12142
class ExtACKeywords;
10499
 
class WinAsm;
10500
 
class WinDeclSpecs;
10501
 
class WinMemberExplSpec;
10502
 
class WinTypeKeywords;
 
12143
class ExtGnu;
10503
12144
class PragmaOnceUnitState;
10504
12145
class PragmaOnce;
10505
 
class CCExprResolve;
10506
 
class CExprResolve;
10507
 
namespace Puma {
10508
 
 
10509
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12146
class CMatchSyntax;
 
12147
namespace Puma {
 
12148
 
 
12149
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12150
 
 
12151
#line 12152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12152
} // closed Puma
 
12153
 
 
12154
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12155
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12156
#include "CCExprResolveH.ah"
 
12157
#endif
 
12158
namespace Puma {
 
12159
 
 
12160
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12161
 
 
12162
#line 12163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12163
} // closed Puma
 
12164
 
 
12165
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12166
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12167
#include "CExprResolveH.ah"
 
12168
#endif
 
12169
namespace Puma {
 
12170
 
 
12171
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10510
12172
class CT_IndexDesignator : public CT_Expression {
10511
 
#line 10512 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12173
#line 12174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12174
  friend class ::CCExprResolve;
 
12175
  friend class ::CExprResolve;
10512
12176
  friend class ::WinIfExists;
10513
12177
  friend class ::WinImportHandler;
10514
12178
  friend class ::WinMacros;
10515
 
  friend class ::CMatchSyntax;
10516
 
  friend class ::ExtGnu;
 
12179
  friend class ::WinAsm;
 
12180
  friend class ::WinDeclSpecs;
 
12181
  friend class ::WinMemberExplSpec;
 
12182
  friend class ::WinTypeKeywords;
 
12183
  friend class ::WinFriend;
10517
12184
  friend class ::ExtAC;
10518
12185
  friend class ::ExtACBuilderCoupling;
10519
12186
  friend class ::ExtACSyntaxCoupling;
10520
12187
  friend class ::ExtACTree;
10521
12188
  friend class ::ExtACKeywords;
10522
 
  friend class ::WinAsm;
10523
 
  friend class ::WinDeclSpecs;
10524
 
  friend class ::WinMemberExplSpec;
10525
 
  friend class ::WinTypeKeywords;
 
12189
  friend class ::ExtGnu;
10526
12190
  friend class ::PragmaOnceUnitState;
10527
12191
  friend class ::PragmaOnce;
10528
 
  friend class ::CCExprResolve;
10529
 
  friend class ::CExprResolve;
 
12192
  friend class ::CMatchSyntax;
10530
12193
 
10531
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12194
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10532
12195
 
10533
12196
  CTree *sons[3]; // open, index, close
10534
12197
 
10535
12198
public:
 
12199
  /** Constructor.
 
12200
   *  \param o Left bracket of the index designator.
 
12201
   *  \param i The index expression.
 
12202
   *  \param c Right bracket of the index designator. */
10536
12203
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
10537
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
12204
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
10538
12205
  }
 
12206
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10539
12207
  static const char *NodeId ();
 
12208
  /** Get the name of the node. Can be compared with NodeId(). */
10540
12209
  const char *NodeName () const { return NodeId (); }
 
12210
  /** Get the number of sons. */
10541
12211
  int Sons () const { return 3; }
 
12212
  /** Get the n-th son.
 
12213
   *  \param n The index of the son.
 
12214
   *  \return The n-th son or NULL. */
10542
12215
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12216
  /** Replace a son.
 
12217
   *  \param old_son The son to replace.
 
12218
   *  \param new_son The new son. */
10543
12219
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10544
12220
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10545
12221
  }
10546
12222
   private:
10547
12223
  typedef CT_IndexDesignator CCExprResolveExpr;
10548
12224
 
10549
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12225
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10550
12226
 public :
10551
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12227
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10552
12228
  typedef CT_IndexDesignator CExprResolveExpr;
10553
12229
 
10554
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12230
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10555
12231
 public :
10556
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10557
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12232
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12233
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10558
12234
};
10559
12235
 
 
12236
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
12237
 *  Tree node representing a member designator, e.g. .a. */
10560
12238
 
10561
 
#line 10562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12239
#line 12240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10562
12240
} // closed Puma
 
12241
class CCExprResolve;
 
12242
class CExprResolve;
10563
12243
class WinIfExists;
10564
12244
class WinImportHandler;
10565
12245
class WinMacros;
10566
 
class CMatchSyntax;
10567
 
class ExtGnu;
 
12246
class WinAsm;
 
12247
class WinDeclSpecs;
 
12248
class WinMemberExplSpec;
 
12249
class WinTypeKeywords;
 
12250
class WinFriend;
10568
12251
class ExtAC;
10569
12252
class ExtACBuilderCoupling;
10570
12253
class ExtACSyntaxCoupling;
10571
12254
class ExtACTree;
10572
12255
class ExtACKeywords;
10573
 
class WinAsm;
10574
 
class WinDeclSpecs;
10575
 
class WinMemberExplSpec;
10576
 
class WinTypeKeywords;
 
12256
class ExtGnu;
10577
12257
class PragmaOnceUnitState;
10578
12258
class PragmaOnce;
10579
 
class CCExprResolve;
10580
 
class CExprResolve;
10581
 
namespace Puma {
10582
 
 
10583
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12259
class CMatchSyntax;
 
12260
namespace Puma {
 
12261
 
 
12262
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12263
 
 
12264
#line 12265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12265
} // closed Puma
 
12266
 
 
12267
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12268
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12269
#include "CCExprResolveH.ah"
 
12270
#endif
 
12271
namespace Puma {
 
12272
 
 
12273
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12274
 
 
12275
#line 12276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12276
} // closed Puma
 
12277
 
 
12278
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12279
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12280
#include "CExprResolveH.ah"
 
12281
#endif
 
12282
namespace Puma {
 
12283
 
 
12284
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10584
12285
class CT_MembDesignator : public CT_Expression {
10585
 
#line 10586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12286
#line 12287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12287
  friend class ::CCExprResolve;
 
12288
  friend class ::CExprResolve;
10586
12289
  friend class ::WinIfExists;
10587
12290
  friend class ::WinImportHandler;
10588
12291
  friend class ::WinMacros;
10589
 
  friend class ::CMatchSyntax;
10590
 
  friend class ::ExtGnu;
 
12292
  friend class ::WinAsm;
 
12293
  friend class ::WinDeclSpecs;
 
12294
  friend class ::WinMemberExplSpec;
 
12295
  friend class ::WinTypeKeywords;
 
12296
  friend class ::WinFriend;
10591
12297
  friend class ::ExtAC;
10592
12298
  friend class ::ExtACBuilderCoupling;
10593
12299
  friend class ::ExtACSyntaxCoupling;
10594
12300
  friend class ::ExtACTree;
10595
12301
  friend class ::ExtACKeywords;
10596
 
  friend class ::WinAsm;
10597
 
  friend class ::WinDeclSpecs;
10598
 
  friend class ::WinMemberExplSpec;
10599
 
  friend class ::WinTypeKeywords;
 
12302
  friend class ::ExtGnu;
10600
12303
  friend class ::PragmaOnceUnitState;
10601
12304
  friend class ::PragmaOnce;
10602
 
  friend class ::CCExprResolve;
10603
 
  friend class ::CExprResolve;
 
12305
  friend class ::CMatchSyntax;
10604
12306
 
10605
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12307
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10606
12308
 
10607
12309
  CTree *sons[2]; // dot, member
10608
12310
 
10609
12311
public:
10610
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
12312
  /** Constructor.
 
12313
   *  \param d The dot before the member name.
 
12314
   *  \param m The member name. */
 
12315
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
12316
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10611
12317
  static const char *NodeId ();
 
12318
  /** Get the name of the node. Can be compared with NodeId(). */
10612
12319
  const char *NodeName () const { return NodeId (); }
 
12320
  /** Get the number of sons. */
10613
12321
  int Sons () const { return 2; }
 
12322
  /** Get the n-th son.
 
12323
   *  \param n The index of the son.
 
12324
   *  \return The n-th son or NULL. */
10614
12325
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
12326
  /** Replace a son.
 
12327
   *  \param old_son The son to replace.
 
12328
   *  \param new_son The new son. */
10615
12329
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10616
12330
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10617
12331
  }
10618
12332
   private:
10619
12333
  typedef CT_MembDesignator CCExprResolveExpr;
10620
12334
 
10621
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12335
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10622
12336
 public :
10623
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12337
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10624
12338
  typedef CT_MembDesignator CExprResolveExpr;
10625
12339
 
10626
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12340
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10627
12341
 public :
10628
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10629
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12342
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12343
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10630
12344
};
10631
12345
 
 
12346
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
12347
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
10632
12348
 
10633
 
#line 10634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12349
#line 12350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10634
12350
} // closed Puma
 
12351
class CCExprResolve;
 
12352
class CExprResolve;
10635
12353
class WinIfExists;
10636
12354
class WinImportHandler;
10637
12355
class WinMacros;
10638
 
class CMatchSyntax;
10639
 
class ExtGnu;
 
12356
class WinAsm;
 
12357
class WinDeclSpecs;
 
12358
class WinMemberExplSpec;
 
12359
class WinTypeKeywords;
 
12360
class WinFriend;
10640
12361
class ExtAC;
10641
12362
class ExtACBuilderCoupling;
10642
12363
class ExtACSyntaxCoupling;
10643
12364
class ExtACTree;
10644
12365
class ExtACKeywords;
10645
 
class WinAsm;
10646
 
class WinDeclSpecs;
10647
 
class WinMemberExplSpec;
10648
 
class WinTypeKeywords;
 
12366
class ExtGnu;
10649
12367
class PragmaOnceUnitState;
10650
12368
class PragmaOnce;
10651
 
class CCExprResolve;
10652
 
class CExprResolve;
 
12369
class CMatchSyntax;
10653
12370
namespace Puma {
10654
12371
 
10655
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12372
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10656
12373
class CT_DesignatorSeq : public CT_List, public CSemValue {
10657
 
#line 10658 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12374
#line 12375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12375
  friend class ::CCExprResolve;
 
12376
  friend class ::CExprResolve;
10658
12377
  friend class ::WinIfExists;
10659
12378
  friend class ::WinImportHandler;
10660
12379
  friend class ::WinMacros;
10661
 
  friend class ::CMatchSyntax;
10662
 
  friend class ::ExtGnu;
 
12380
  friend class ::WinAsm;
 
12381
  friend class ::WinDeclSpecs;
 
12382
  friend class ::WinMemberExplSpec;
 
12383
  friend class ::WinTypeKeywords;
 
12384
  friend class ::WinFriend;
10663
12385
  friend class ::ExtAC;
10664
12386
  friend class ::ExtACBuilderCoupling;
10665
12387
  friend class ::ExtACSyntaxCoupling;
10666
12388
  friend class ::ExtACTree;
10667
12389
  friend class ::ExtACKeywords;
10668
 
  friend class ::WinAsm;
10669
 
  friend class ::WinDeclSpecs;
10670
 
  friend class ::WinMemberExplSpec;
10671
 
  friend class ::WinTypeKeywords;
 
12390
  friend class ::ExtGnu;
10672
12391
  friend class ::PragmaOnceUnitState;
10673
12392
  friend class ::PragmaOnce;
10674
 
  friend class ::CCExprResolve;
10675
 
  friend class ::CExprResolve;
 
12393
  friend class ::CMatchSyntax;
10676
12394
 
10677
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12395
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10678
12396
 
10679
12397
public:
 
12398
  /** Constructor.
 
12399
   *  \param size Initial number of designators. */
10680
12400
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
12401
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10681
12402
  static const char *NodeId ();
 
12403
  /** Get the name of the node. Can be compared with NodeId(). */
10682
12404
  const char *NodeName () const { return NodeId (); }
10683
12405
 
 
12406
  /** Get the type of the entity to initialize. */
10684
12407
  CTypeInfo *Type () const { return type; }
 
12408
  /** Get the value of the entity to initialize. */
10685
12409
  CExprValue *Value () const { return value; }
 
12410
  /** Get the semantic value object. */
10686
12411
  CSemValue *SemValue () const { return (CSemValue*)this; }
10687
12412
};
10688
12413
 
10692
12417
/*                                                                           */
10693
12418
/*****************************************************************************/
10694
12419
 
 
12420
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
12421
 *  Base class for all tree nodes representing declaration specifiers. */
10695
12422
 
10696
 
#line 10697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12423
#line 12424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10697
12424
} // closed Puma
 
12425
class CCExprResolve;
 
12426
class CExprResolve;
10698
12427
class WinIfExists;
10699
12428
class WinImportHandler;
10700
12429
class WinMacros;
10701
 
class CMatchSyntax;
10702
 
class ExtGnu;
 
12430
class WinAsm;
 
12431
class WinDeclSpecs;
 
12432
class WinMemberExplSpec;
 
12433
class WinTypeKeywords;
 
12434
class WinFriend;
10703
12435
class ExtAC;
10704
12436
class ExtACBuilderCoupling;
10705
12437
class ExtACSyntaxCoupling;
10706
12438
class ExtACTree;
10707
12439
class ExtACKeywords;
10708
 
class WinAsm;
10709
 
class WinDeclSpecs;
10710
 
class WinMemberExplSpec;
10711
 
class WinTypeKeywords;
 
12440
class ExtGnu;
10712
12441
class PragmaOnceUnitState;
10713
12442
class PragmaOnce;
10714
 
class CCExprResolve;
10715
 
class CExprResolve;
 
12443
class CMatchSyntax;
10716
12444
namespace Puma {
10717
12445
 
10718
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12446
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10719
12447
class CT_DeclSpec : public CTree {
10720
 
#line 10721 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12448
#line 12449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12449
  friend class ::CCExprResolve;
 
12450
  friend class ::CExprResolve;
10721
12451
  friend class ::WinIfExists;
10722
12452
  friend class ::WinImportHandler;
10723
12453
  friend class ::WinMacros;
10724
 
  friend class ::CMatchSyntax;
10725
 
  friend class ::ExtGnu;
 
12454
  friend class ::WinAsm;
 
12455
  friend class ::WinDeclSpecs;
 
12456
  friend class ::WinMemberExplSpec;
 
12457
  friend class ::WinTypeKeywords;
 
12458
  friend class ::WinFriend;
10726
12459
  friend class ::ExtAC;
10727
12460
  friend class ::ExtACBuilderCoupling;
10728
12461
  friend class ::ExtACSyntaxCoupling;
10729
12462
  friend class ::ExtACTree;
10730
12463
  friend class ::ExtACKeywords;
10731
 
  friend class ::WinAsm;
10732
 
  friend class ::WinDeclSpecs;
10733
 
  friend class ::WinMemberExplSpec;
10734
 
  friend class ::WinTypeKeywords;
 
12464
  friend class ::ExtGnu;
10735
12465
  friend class ::PragmaOnceUnitState;
10736
12466
  friend class ::PragmaOnce;
10737
 
  friend class ::CCExprResolve;
10738
 
  friend class ::CExprResolve;
 
12467
  friend class ::CMatchSyntax;
10739
12468
 
10740
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12469
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10741
12470
 
10742
12471
protected:
 
12472
  /** Constructor. */
10743
12473
  CT_DeclSpec () {}
10744
12474
};
10745
12475
 
 
12476
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
12477
 *  Tree node representing a primitive declaration specifier. */
10746
12478
 
10747
 
#line 10748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12479
#line 12480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10748
12480
} // closed Puma
 
12481
class CCExprResolve;
 
12482
class CExprResolve;
10749
12483
class WinIfExists;
10750
12484
class WinImportHandler;
10751
12485
class WinMacros;
10752
 
class CMatchSyntax;
10753
 
class ExtGnu;
 
12486
class WinAsm;
 
12487
class WinDeclSpecs;
 
12488
class WinMemberExplSpec;
 
12489
class WinTypeKeywords;
 
12490
class WinFriend;
10754
12491
class ExtAC;
10755
12492
class ExtACBuilderCoupling;
10756
12493
class ExtACSyntaxCoupling;
10757
12494
class ExtACTree;
10758
12495
class ExtACKeywords;
10759
 
class WinAsm;
10760
 
class WinDeclSpecs;
10761
 
class WinMemberExplSpec;
10762
 
class WinTypeKeywords;
 
12496
class ExtGnu;
10763
12497
class PragmaOnceUnitState;
10764
12498
class PragmaOnce;
10765
 
class CCExprResolve;
10766
 
class CExprResolve;
 
12499
class CMatchSyntax;
10767
12500
namespace Puma {
10768
12501
 
10769
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12502
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10770
12503
class CT_PrimDeclSpec : public CT_DeclSpec {
10771
 
#line 10772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12504
#line 12505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12505
  friend class ::CCExprResolve;
 
12506
  friend class ::CExprResolve;
10772
12507
  friend class ::WinIfExists;
10773
12508
  friend class ::WinImportHandler;
10774
12509
  friend class ::WinMacros;
10775
 
  friend class ::CMatchSyntax;
10776
 
  friend class ::ExtGnu;
 
12510
  friend class ::WinAsm;
 
12511
  friend class ::WinDeclSpecs;
 
12512
  friend class ::WinMemberExplSpec;
 
12513
  friend class ::WinTypeKeywords;
 
12514
  friend class ::WinFriend;
10777
12515
  friend class ::ExtAC;
10778
12516
  friend class ::ExtACBuilderCoupling;
10779
12517
  friend class ::ExtACSyntaxCoupling;
10780
12518
  friend class ::ExtACTree;
10781
12519
  friend class ::ExtACKeywords;
10782
 
  friend class ::WinAsm;
10783
 
  friend class ::WinDeclSpecs;
10784
 
  friend class ::WinMemberExplSpec;
10785
 
  friend class ::WinTypeKeywords;
 
12520
  friend class ::ExtGnu;
10786
12521
  friend class ::PragmaOnceUnitState;
10787
12522
  friend class ::PragmaOnce;
10788
 
  friend class ::CCExprResolve;
10789
 
  friend class ::CExprResolve;
 
12523
  friend class ::CMatchSyntax;
10790
12524
 
10791
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12525
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10792
12526
 
10793
12527
public:
10794
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
10795
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
10796
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
10797
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
10798
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
10799
 
              // AspectC++ specific type specifier
10800
 
              PDS_UNKNOWN_T,
10801
 
              // Win specific declaration specifiers
10802
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
10803
 
              PDS_UNKNOWN, PDS_NUM };
 
12528
  /** Declaration specifier types. */
 
12529
  enum Type { 
 
12530
    PDS_FRIEND,    /** friend */
 
12531
    PDS_TYPEDEF,   /** typedef */
 
12532
    PDS_AUTO,      /** auto */
 
12533
    PDS_REGISTER,  /** register */
 
12534
    PDS_STATIC,    /** static */
 
12535
    PDS_EXTERN,    /** extern */
 
12536
    PDS_MUTABLE,   /** mutable */
 
12537
    PDS_INLINE,    /** inline */
 
12538
    PDS_VIRTUAL,   /** virtual */
 
12539
    PDS_EXPLICIT,  /** explicit */
 
12540
    PDS_CONST,     /** const */
 
12541
    PDS_VOLATILE,  /** volatile */
 
12542
    PDS_RESTRICT,  /** restrict */
 
12543
    PDS_CHAR,      /** char */
 
12544
    PDS_WCHAR_T,   /** wchar_t */
 
12545
    PDS_BOOL,      /** bool */
 
12546
    PDS_SHORT,     /** short */
 
12547
    PDS_INT,       /** int */
 
12548
    PDS_LONG,      /** long */
 
12549
    PDS_SIGNED,    /** signed */
 
12550
    PDS_UNSIGNED,  /** unsigned */
 
12551
    PDS_FLOAT,     /** float */
 
12552
    PDS_DOUBLE,    /** double */
 
12553
    PDS_VOID,      /** void */
 
12554
    // AspectC++ specific type specifier
 
12555
    PDS_UNKNOWN_T, /** unknown_t */
 
12556
    // Win specific declaration specifiers
 
12557
    PDS_CDECL,     /** __cdecl */
 
12558
    PDS_STDCALL,   /** __stdcall */
 
12559
    PDS_FASTCALL,  /** __fastcall */
 
12560
    PDS_INT64,     /** __int64 */
 
12561
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
12562
    PDS_NUM        /** Number of declaration specifier types. */
 
12563
  };
10804
12564
 
10805
12565
private:
10806
12566
  Type _type;
10807
 
  CT_Token *_token;
 
12567
  CTree *_token; // has to be a CT_Token
10808
12568
 
10809
12569
  void determine_type ();
10810
12570
 
10811
12571
public:
10812
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
12572
  /** Constructor.
 
12573
   *  \param t The token containing the declaration specifier. */
 
12574
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
12575
  /** Constructor.
 
12576
   *  \param t The declaration specifier type. */
10813
12577
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
12578
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10814
12579
  static const char *NodeId ();
 
12580
  /** Get the name of the node. Can be compared with NodeId(). */
10815
12581
  const char *NodeName () const { return NodeId (); }
 
12582
  /** Get the number of sons. */
10816
12583
  int Sons () const { return _token ? 1 : 0; }
 
12584
  /** Get the n-th son.
 
12585
   *  \param n The index of the son.
 
12586
   *  \return The n-th son or NULL. */
10817
12587
  CTree *Son (int n) const 
10818
12588
   { return (n == 0) ? _token : (CTree*)0; }
 
12589
  /** Get the textual representation of the declaration specifier.
 
12590
   *  \return The string representation or " ". */
10819
12591
  const char *SpecText () const 
10820
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
12592
   { return _token ? _token->token ()->text () : " "; }
 
12593
  /** Get the declaration specifier type. */
10821
12594
  Type SpecType () const { return _type; }
 
12595
  /** Number of declaration specifier types. */
10822
12596
  static const int NumTypes = PDS_NUM;
 
12597
  /** Replace a son.
 
12598
   *  \param old_son The son to replace.
 
12599
   *  \param new_son The new son. */
 
12600
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12601
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
12602
    determine_type ();
 
12603
  }
10823
12604
};
10824
12605
 
 
12606
/** \class CT_NamedType CTree.h Puma/CTree.h
 
12607
 *  Tree node representing a named type, e.g. (int*)a. 
 
12608
 *  where int* is a type with a generated name. */
10825
12609
 
10826
 
#line 10827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12610
#line 12611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10827
12611
} // closed Puma
 
12612
class CCExprResolve;
 
12613
class CExprResolve;
10828
12614
class WinIfExists;
10829
12615
class WinImportHandler;
10830
12616
class WinMacros;
10831
 
class CMatchSyntax;
10832
 
class ExtGnu;
 
12617
class WinAsm;
 
12618
class WinDeclSpecs;
 
12619
class WinMemberExplSpec;
 
12620
class WinTypeKeywords;
 
12621
class WinFriend;
10833
12622
class ExtAC;
10834
12623
class ExtACBuilderCoupling;
10835
12624
class ExtACSyntaxCoupling;
10836
12625
class ExtACTree;
10837
12626
class ExtACKeywords;
10838
 
class WinAsm;
10839
 
class WinDeclSpecs;
10840
 
class WinMemberExplSpec;
10841
 
class WinTypeKeywords;
 
12627
class ExtGnu;
10842
12628
class PragmaOnceUnitState;
10843
12629
class PragmaOnce;
10844
 
class CCExprResolve;
10845
 
class CExprResolve;
 
12630
class CMatchSyntax;
10846
12631
namespace Puma {
10847
12632
 
10848
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12633
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10849
12634
class CT_NamedType : public CT_DeclSpec, public CSemObject {
10850
 
#line 10851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12635
#line 12636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12636
  friend class ::CCExprResolve;
 
12637
  friend class ::CExprResolve;
10851
12638
  friend class ::WinIfExists;
10852
12639
  friend class ::WinImportHandler;
10853
12640
  friend class ::WinMacros;
10854
 
  friend class ::CMatchSyntax;
10855
 
  friend class ::ExtGnu;
 
12641
  friend class ::WinAsm;
 
12642
  friend class ::WinDeclSpecs;
 
12643
  friend class ::WinMemberExplSpec;
 
12644
  friend class ::WinTypeKeywords;
 
12645
  friend class ::WinFriend;
10856
12646
  friend class ::ExtAC;
10857
12647
  friend class ::ExtACBuilderCoupling;
10858
12648
  friend class ::ExtACSyntaxCoupling;
10859
12649
  friend class ::ExtACTree;
10860
12650
  friend class ::ExtACKeywords;
10861
 
  friend class ::WinAsm;
10862
 
  friend class ::WinDeclSpecs;
10863
 
  friend class ::WinMemberExplSpec;
10864
 
  friend class ::WinTypeKeywords;
 
12651
  friend class ::ExtGnu;
10865
12652
  friend class ::PragmaOnceUnitState;
10866
12653
  friend class ::PragmaOnce;
10867
 
  friend class ::CCExprResolve;
10868
 
  friend class ::CExprResolve;
 
12654
  friend class ::CMatchSyntax;
10869
12655
 
10870
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12656
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10871
12657
 
10872
12658
  CTree *sons[2]; // declspecs, declarator
10873
12659
 
10874
12660
public:
10875
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
12661
  /** Constructor.
 
12662
   *  \param dss The declaration specifier sequence of the type.
 
12663
   *  \param d The type declarator. */
 
12664
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
12665
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10876
12666
  static const char *NodeId ();
 
12667
  /** Get the name of the node. Can be compared with NodeId(). */
10877
12668
  const char *NodeName () const { return NodeId (); }
 
12669
  /** Get the number of sons. */
10878
12670
  int Sons () const { return CTree::Sons (sons, 2); }
 
12671
  /** Get the n-th son.
 
12672
   *  \param n The index of the son.
 
12673
   *  \return The n-th son or NULL. */
10879
12674
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
12675
  /** Get the declarator. */
10880
12676
  CTree *Declarator () const { return sons[1]; }
 
12677
  /** Replace a son.
 
12678
   *  \param old_son The son to replace.
 
12679
   *  \param new_son The new son. */
10881
12680
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10882
12681
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10883
12682
  }
 
12683
  /** Get the semantic information object. */
10884
12684
  CSemObject *SemObject () const { return (CSemObject*)this; }
10885
12685
};
10886
12686
      
 
12687
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
12688
 *  Tree node representing a class specifier, e.g. class X. */
10887
12689
 
10888
 
#line 10889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12690
#line 12691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10889
12691
} // closed Puma
 
12692
class CCExprResolve;
 
12693
class CExprResolve;
10890
12694
class WinIfExists;
10891
12695
class WinImportHandler;
10892
12696
class WinMacros;
10893
 
class CMatchSyntax;
10894
 
class ExtGnu;
 
12697
class WinAsm;
 
12698
class WinDeclSpecs;
 
12699
class WinMemberExplSpec;
 
12700
class WinTypeKeywords;
 
12701
class WinFriend;
10895
12702
class ExtAC;
10896
12703
class ExtACBuilderCoupling;
10897
12704
class ExtACSyntaxCoupling;
10898
12705
class ExtACTree;
10899
12706
class ExtACKeywords;
10900
 
class WinAsm;
10901
 
class WinDeclSpecs;
10902
 
class WinMemberExplSpec;
10903
 
class WinTypeKeywords;
 
12707
class ExtGnu;
10904
12708
class PragmaOnceUnitState;
10905
12709
class PragmaOnce;
10906
 
class CCExprResolve;
10907
 
class CExprResolve;
 
12710
class CMatchSyntax;
10908
12711
namespace Puma {
10909
12712
 
10910
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12713
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10911
12714
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
10912
 
#line 10913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12715
#line 12716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12716
  friend class ::CCExprResolve;
 
12717
  friend class ::CExprResolve;
10913
12718
  friend class ::WinIfExists;
10914
12719
  friend class ::WinImportHandler;
10915
12720
  friend class ::WinMacros;
10916
 
  friend class ::CMatchSyntax;
10917
 
  friend class ::ExtGnu;
 
12721
  friend class ::WinAsm;
 
12722
  friend class ::WinDeclSpecs;
 
12723
  friend class ::WinMemberExplSpec;
 
12724
  friend class ::WinTypeKeywords;
 
12725
  friend class ::WinFriend;
10918
12726
  friend class ::ExtAC;
10919
12727
  friend class ::ExtACBuilderCoupling;
10920
12728
  friend class ::ExtACSyntaxCoupling;
10921
12729
  friend class ::ExtACTree;
10922
12730
  friend class ::ExtACKeywords;
10923
 
  friend class ::WinAsm;
10924
 
  friend class ::WinDeclSpecs;
10925
 
  friend class ::WinMemberExplSpec;
10926
 
  friend class ::WinTypeKeywords;
 
12731
  friend class ::ExtGnu;
10927
12732
  friend class ::PragmaOnceUnitState;
10928
12733
  friend class ::PragmaOnce;
10929
 
  friend class ::CCExprResolve;
10930
 
  friend class ::CExprResolve;
 
12734
  friend class ::CMatchSyntax;
10931
12735
 
10932
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12736
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10933
12737
 
10934
12738
  CTree *sons[2]; // key, name
10935
12739
  
10936
12740
public:
10937
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
12741
  /** Constructor.
 
12742
   *  \param k The 'class' or 'struct' keyword.
 
12743
   *  \param n The class name. */
 
12744
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
12745
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10938
12746
  static const char *NodeId ();
 
12747
  /** Get the name of the node. Can be compared with NodeId(). */
10939
12748
  const char *NodeName () const { return NodeId (); }
 
12749
  /** Get the number of sons. */
10940
12750
  int Sons () const { return 2; }
 
12751
  /** Get the n-th son.
 
12752
   *  \param n The index of the son.
 
12753
   *  \return The n-th son or NULL. */
10941
12754
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
12755
  /** Get the class name. */
10942
12756
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
12757
  /** Get the semantic information object. */
10943
12758
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12759
  /** Replace a son.
 
12760
   *  \param old_son The son to replace.
 
12761
   *  \param new_son The new son. */
10944
12762
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10945
12763
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10946
12764
  }
10947
12765
};
10948
12766
 
 
12767
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
12768
 *  Tree node representing a union specifier, e.g. union X. */
10949
12769
 
10950
 
#line 10951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12770
#line 12771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
10951
12771
} // closed Puma
 
12772
class CCExprResolve;
 
12773
class CExprResolve;
10952
12774
class WinIfExists;
10953
12775
class WinImportHandler;
10954
12776
class WinMacros;
10955
 
class CMatchSyntax;
10956
 
class ExtGnu;
 
12777
class WinAsm;
 
12778
class WinDeclSpecs;
 
12779
class WinMemberExplSpec;
 
12780
class WinTypeKeywords;
 
12781
class WinFriend;
10957
12782
class ExtAC;
10958
12783
class ExtACBuilderCoupling;
10959
12784
class ExtACSyntaxCoupling;
10960
12785
class ExtACTree;
10961
12786
class ExtACKeywords;
10962
 
class WinAsm;
10963
 
class WinDeclSpecs;
10964
 
class WinMemberExplSpec;
10965
 
class WinTypeKeywords;
 
12787
class ExtGnu;
10966
12788
class PragmaOnceUnitState;
10967
12789
class PragmaOnce;
10968
 
class CCExprResolve;
10969
 
class CExprResolve;
 
12790
class CMatchSyntax;
10970
12791
namespace Puma {
10971
12792
 
10972
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12793
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10973
12794
class CT_UnionSpec : public CT_ClassSpec {
10974
 
#line 10975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12795
#line 12796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12796
  friend class ::CCExprResolve;
 
12797
  friend class ::CExprResolve;
10975
12798
  friend class ::WinIfExists;
10976
12799
  friend class ::WinImportHandler;
10977
12800
  friend class ::WinMacros;
10978
 
  friend class ::CMatchSyntax;
10979
 
  friend class ::ExtGnu;
 
12801
  friend class ::WinAsm;
 
12802
  friend class ::WinDeclSpecs;
 
12803
  friend class ::WinMemberExplSpec;
 
12804
  friend class ::WinTypeKeywords;
 
12805
  friend class ::WinFriend;
10980
12806
  friend class ::ExtAC;
10981
12807
  friend class ::ExtACBuilderCoupling;
10982
12808
  friend class ::ExtACSyntaxCoupling;
10983
12809
  friend class ::ExtACTree;
10984
12810
  friend class ::ExtACKeywords;
10985
 
  friend class ::WinAsm;
10986
 
  friend class ::WinDeclSpecs;
10987
 
  friend class ::WinMemberExplSpec;
10988
 
  friend class ::WinTypeKeywords;
 
12811
  friend class ::ExtGnu;
10989
12812
  friend class ::PragmaOnceUnitState;
10990
12813
  friend class ::PragmaOnce;
10991
 
  friend class ::CCExprResolve;
10992
 
  friend class ::CExprResolve;
 
12814
  friend class ::CMatchSyntax;
10993
12815
 
10994
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12816
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10995
12817
 
10996
12818
public:
 
12819
  /** Constructor.
 
12820
   *  \param k The 'union' keyword.
 
12821
   *  \param n The name of the union. */
10997
12822
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
12823
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10998
12824
  static const char *NodeId ();
 
12825
  /** Get the name of the node. Can be compared with NodeId(). */
10999
12826
  const char *NodeName () const { return NodeId (); }
11000
12827
};
11001
12828
 
 
12829
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
12830
 *  Tree node representing an enumeration specifier, e.g. enum X. */
11002
12831
 
11003
 
#line 11004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12832
#line 12833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11004
12833
} // closed Puma
 
12834
class CCExprResolve;
 
12835
class CExprResolve;
11005
12836
class WinIfExists;
11006
12837
class WinImportHandler;
11007
12838
class WinMacros;
11008
 
class CMatchSyntax;
11009
 
class ExtGnu;
 
12839
class WinAsm;
 
12840
class WinDeclSpecs;
 
12841
class WinMemberExplSpec;
 
12842
class WinTypeKeywords;
 
12843
class WinFriend;
11010
12844
class ExtAC;
11011
12845
class ExtACBuilderCoupling;
11012
12846
class ExtACSyntaxCoupling;
11013
12847
class ExtACTree;
11014
12848
class ExtACKeywords;
11015
 
class WinAsm;
11016
 
class WinDeclSpecs;
11017
 
class WinMemberExplSpec;
11018
 
class WinTypeKeywords;
 
12849
class ExtGnu;
11019
12850
class PragmaOnceUnitState;
11020
12851
class PragmaOnce;
11021
 
class CCExprResolve;
11022
 
class CExprResolve;
 
12852
class CMatchSyntax;
11023
12853
namespace Puma {
11024
12854
 
11025
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12855
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11026
12856
class CT_EnumSpec : public CT_ClassSpec {
11027
 
#line 11028 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12857
#line 12858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12858
  friend class ::CCExprResolve;
 
12859
  friend class ::CExprResolve;
11028
12860
  friend class ::WinIfExists;
11029
12861
  friend class ::WinImportHandler;
11030
12862
  friend class ::WinMacros;
11031
 
  friend class ::CMatchSyntax;
11032
 
  friend class ::ExtGnu;
 
12863
  friend class ::WinAsm;
 
12864
  friend class ::WinDeclSpecs;
 
12865
  friend class ::WinMemberExplSpec;
 
12866
  friend class ::WinTypeKeywords;
 
12867
  friend class ::WinFriend;
11033
12868
  friend class ::ExtAC;
11034
12869
  friend class ::ExtACBuilderCoupling;
11035
12870
  friend class ::ExtACSyntaxCoupling;
11036
12871
  friend class ::ExtACTree;
11037
12872
  friend class ::ExtACKeywords;
11038
 
  friend class ::WinAsm;
11039
 
  friend class ::WinDeclSpecs;
11040
 
  friend class ::WinMemberExplSpec;
11041
 
  friend class ::WinTypeKeywords;
 
12873
  friend class ::ExtGnu;
11042
12874
  friend class ::PragmaOnceUnitState;
11043
12875
  friend class ::PragmaOnce;
11044
 
  friend class ::CCExprResolve;
11045
 
  friend class ::CExprResolve;
 
12876
  friend class ::CMatchSyntax;
11046
12877
 
11047
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12878
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11048
12879
 
11049
12880
public:
 
12881
  /** Constructor.
 
12882
   *  \param k The 'enum' keyword. 
 
12883
   *  \param n The name of the enumeration. */
11050
12884
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
12885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11051
12886
  static const char *NodeId ();
 
12887
  /** Get the name of the node. Can be compared with NodeId(). */
11052
12888
  const char *NodeName () const { return NodeId (); }
11053
12889
};
11054
12890
 
 
12891
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
12892
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
11055
12893
 
11056
 
#line 11057 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12894
#line 12895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11057
12895
} // closed Puma
 
12896
class CCExprResolve;
 
12897
class CExprResolve;
11058
12898
class WinIfExists;
11059
12899
class WinImportHandler;
11060
12900
class WinMacros;
11061
 
class CMatchSyntax;
11062
 
class ExtGnu;
 
12901
class WinAsm;
 
12902
class WinDeclSpecs;
 
12903
class WinMemberExplSpec;
 
12904
class WinTypeKeywords;
 
12905
class WinFriend;
11063
12906
class ExtAC;
11064
12907
class ExtACBuilderCoupling;
11065
12908
class ExtACSyntaxCoupling;
11066
12909
class ExtACTree;
11067
12910
class ExtACKeywords;
11068
 
class WinAsm;
11069
 
class WinDeclSpecs;
11070
 
class WinMemberExplSpec;
11071
 
class WinTypeKeywords;
 
12911
class ExtGnu;
11072
12912
class PragmaOnceUnitState;
11073
12913
class PragmaOnce;
11074
 
class CCExprResolve;
11075
 
class CExprResolve;
 
12914
class CMatchSyntax;
11076
12915
namespace Puma {
11077
12916
 
11078
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12917
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11079
12918
class CT_ExceptionSpec : public CT_DeclSpec {
11080
 
#line 11081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12919
#line 12920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
12920
  friend class ::CCExprResolve;
 
12921
  friend class ::CExprResolve;
11081
12922
  friend class ::WinIfExists;
11082
12923
  friend class ::WinImportHandler;
11083
12924
  friend class ::WinMacros;
11084
 
  friend class ::CMatchSyntax;
11085
 
  friend class ::ExtGnu;
 
12925
  friend class ::WinAsm;
 
12926
  friend class ::WinDeclSpecs;
 
12927
  friend class ::WinMemberExplSpec;
 
12928
  friend class ::WinTypeKeywords;
 
12929
  friend class ::WinFriend;
11086
12930
  friend class ::ExtAC;
11087
12931
  friend class ::ExtACBuilderCoupling;
11088
12932
  friend class ::ExtACSyntaxCoupling;
11089
12933
  friend class ::ExtACTree;
11090
12934
  friend class ::ExtACKeywords;
11091
 
  friend class ::WinAsm;
11092
 
  friend class ::WinDeclSpecs;
11093
 
  friend class ::WinMemberExplSpec;
11094
 
  friend class ::WinTypeKeywords;
 
12935
  friend class ::ExtGnu;
11095
12936
  friend class ::PragmaOnceUnitState;
11096
12937
  friend class ::PragmaOnce;
11097
 
  friend class ::CCExprResolve;
11098
 
  friend class ::CExprResolve;
 
12938
  friend class ::CMatchSyntax;
11099
12939
 
11100
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12940
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11101
12941
 
11102
12942
  CTree *sons[2]; // throw, type_id_list
11103
12943
  
11104
12944
public:
11105
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
12945
  /** Constructor.
 
12946
   *  \param k The 'throw' keyword.
 
12947
   *  \param l The type list for the exception type to throw. */
 
12948
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
12949
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11106
12950
  static const char *NodeId ();
 
12951
  /** Get the name of the node. Can be compared with NodeId(). */
11107
12952
  const char *NodeName () const { return NodeId (); }
 
12953
  /** Get the number of sons. */
11108
12954
  int Sons () const { return 2; }
 
12955
  /** Get the n-th son.
 
12956
   *  \param n The index of the son.
 
12957
   *  \return The n-th son or NULL. */
11109
12958
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
12959
  /** Get the exception type list. */
11110
12960
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
12961
  /** Replace a son.
 
12962
   *  \param old_son The son to replace.
 
12963
   *  \param new_son The new son. */
11111
12964
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11112
12965
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11113
12966
  }
11119
12972
/*                                                                           */
11120
12973
/*****************************************************************************/
11121
12974
 
 
12975
/** \class CT_Decl CTree.h Puma/CTree.h
 
12976
 *  Base class for all tree nodes representing declarations. */
11122
12977
 
11123
 
#line 11124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
12978
#line 12979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11124
12979
} // closed Puma
 
12980
class CCExprResolve;
 
12981
class CExprResolve;
11125
12982
class WinIfExists;
11126
12983
class WinImportHandler;
11127
12984
class WinMacros;
11128
 
class CMatchSyntax;
11129
 
class ExtGnu;
 
12985
class WinAsm;
 
12986
class WinDeclSpecs;
 
12987
class WinMemberExplSpec;
 
12988
class WinTypeKeywords;
 
12989
class WinFriend;
11130
12990
class ExtAC;
11131
12991
class ExtACBuilderCoupling;
11132
12992
class ExtACSyntaxCoupling;
11133
12993
class ExtACTree;
11134
12994
class ExtACKeywords;
11135
 
class WinAsm;
11136
 
class WinDeclSpecs;
11137
 
class WinMemberExplSpec;
11138
 
class WinTypeKeywords;
 
12995
class ExtGnu;
11139
12996
class PragmaOnceUnitState;
11140
12997
class PragmaOnce;
11141
 
class CCExprResolve;
11142
 
class CExprResolve;
 
12998
class CMatchSyntax;
11143
12999
namespace Puma {
11144
13000
 
11145
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13001
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11146
13002
class CT_Decl : public CTree {
11147
 
#line 11148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13003
#line 13004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13004
  friend class ::CCExprResolve;
 
13005
  friend class ::CExprResolve;
11148
13006
  friend class ::WinIfExists;
11149
13007
  friend class ::WinImportHandler;
11150
13008
  friend class ::WinMacros;
11151
 
  friend class ::CMatchSyntax;
11152
 
  friend class ::ExtGnu;
 
13009
  friend class ::WinAsm;
 
13010
  friend class ::WinDeclSpecs;
 
13011
  friend class ::WinMemberExplSpec;
 
13012
  friend class ::WinTypeKeywords;
 
13013
  friend class ::WinFriend;
11153
13014
  friend class ::ExtAC;
11154
13015
  friend class ::ExtACBuilderCoupling;
11155
13016
  friend class ::ExtACSyntaxCoupling;
11156
13017
  friend class ::ExtACTree;
11157
13018
  friend class ::ExtACKeywords;
11158
 
  friend class ::WinAsm;
11159
 
  friend class ::WinDeclSpecs;
11160
 
  friend class ::WinMemberExplSpec;
11161
 
  friend class ::WinTypeKeywords;
 
13019
  friend class ::ExtGnu;
11162
13020
  friend class ::PragmaOnceUnitState;
11163
13021
  friend class ::PragmaOnce;
11164
 
  friend class ::CCExprResolve;
11165
 
  friend class ::CExprResolve;
 
13022
  friend class ::CMatchSyntax;
11166
13023
 
11167
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13024
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11168
13025
 
11169
13026
  CT_LinkageSpec *_linkage;
 
13027
  
11170
13028
protected:
 
13029
  /** Constructor. */
11171
13030
  CT_Decl () : _linkage (0) {}
 
13031
  
11172
13032
public:
 
13033
  /** Set the linkage of the declared entity.
 
13034
   *  \param l The linkage specifiers. */
11173
13035
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
13036
  /** Get the linkage specifiers. */
11174
13037
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
13038
  /** Get this. */
 
13039
  virtual CT_Decl *IsDeclaration () { return this; }
11175
13040
};
11176
13041
 
 
13042
/** \class CT_Program CTree.h Puma/CTree.h
 
13043
 *  Root node of C/C++ syntax tree. */
11177
13044
 
11178
 
#line 11179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13045
#line 13046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11179
13046
} // closed Puma
 
13047
class CCExprResolve;
 
13048
class CExprResolve;
11180
13049
class WinIfExists;
11181
13050
class WinImportHandler;
11182
13051
class WinMacros;
11183
 
class CMatchSyntax;
11184
 
class ExtGnu;
 
13052
class WinAsm;
 
13053
class WinDeclSpecs;
 
13054
class WinMemberExplSpec;
 
13055
class WinTypeKeywords;
 
13056
class WinFriend;
11185
13057
class ExtAC;
11186
13058
class ExtACBuilderCoupling;
11187
13059
class ExtACSyntaxCoupling;
11188
13060
class ExtACTree;
11189
13061
class ExtACKeywords;
11190
 
class WinAsm;
11191
 
class WinDeclSpecs;
11192
 
class WinMemberExplSpec;
11193
 
class WinTypeKeywords;
 
13062
class ExtGnu;
11194
13063
class PragmaOnceUnitState;
11195
13064
class PragmaOnce;
11196
 
class CCExprResolve;
11197
 
class CExprResolve;
 
13065
class CMatchSyntax;
11198
13066
namespace Puma {
11199
13067
 
11200
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13068
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11201
13069
class CT_Program : public CT_DeclList, public CSemScope {
11202
 
#line 11203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13070
#line 13071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13071
  friend class ::CCExprResolve;
 
13072
  friend class ::CExprResolve;
11203
13073
  friend class ::WinIfExists;
11204
13074
  friend class ::WinImportHandler;
11205
13075
  friend class ::WinMacros;
11206
 
  friend class ::CMatchSyntax;
11207
 
  friend class ::ExtGnu;
 
13076
  friend class ::WinAsm;
 
13077
  friend class ::WinDeclSpecs;
 
13078
  friend class ::WinMemberExplSpec;
 
13079
  friend class ::WinTypeKeywords;
 
13080
  friend class ::WinFriend;
11208
13081
  friend class ::ExtAC;
11209
13082
  friend class ::ExtACBuilderCoupling;
11210
13083
  friend class ::ExtACSyntaxCoupling;
11211
13084
  friend class ::ExtACTree;
11212
13085
  friend class ::ExtACKeywords;
11213
 
  friend class ::WinAsm;
11214
 
  friend class ::WinDeclSpecs;
11215
 
  friend class ::WinMemberExplSpec;
11216
 
  friend class ::WinTypeKeywords;
 
13086
  friend class ::ExtGnu;
11217
13087
  friend class ::PragmaOnceUnitState;
11218
13088
  friend class ::PragmaOnce;
11219
 
  friend class ::CCExprResolve;
11220
 
  friend class ::CExprResolve;
 
13089
  friend class ::CMatchSyntax;
11221
13090
 
11222
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13091
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11223
13092
 
11224
13093
public:
 
13094
  /** Constructor.
 
13095
   *  \param size The initial number of declarations in the program.
 
13096
   *  \param incr The initial increment count. */
11225
13097
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
13098
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11226
13099
  static const char *NodeId ();
 
13100
  /** Get the name of the node. Can be compared with NodeId(). */
11227
13101
  const char *NodeName () const { return NodeId (); }
 
13102
  /** Get the semantic scope object. */
 
13103
  CSemScope *SemScope () const { return (CSemScope*)this; }
11228
13104
};
11229
13105
   
 
13106
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
13107
 *  Tree node representing an object declaration, e.g. int *i. */
11230
13108
 
11231
 
#line 11232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13109
#line 13110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11232
13110
} // closed Puma
 
13111
class CCExprResolve;
 
13112
class CExprResolve;
11233
13113
class WinIfExists;
11234
13114
class WinImportHandler;
11235
13115
class WinMacros;
11236
 
class CMatchSyntax;
11237
 
class ExtGnu;
 
13116
class WinAsm;
 
13117
class WinDeclSpecs;
 
13118
class WinMemberExplSpec;
 
13119
class WinTypeKeywords;
 
13120
class WinFriend;
11238
13121
class ExtAC;
11239
13122
class ExtACBuilderCoupling;
11240
13123
class ExtACSyntaxCoupling;
11241
13124
class ExtACTree;
11242
13125
class ExtACKeywords;
11243
 
class WinAsm;
11244
 
class WinDeclSpecs;
11245
 
class WinMemberExplSpec;
11246
 
class WinTypeKeywords;
 
13126
class ExtGnu;
11247
13127
class PragmaOnceUnitState;
11248
13128
class PragmaOnce;
11249
 
class CCExprResolve;
11250
 
class CExprResolve;
 
13129
class CMatchSyntax;
11251
13130
namespace Puma {
11252
13131
 
11253
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13132
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11254
13133
class CT_ObjDecl : public CT_Decl {
11255
 
#line 11256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13134
#line 13135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13135
  friend class ::CCExprResolve;
 
13136
  friend class ::CExprResolve;
11256
13137
  friend class ::WinIfExists;
11257
13138
  friend class ::WinImportHandler;
11258
13139
  friend class ::WinMacros;
11259
 
  friend class ::CMatchSyntax;
11260
 
  friend class ::ExtGnu;
 
13140
  friend class ::WinAsm;
 
13141
  friend class ::WinDeclSpecs;
 
13142
  friend class ::WinMemberExplSpec;
 
13143
  friend class ::WinTypeKeywords;
 
13144
  friend class ::WinFriend;
11261
13145
  friend class ::ExtAC;
11262
13146
  friend class ::ExtACBuilderCoupling;
11263
13147
  friend class ::ExtACSyntaxCoupling;
11264
13148
  friend class ::ExtACTree;
11265
13149
  friend class ::ExtACKeywords;
11266
 
  friend class ::WinAsm;
11267
 
  friend class ::WinDeclSpecs;
11268
 
  friend class ::WinMemberExplSpec;
11269
 
  friend class ::WinTypeKeywords;
 
13150
  friend class ::ExtGnu;
11270
13151
  friend class ::PragmaOnceUnitState;
11271
13152
  friend class ::PragmaOnce;
11272
 
  friend class ::CCExprResolve;
11273
 
  friend class ::CExprResolve;
 
13153
  friend class ::CMatchSyntax;
11274
13154
 
11275
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13155
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11276
13156
 
11277
13157
  CTree *sons[3]; // declspecs, declarators, colon
11278
13158
 
11279
13159
public:
 
13160
  /** Constructor.
 
13161
   *  \param dsl The declaration specifier sequence.
 
13162
   *  \param dl The declarator list.
 
13163
   *  \param c Optional colon. */
11280
13164
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
11281
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
13165
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
11282
13166
  }
 
13167
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11283
13168
  static const char *NodeId ();
 
13169
  /** Get the name of the node. Can be compared with NodeId(). */
11284
13170
  const char *NodeName () const { return NodeId (); }
 
13171
  /** Get the number of sons. */
11285
13172
  int Sons () const { return 3; }
 
13173
  /** Get the n-th son.
 
13174
   *  \param n The index of the son.
 
13175
   *  \return The n-th son or NULL. */
11286
13176
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13177
  /** Get the declaration specifier sequence. */
11287
13178
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
13179
  /** Get the declarator list. */
11288
13180
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
13181
  /** Replace a son.
 
13182
   *  \param old_son The son to replace.
 
13183
   *  \param new_son The new son. */
11289
13184
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11290
13185
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11291
13186
  }
11292
13187
};
11293
13188
 
 
13189
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
13190
 *  Tree node representing a template declaration. */
11294
13191
 
11295
 
#line 11296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13192
#line 13193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11296
13193
} // closed Puma
 
13194
class CCExprResolve;
 
13195
class CExprResolve;
11297
13196
class WinIfExists;
11298
13197
class WinImportHandler;
11299
13198
class WinMacros;
11300
 
class CMatchSyntax;
11301
 
class ExtGnu;
 
13199
class WinAsm;
 
13200
class WinDeclSpecs;
 
13201
class WinMemberExplSpec;
 
13202
class WinTypeKeywords;
 
13203
class WinFriend;
11302
13204
class ExtAC;
11303
13205
class ExtACBuilderCoupling;
11304
13206
class ExtACSyntaxCoupling;
11305
13207
class ExtACTree;
11306
13208
class ExtACKeywords;
11307
 
class WinAsm;
11308
 
class WinDeclSpecs;
11309
 
class WinMemberExplSpec;
11310
 
class WinTypeKeywords;
 
13209
class ExtGnu;
11311
13210
class PragmaOnceUnitState;
11312
13211
class PragmaOnce;
11313
 
class CCExprResolve;
11314
 
class CExprResolve;
 
13212
class CMatchSyntax;
11315
13213
namespace Puma {
11316
13214
 
11317
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13215
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11318
13216
class CT_TemplateDecl : public CT_Decl, public CSemScope {
11319
 
#line 11320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13217
#line 13218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13218
  friend class ::CCExprResolve;
 
13219
  friend class ::CExprResolve;
11320
13220
  friend class ::WinIfExists;
11321
13221
  friend class ::WinImportHandler;
11322
13222
  friend class ::WinMacros;
11323
 
  friend class ::CMatchSyntax;
11324
 
  friend class ::ExtGnu;
 
13223
  friend class ::WinAsm;
 
13224
  friend class ::WinDeclSpecs;
 
13225
  friend class ::WinMemberExplSpec;
 
13226
  friend class ::WinTypeKeywords;
 
13227
  friend class ::WinFriend;
11325
13228
  friend class ::ExtAC;
11326
13229
  friend class ::ExtACBuilderCoupling;
11327
13230
  friend class ::ExtACSyntaxCoupling;
11328
13231
  friend class ::ExtACTree;
11329
13232
  friend class ::ExtACKeywords;
11330
 
  friend class ::WinAsm;
11331
 
  friend class ::WinDeclSpecs;
11332
 
  friend class ::WinMemberExplSpec;
11333
 
  friend class ::WinTypeKeywords;
 
13233
  friend class ::ExtGnu;
11334
13234
  friend class ::PragmaOnceUnitState;
11335
13235
  friend class ::PragmaOnce;
11336
 
  friend class ::CCExprResolve;
11337
 
  friend class ::CExprResolve;
 
13236
  friend class ::CMatchSyntax;
11338
13237
 
11339
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13238
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11340
13239
 
11341
13240
  CTree *sons[3]; // export, param_list, decl
11342
13241
 
11343
13242
public:
 
13243
  /** Constructor.
 
13244
   *  \param e Optional 'export' keyword. 
 
13245
   *  \param p The template parameter list.
 
13246
   *  \param d The class or function declaration. */
11344
13247
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
11345
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
13248
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
11346
13249
  }
 
13250
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11347
13251
  static const char *NodeId ();
 
13252
  /** Get the name of the node. Can be compared with NodeId(). */
11348
13253
  const char *NodeName () const { return NodeId (); }
 
13254
  /** Get the number of sons. */
11349
13255
  int Sons () const { return CTree::Sons (sons, 3); }
 
13256
  /** Get the n-th son.
 
13257
   *  \param n The index of the son.
 
13258
   *  \return The n-th son or NULL. */
11350
13259
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13260
  /** Replace a son.
 
13261
   *  \param old_son The son to replace.
 
13262
   *  \param new_son The new son. */
11351
13263
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11352
13264
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
11353
13265
  }
 
13266
  /** Get the 'export' keyword. */
11354
13267
  CTree *Export () const { return sons[0]; }
 
13268
  /** Get the template parameter list. */
11355
13269
  CT_TemplateParamList *Parameters () const { 
11356
13270
    return (CT_TemplateParamList*)sons[1]; 
11357
13271
  }
 
13272
  /** Get the class or function declaration. */
11358
13273
  CTree *Declaration () const { return sons[2]; }
 
13274
  /** Get the semantic scope object. */
 
13275
  CSemScope *SemScope () const { return (CSemScope*)this; }
11359
13276
};
11360
13277
 
 
13278
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
13279
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
11361
13280
 
11362
 
#line 11363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13281
#line 13282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11363
13282
} // closed Puma
 
13283
class CCExprResolve;
 
13284
class CExprResolve;
11364
13285
class WinIfExists;
11365
13286
class WinImportHandler;
11366
13287
class WinMacros;
11367
 
class CMatchSyntax;
11368
 
class ExtGnu;
 
13288
class WinAsm;
 
13289
class WinDeclSpecs;
 
13290
class WinMemberExplSpec;
 
13291
class WinTypeKeywords;
 
13292
class WinFriend;
11369
13293
class ExtAC;
11370
13294
class ExtACBuilderCoupling;
11371
13295
class ExtACSyntaxCoupling;
11372
13296
class ExtACTree;
11373
13297
class ExtACKeywords;
11374
 
class WinAsm;
11375
 
class WinDeclSpecs;
11376
 
class WinMemberExplSpec;
11377
 
class WinTypeKeywords;
 
13298
class ExtGnu;
11378
13299
class PragmaOnceUnitState;
11379
13300
class PragmaOnce;
11380
 
class CCExprResolve;
11381
 
class CExprResolve;
 
13301
class CMatchSyntax;
11382
13302
namespace Puma {
11383
13303
 
11384
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13304
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11385
13305
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
11386
 
#line 11387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13306
#line 13307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13307
  friend class ::CCExprResolve;
 
13308
  friend class ::CExprResolve;
11387
13309
  friend class ::WinIfExists;
11388
13310
  friend class ::WinImportHandler;
11389
13311
  friend class ::WinMacros;
11390
 
  friend class ::CMatchSyntax;
11391
 
  friend class ::ExtGnu;
 
13312
  friend class ::WinAsm;
 
13313
  friend class ::WinDeclSpecs;
 
13314
  friend class ::WinMemberExplSpec;
 
13315
  friend class ::WinTypeKeywords;
 
13316
  friend class ::WinFriend;
11392
13317
  friend class ::ExtAC;
11393
13318
  friend class ::ExtACBuilderCoupling;
11394
13319
  friend class ::ExtACSyntaxCoupling;
11395
13320
  friend class ::ExtACTree;
11396
13321
  friend class ::ExtACKeywords;
11397
 
  friend class ::WinAsm;
11398
 
  friend class ::WinDeclSpecs;
11399
 
  friend class ::WinMemberExplSpec;
11400
 
  friend class ::WinTypeKeywords;
 
13322
  friend class ::ExtGnu;
11401
13323
  friend class ::PragmaOnceUnitState;
11402
13324
  friend class ::PragmaOnce;
11403
 
  friend class ::CCExprResolve;
11404
 
  friend class ::CExprResolve;
 
13325
  friend class ::CMatchSyntax;
11405
13326
 
11406
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13327
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11407
13328
 
11408
13329
protected:
 
13330
  /** Constructor. */
11409
13331
  CT_TemplateParamDecl () {}
11410
13332
  
11411
13333
public:
 
13334
  /** Get the template default argument. */
11412
13335
  virtual CT_ExprList *DefaultArgument () const = 0;
 
13336
  /** Get the semantic information object. */
11413
13337
  CSemObject *SemObject () const { return (CSemObject*)this; }
11414
13338
};
11415
13339
 
11416
13340
 
11417
 
#line 11418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13341
#line 13342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11418
13342
} // closed Puma
 
13343
class CCExprResolve;
 
13344
class CExprResolve;
11419
13345
class WinIfExists;
11420
13346
class WinImportHandler;
11421
13347
class WinMacros;
11422
 
class CMatchSyntax;
11423
 
class ExtGnu;
 
13348
class WinAsm;
 
13349
class WinDeclSpecs;
 
13350
class WinMemberExplSpec;
 
13351
class WinTypeKeywords;
 
13352
class WinFriend;
11424
13353
class ExtAC;
11425
13354
class ExtACBuilderCoupling;
11426
13355
class ExtACSyntaxCoupling;
11427
13356
class ExtACTree;
11428
13357
class ExtACKeywords;
11429
 
class WinAsm;
11430
 
class WinDeclSpecs;
11431
 
class WinMemberExplSpec;
11432
 
class WinTypeKeywords;
 
13358
class ExtGnu;
11433
13359
class PragmaOnceUnitState;
11434
13360
class PragmaOnce;
11435
 
class CCExprResolve;
11436
 
class CExprResolve;
 
13361
class CMatchSyntax;
11437
13362
namespace Puma {
11438
13363
 
11439
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13364
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11440
13365
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
11441
 
#line 11442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13366
#line 13367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13367
  friend class ::CCExprResolve;
 
13368
  friend class ::CExprResolve;
11442
13369
  friend class ::WinIfExists;
11443
13370
  friend class ::WinImportHandler;
11444
13371
  friend class ::WinMacros;
11445
 
  friend class ::CMatchSyntax;
11446
 
  friend class ::ExtGnu;
 
13372
  friend class ::WinAsm;
 
13373
  friend class ::WinDeclSpecs;
 
13374
  friend class ::WinMemberExplSpec;
 
13375
  friend class ::WinTypeKeywords;
 
13376
  friend class ::WinFriend;
11447
13377
  friend class ::ExtAC;
11448
13378
  friend class ::ExtACBuilderCoupling;
11449
13379
  friend class ::ExtACSyntaxCoupling;
11450
13380
  friend class ::ExtACTree;
11451
13381
  friend class ::ExtACKeywords;
11452
 
  friend class ::WinAsm;
11453
 
  friend class ::WinDeclSpecs;
11454
 
  friend class ::WinMemberExplSpec;
11455
 
  friend class ::WinTypeKeywords;
 
13382
  friend class ::ExtGnu;
11456
13383
  friend class ::PragmaOnceUnitState;
11457
13384
  friend class ::PragmaOnce;
11458
 
  friend class ::CCExprResolve;
11459
 
  friend class ::CExprResolve;
 
13385
  friend class ::CMatchSyntax;
11460
13386
 
11461
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13387
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11462
13388
 
11463
13389
  CTree *sons[3]; // declspecs, declarator, init
11464
13390
 
11465
13391
public:
11466
13392
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
11467
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
13393
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
11468
13394
  }
 
13395
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11469
13396
  static const char *NodeId ();
 
13397
  /** Get the name of the node. Can be compared with NodeId(). */
11470
13398
  const char *NodeName () const { return NodeId (); }
 
13399
  /** Get the number of sons. */
11471
13400
  int Sons () const { return CTree::Sons (sons, 3); }
 
13401
  /** Get the n-th son.
 
13402
   *  \param n The index of the son.
 
13403
   *  \return The n-th son or NULL. */
11472
13404
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11473
13405
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
11474
13406
  CTree *Declarator () const { return sons[1]; }
11475
13407
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
11476
13408
  CSemObject *SemObject () const { return (CSemObject*)this; }
11477
 
  void Initializer (CTree *i) { sons[2] = i; }
 
13409
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
13410
  /** Replace a son.
 
13411
   *  \param old_son The son to replace.
 
13412
   *  \param new_son The new son. */
11478
13413
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11479
13414
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11480
13415
  }
11481
13416
};
11482
13417
 
11483
13418
 
11484
 
#line 11485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13419
#line 13420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11485
13420
} // closed Puma
 
13421
class CCExprResolve;
 
13422
class CExprResolve;
11486
13423
class WinIfExists;
11487
13424
class WinImportHandler;
11488
13425
class WinMacros;
11489
 
class CMatchSyntax;
11490
 
class ExtGnu;
 
13426
class WinAsm;
 
13427
class WinDeclSpecs;
 
13428
class WinMemberExplSpec;
 
13429
class WinTypeKeywords;
 
13430
class WinFriend;
11491
13431
class ExtAC;
11492
13432
class ExtACBuilderCoupling;
11493
13433
class ExtACSyntaxCoupling;
11494
13434
class ExtACTree;
11495
13435
class ExtACKeywords;
11496
 
class WinAsm;
11497
 
class WinDeclSpecs;
11498
 
class WinMemberExplSpec;
11499
 
class WinTypeKeywords;
 
13436
class ExtGnu;
11500
13437
class PragmaOnceUnitState;
11501
13438
class PragmaOnce;
11502
 
class CCExprResolve;
11503
 
class CExprResolve;
 
13439
class CMatchSyntax;
11504
13440
namespace Puma {
11505
13441
 
11506
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13442
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11507
13443
class CT_TypeParamDecl : public CT_TemplateParamDecl {
11508
 
#line 11509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13444
#line 13445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13445
  friend class ::CCExprResolve;
 
13446
  friend class ::CExprResolve;
11509
13447
  friend class ::WinIfExists;
11510
13448
  friend class ::WinImportHandler;
11511
13449
  friend class ::WinMacros;
11512
 
  friend class ::CMatchSyntax;
11513
 
  friend class ::ExtGnu;
 
13450
  friend class ::WinAsm;
 
13451
  friend class ::WinDeclSpecs;
 
13452
  friend class ::WinMemberExplSpec;
 
13453
  friend class ::WinTypeKeywords;
 
13454
  friend class ::WinFriend;
11514
13455
  friend class ::ExtAC;
11515
13456
  friend class ::ExtACBuilderCoupling;
11516
13457
  friend class ::ExtACSyntaxCoupling;
11517
13458
  friend class ::ExtACTree;
11518
13459
  friend class ::ExtACKeywords;
11519
 
  friend class ::WinAsm;
11520
 
  friend class ::WinDeclSpecs;
11521
 
  friend class ::WinMemberExplSpec;
11522
 
  friend class ::WinTypeKeywords;
 
13460
  friend class ::ExtGnu;
11523
13461
  friend class ::PragmaOnceUnitState;
11524
13462
  friend class ::PragmaOnce;
11525
 
  friend class ::CCExprResolve;
11526
 
  friend class ::CExprResolve;
 
13463
  friend class ::CMatchSyntax;
11527
13464
 
11528
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13465
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11529
13466
 
11530
13467
  CTree *sons[4]; // params, key, id, init
11531
13468
 
11532
13469
public:
11533
13470
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
11534
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
13471
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
13472
    AddSon (sons[2], id); AddSon (sons[3], i);
11535
13473
  }
 
13474
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11536
13475
  static const char *NodeId ();
 
13476
  /** Get the name of the node. Can be compared with NodeId(). */
11537
13477
  const char *NodeName () const { return NodeId (); }
 
13478
  /** Get the number of sons. */
11538
13479
  int Sons () const { return CTree::Sons (sons, 4); }
 
13480
  /** Get the n-th son.
 
13481
   *  \param n The index of the son.
 
13482
   *  \return The n-th son or NULL. */
11539
13483
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11540
13484
  CT_TemplateParamList *Parameters () const { 
11541
13485
    return (CT_TemplateParamList*)sons[0]; 
11542
13486
  }
11543
13487
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
11544
13488
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
11545
 
  void Initializer (CTree *i) { sons[3] = i; }
 
13489
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
13490
  /** Replace a son.
 
13491
   *  \param old_son The son to replace.
 
13492
   *  \param new_son The new son. */
11546
13493
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11547
13494
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11548
13495
  }
11549
13496
};
11550
13497
 
11551
13498
 
11552
 
#line 11553 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13499
#line 13500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11553
13500
} // closed Puma
 
13501
class CCExprResolve;
 
13502
class CExprResolve;
11554
13503
class WinIfExists;
11555
13504
class WinImportHandler;
11556
13505
class WinMacros;
11557
 
class CMatchSyntax;
11558
 
class ExtGnu;
 
13506
class WinAsm;
 
13507
class WinDeclSpecs;
 
13508
class WinMemberExplSpec;
 
13509
class WinTypeKeywords;
 
13510
class WinFriend;
11559
13511
class ExtAC;
11560
13512
class ExtACBuilderCoupling;
11561
13513
class ExtACSyntaxCoupling;
11562
13514
class ExtACTree;
11563
13515
class ExtACKeywords;
11564
 
class WinAsm;
11565
 
class WinDeclSpecs;
11566
 
class WinMemberExplSpec;
11567
 
class WinTypeKeywords;
 
13516
class ExtGnu;
11568
13517
class PragmaOnceUnitState;
11569
13518
class PragmaOnce;
11570
 
class CCExprResolve;
11571
 
class CExprResolve;
 
13519
class CMatchSyntax;
11572
13520
namespace Puma {
11573
13521
 
11574
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13522
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11575
13523
class CT_EnumDef : public CT_Decl, public CSemObject {
11576
 
#line 11577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13524
#line 13525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13525
  friend class ::CCExprResolve;
 
13526
  friend class ::CExprResolve;
11577
13527
  friend class ::WinIfExists;
11578
13528
  friend class ::WinImportHandler;
11579
13529
  friend class ::WinMacros;
11580
 
  friend class ::CMatchSyntax;
11581
 
  friend class ::ExtGnu;
 
13530
  friend class ::WinAsm;
 
13531
  friend class ::WinDeclSpecs;
 
13532
  friend class ::WinMemberExplSpec;
 
13533
  friend class ::WinTypeKeywords;
 
13534
  friend class ::WinFriend;
11582
13535
  friend class ::ExtAC;
11583
13536
  friend class ::ExtACBuilderCoupling;
11584
13537
  friend class ::ExtACSyntaxCoupling;
11585
13538
  friend class ::ExtACTree;
11586
13539
  friend class ::ExtACKeywords;
11587
 
  friend class ::WinAsm;
11588
 
  friend class ::WinDeclSpecs;
11589
 
  friend class ::WinMemberExplSpec;
11590
 
  friend class ::WinTypeKeywords;
 
13540
  friend class ::ExtGnu;
11591
13541
  friend class ::PragmaOnceUnitState;
11592
13542
  friend class ::PragmaOnce;
11593
 
  friend class ::CCExprResolve;
11594
 
  friend class ::CExprResolve;
 
13543
  friend class ::CMatchSyntax;
11595
13544
 
11596
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13545
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11597
13546
 
11598
13547
  CTree *sons[3]; // key, name, enumerators
11599
13548
 
11600
13549
public:
11601
13550
  CT_EnumDef (CTree *k, CTree *n) {
11602
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
13551
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
11603
13552
  }
 
13553
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11604
13554
  static const char *NodeId ();
 
13555
  /** Get the name of the node. Can be compared with NodeId(). */
11605
13556
  const char *NodeName () const { return NodeId (); }
 
13557
  /** Get the number of sons. */
11606
13558
  int Sons () const { return CTree::Sons (sons, 3); }
 
13559
  /** Get the n-th son.
 
13560
   *  \param n The index of the son.
 
13561
   *  \return The n-th son or NULL. */
11607
13562
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11608
13563
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
11609
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
13564
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
11610
13565
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
13566
  /** Replace a son.
 
13567
   *  \param old_son The son to replace.
 
13568
   *  \param new_son The new son. */
11611
13569
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11612
13570
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11613
13571
  }
11615
13573
};
11616
13574
 
11617
13575
 
11618
 
#line 11619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13576
#line 13577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11619
13577
} // closed Puma
 
13578
class CCExprResolve;
 
13579
class CExprResolve;
11620
13580
class WinIfExists;
11621
13581
class WinImportHandler;
11622
13582
class WinMacros;
11623
 
class CMatchSyntax;
11624
 
class ExtGnu;
 
13583
class WinAsm;
 
13584
class WinDeclSpecs;
 
13585
class WinMemberExplSpec;
 
13586
class WinTypeKeywords;
 
13587
class WinFriend;
11625
13588
class ExtAC;
11626
13589
class ExtACBuilderCoupling;
11627
13590
class ExtACSyntaxCoupling;
11628
13591
class ExtACTree;
11629
13592
class ExtACKeywords;
11630
 
class WinAsm;
11631
 
class WinDeclSpecs;
11632
 
class WinMemberExplSpec;
11633
 
class WinTypeKeywords;
 
13593
class ExtGnu;
11634
13594
class PragmaOnceUnitState;
11635
13595
class PragmaOnce;
11636
 
class CCExprResolve;
11637
 
class CExprResolve;
 
13596
class CMatchSyntax;
11638
13597
namespace Puma {
11639
13598
 
11640
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13599
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11641
13600
class CT_Enumerator : public CT_Decl, public CSemObject {
11642
 
#line 11643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13601
#line 13602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13602
  friend class ::CCExprResolve;
 
13603
  friend class ::CExprResolve;
11643
13604
  friend class ::WinIfExists;
11644
13605
  friend class ::WinImportHandler;
11645
13606
  friend class ::WinMacros;
11646
 
  friend class ::CMatchSyntax;
11647
 
  friend class ::ExtGnu;
 
13607
  friend class ::WinAsm;
 
13608
  friend class ::WinDeclSpecs;
 
13609
  friend class ::WinMemberExplSpec;
 
13610
  friend class ::WinTypeKeywords;
 
13611
  friend class ::WinFriend;
11648
13612
  friend class ::ExtAC;
11649
13613
  friend class ::ExtACBuilderCoupling;
11650
13614
  friend class ::ExtACSyntaxCoupling;
11651
13615
  friend class ::ExtACTree;
11652
13616
  friend class ::ExtACKeywords;
11653
 
  friend class ::WinAsm;
11654
 
  friend class ::WinDeclSpecs;
11655
 
  friend class ::WinMemberExplSpec;
11656
 
  friend class ::WinTypeKeywords;
 
13617
  friend class ::ExtGnu;
11657
13618
  friend class ::PragmaOnceUnitState;
11658
13619
  friend class ::PragmaOnce;
11659
 
  friend class ::CCExprResolve;
11660
 
  friend class ::CExprResolve;
 
13620
  friend class ::CMatchSyntax;
11661
13621
 
11662
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13622
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11663
13623
 
11664
13624
  CTree *sons[2]; // name, init
11665
13625
 
11666
13626
public:
11667
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
13627
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
13628
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11668
13629
  static const char *NodeId ();
 
13630
  /** Get the name of the node. Can be compared with NodeId(). */
11669
13631
  const char *NodeName () const { return NodeId (); }
 
13632
  /** Get the number of sons. */
11670
13633
  int Sons () const { return CTree::Sons (sons, 2); }
 
13634
  /** Get the n-th son.
 
13635
   *  \param n The index of the son.
 
13636
   *  \return The n-th son or NULL. */
11671
13637
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
11672
13638
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
11673
 
  void Initializer (CTree *i) { sons[1] = i; }
 
13639
  void Initializer (CTree *i) { AddSon (sons[1], i); }
11674
13640
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
13641
  /** Replace a son.
 
13642
   *  \param old_son The son to replace.
 
13643
   *  \param new_son The new son. */
11675
13644
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11676
13645
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
11677
13646
  }
11679
13648
};
11680
13649
 
11681
13650
 
11682
 
#line 11683 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13651
#line 13652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11683
13652
} // closed Puma
 
13653
class CCExprResolve;
 
13654
class CExprResolve;
11684
13655
class WinIfExists;
11685
13656
class WinImportHandler;
11686
13657
class WinMacros;
11687
 
class CMatchSyntax;
11688
 
class ExtGnu;
 
13658
class WinAsm;
 
13659
class WinDeclSpecs;
 
13660
class WinMemberExplSpec;
 
13661
class WinTypeKeywords;
 
13662
class WinFriend;
11689
13663
class ExtAC;
11690
13664
class ExtACBuilderCoupling;
11691
13665
class ExtACSyntaxCoupling;
11692
13666
class ExtACTree;
11693
13667
class ExtACKeywords;
11694
 
class WinAsm;
11695
 
class WinDeclSpecs;
11696
 
class WinMemberExplSpec;
11697
 
class WinTypeKeywords;
 
13668
class ExtGnu;
11698
13669
class PragmaOnceUnitState;
11699
13670
class PragmaOnce;
11700
 
class CCExprResolve;
11701
 
class CExprResolve;
 
13671
class CMatchSyntax;
11702
13672
namespace Puma {
11703
13673
 
11704
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13674
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11705
13675
class CT_FctDef : public CT_Decl, public CSemObject {
11706
 
#line 11707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13676
#line 13677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13677
  friend class ::CCExprResolve;
 
13678
  friend class ::CExprResolve;
11707
13679
  friend class ::WinIfExists;
11708
13680
  friend class ::WinImportHandler;
11709
13681
  friend class ::WinMacros;
11710
 
  friend class ::CMatchSyntax;
11711
 
  friend class ::ExtGnu;
 
13682
  friend class ::WinAsm;
 
13683
  friend class ::WinDeclSpecs;
 
13684
  friend class ::WinMemberExplSpec;
 
13685
  friend class ::WinTypeKeywords;
 
13686
  friend class ::WinFriend;
11712
13687
  friend class ::ExtAC;
11713
13688
  friend class ::ExtACBuilderCoupling;
11714
13689
  friend class ::ExtACSyntaxCoupling;
11715
13690
  friend class ::ExtACTree;
11716
13691
  friend class ::ExtACKeywords;
11717
 
  friend class ::WinAsm;
11718
 
  friend class ::WinDeclSpecs;
11719
 
  friend class ::WinMemberExplSpec;
11720
 
  friend class ::WinTypeKeywords;
 
13692
  friend class ::ExtGnu;
11721
13693
  friend class ::PragmaOnceUnitState;
11722
13694
  friend class ::PragmaOnce;
11723
 
  friend class ::CCExprResolve;
11724
 
  friend class ::CExprResolve;
 
13695
  friend class ::CMatchSyntax;
11725
13696
 
11726
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13697
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11727
13698
 
11728
13699
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
11729
13700
 
11730
13701
public:
11731
13702
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
11732
13703
             CTree *b, CTree *hs) {
11733
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
11734
 
    sons[5] = b; sons[6] = hs; 
 
13704
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
13705
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
13706
    AddSon (sons[6], hs); 
11735
13707
  }
 
13708
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11736
13709
  static const char *NodeId ();
 
13710
  /** Get the name of the node. Can be compared with NodeId(). */
11737
13711
  const char *NodeName () const { return NodeId (); }
 
13712
  /** Get the number of sons. */
11738
13713
  int Sons () const { return CTree::Sons (sons, 7); }
 
13714
  /** Get the n-th son.
 
13715
   *  \param n The index of the son.
 
13716
   *  \return The n-th son or NULL. */
11739
13717
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
11740
13718
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
11741
13719
  CTree *Declarator () const { return sons[1]; }
11745
13723
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
11746
13724
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
11747
13725
  CSemObject *SemObject () const { return (CSemObject*)this; }
11748
 
  void CtorInit (CTree *i) { sons[3] = i; }
11749
 
  void Body (CTree *b) { sons[5] = b; }
 
13726
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
13727
  void Body (CTree *b) { AddSon (sons[5], b); }
11750
13728
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
11751
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
13729
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
13730
    AddSon (sons[5], b); AddSon (sons[6], h);
11752
13731
  }
 
13732
  /** Replace a son.
 
13733
   *  \param old_son The son to replace.
 
13734
   *  \param new_son The new son. */
11753
13735
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11754
13736
    CTree::ReplaceSon (sons, 7, old_son, new_son);
11755
13737
  }
11756
13738
};
11757
13739
 
11758
13740
 
11759
 
#line 11760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13741
#line 13742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11760
13742
} // closed Puma
 
13743
class CCExprResolve;
 
13744
class CExprResolve;
11761
13745
class WinIfExists;
11762
13746
class WinImportHandler;
11763
13747
class WinMacros;
11764
 
class CMatchSyntax;
11765
 
class ExtGnu;
 
13748
class WinAsm;
 
13749
class WinDeclSpecs;
 
13750
class WinMemberExplSpec;
 
13751
class WinTypeKeywords;
 
13752
class WinFriend;
11766
13753
class ExtAC;
11767
13754
class ExtACBuilderCoupling;
11768
13755
class ExtACSyntaxCoupling;
11769
13756
class ExtACTree;
11770
13757
class ExtACKeywords;
11771
 
class WinAsm;
11772
 
class WinDeclSpecs;
11773
 
class WinMemberExplSpec;
11774
 
class WinTypeKeywords;
 
13758
class ExtGnu;
11775
13759
class PragmaOnceUnitState;
11776
13760
class PragmaOnce;
11777
 
class CCExprResolve;
11778
 
class CExprResolve;
 
13761
class CMatchSyntax;
11779
13762
namespace Puma {
11780
13763
 
11781
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13764
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11782
13765
class CT_AsmDef : public CT_Decl {
11783
 
#line 11784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13766
#line 13767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13767
  friend class ::CCExprResolve;
 
13768
  friend class ::CExprResolve;
11784
13769
  friend class ::WinIfExists;
11785
13770
  friend class ::WinImportHandler;
11786
13771
  friend class ::WinMacros;
11787
 
  friend class ::CMatchSyntax;
11788
 
  friend class ::ExtGnu;
 
13772
  friend class ::WinAsm;
 
13773
  friend class ::WinDeclSpecs;
 
13774
  friend class ::WinMemberExplSpec;
 
13775
  friend class ::WinTypeKeywords;
 
13776
  friend class ::WinFriend;
11789
13777
  friend class ::ExtAC;
11790
13778
  friend class ::ExtACBuilderCoupling;
11791
13779
  friend class ::ExtACSyntaxCoupling;
11792
13780
  friend class ::ExtACTree;
11793
13781
  friend class ::ExtACKeywords;
11794
 
  friend class ::WinAsm;
11795
 
  friend class ::WinDeclSpecs;
11796
 
  friend class ::WinMemberExplSpec;
11797
 
  friend class ::WinTypeKeywords;
 
13782
  friend class ::ExtGnu;
11798
13783
  friend class ::PragmaOnceUnitState;
11799
13784
  friend class ::PragmaOnce;
11800
 
  friend class ::CCExprResolve;
11801
 
  friend class ::CExprResolve;
 
13785
  friend class ::CMatchSyntax;
11802
13786
 
11803
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13787
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11804
13788
 
11805
13789
  CTree *sons[5]; // asm, open, str, close, semi_colon
11806
13790
 
11807
13791
public:
11808
13792
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
11809
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
13793
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
13794
    AddSon (sons[3], c); AddSon (sons[4], sc); 
11810
13795
  }
 
13796
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11811
13797
  static const char *NodeId ();
 
13798
  /** Get the name of the node. Can be compared with NodeId(). */
11812
13799
  const char *NodeName () const { return NodeId (); }
 
13800
  /** Get the number of sons. */
11813
13801
  int Sons () const { return 5; }
 
13802
  /** Get the n-th son.
 
13803
   *  \param n The index of the son.
 
13804
   *  \return The n-th son or NULL. */
11814
13805
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
11815
13806
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
13807
  /** Replace a son.
 
13808
   *  \param old_son The son to replace.
 
13809
   *  \param new_son The new son. */
11816
13810
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11817
13811
    CTree::ReplaceSon (sons, 5, old_son, new_son);
11818
13812
  }
11819
13813
};
11820
13814
 
11821
13815
 
11822
 
#line 11823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13816
#line 13817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11823
13817
} // closed Puma
 
13818
class CCExprResolve;
 
13819
class CExprResolve;
11824
13820
class WinIfExists;
11825
13821
class WinImportHandler;
11826
13822
class WinMacros;
11827
 
class CMatchSyntax;
11828
 
class ExtGnu;
 
13823
class WinAsm;
 
13824
class WinDeclSpecs;
 
13825
class WinMemberExplSpec;
 
13826
class WinTypeKeywords;
 
13827
class WinFriend;
11829
13828
class ExtAC;
11830
13829
class ExtACBuilderCoupling;
11831
13830
class ExtACSyntaxCoupling;
11832
13831
class ExtACTree;
11833
13832
class ExtACKeywords;
11834
 
class WinAsm;
11835
 
class WinDeclSpecs;
11836
 
class WinMemberExplSpec;
11837
 
class WinTypeKeywords;
 
13833
class ExtGnu;
11838
13834
class PragmaOnceUnitState;
11839
13835
class PragmaOnce;
11840
 
class CCExprResolve;
11841
 
class CExprResolve;
 
13836
class CMatchSyntax;
11842
13837
namespace Puma {
11843
13838
 
11844
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13839
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11845
13840
class CT_Handler : public CT_Decl, public CSemScope {
11846
 
#line 11847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13841
#line 13842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13842
  friend class ::CCExprResolve;
 
13843
  friend class ::CExprResolve;
11847
13844
  friend class ::WinIfExists;
11848
13845
  friend class ::WinImportHandler;
11849
13846
  friend class ::WinMacros;
11850
 
  friend class ::CMatchSyntax;
11851
 
  friend class ::ExtGnu;
 
13847
  friend class ::WinAsm;
 
13848
  friend class ::WinDeclSpecs;
 
13849
  friend class ::WinMemberExplSpec;
 
13850
  friend class ::WinTypeKeywords;
 
13851
  friend class ::WinFriend;
11852
13852
  friend class ::ExtAC;
11853
13853
  friend class ::ExtACBuilderCoupling;
11854
13854
  friend class ::ExtACSyntaxCoupling;
11855
13855
  friend class ::ExtACTree;
11856
13856
  friend class ::ExtACKeywords;
11857
 
  friend class ::WinAsm;
11858
 
  friend class ::WinDeclSpecs;
11859
 
  friend class ::WinMemberExplSpec;
11860
 
  friend class ::WinTypeKeywords;
 
13857
  friend class ::ExtGnu;
11861
13858
  friend class ::PragmaOnceUnitState;
11862
13859
  friend class ::PragmaOnce;
11863
 
  friend class ::CCExprResolve;
11864
 
  friend class ::CExprResolve;
 
13860
  friend class ::CMatchSyntax;
11865
13861
 
11866
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13862
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11867
13863
 
11868
13864
  CTree *sons[3]; // catch, exception_decl, stmt
11869
13865
 
11870
13866
public:
11871
13867
  CT_Handler (CTree *c, CTree *e, CTree *s) {
11872
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
13868
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
11873
13869
  }
 
13870
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11874
13871
  static const char *NodeId ();
 
13872
  /** Get the name of the node. Can be compared with NodeId(). */
11875
13873
  const char *NodeName () const { return NodeId (); }
 
13874
  /** Get the number of sons. */
11876
13875
  int Sons () const { return 3; }
 
13876
  /** Get the n-th son.
 
13877
   *  \param n The index of the son.
 
13878
   *  \return The n-th son or NULL. */
11877
13879
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11878
13880
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
11879
13881
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
13882
  /** Replace a son.
 
13883
   *  \param old_son The son to replace.
 
13884
   *  \param new_son The new son. */
11880
13885
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11881
13886
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11882
13887
  }
 
13888
  CSemScope *SemScope () const { return (CSemScope*)this; }
11883
13889
};
11884
13890
 
11885
13891
 
11886
 
#line 11887 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13892
#line 13893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11887
13893
} // closed Puma
 
13894
class CCExprResolve;
 
13895
class CExprResolve;
11888
13896
class WinIfExists;
11889
13897
class WinImportHandler;
11890
13898
class WinMacros;
11891
 
class CMatchSyntax;
11892
 
class ExtGnu;
 
13899
class WinAsm;
 
13900
class WinDeclSpecs;
 
13901
class WinMemberExplSpec;
 
13902
class WinTypeKeywords;
 
13903
class WinFriend;
11893
13904
class ExtAC;
11894
13905
class ExtACBuilderCoupling;
11895
13906
class ExtACSyntaxCoupling;
11896
13907
class ExtACTree;
11897
13908
class ExtACKeywords;
11898
 
class WinAsm;
11899
 
class WinDeclSpecs;
11900
 
class WinMemberExplSpec;
11901
 
class WinTypeKeywords;
 
13909
class ExtGnu;
11902
13910
class PragmaOnceUnitState;
11903
13911
class PragmaOnce;
11904
 
class CCExprResolve;
11905
 
class CExprResolve;
 
13912
class CMatchSyntax;
11906
13913
namespace Puma {
11907
13914
 
11908
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13915
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11909
13916
class CT_LinkageSpec : public CT_Decl {
11910
 
#line 11911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13917
#line 13918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
13918
  friend class ::CCExprResolve;
 
13919
  friend class ::CExprResolve;
11911
13920
  friend class ::WinIfExists;
11912
13921
  friend class ::WinImportHandler;
11913
13922
  friend class ::WinMacros;
11914
 
  friend class ::CMatchSyntax;
11915
 
  friend class ::ExtGnu;
 
13923
  friend class ::WinAsm;
 
13924
  friend class ::WinDeclSpecs;
 
13925
  friend class ::WinMemberExplSpec;
 
13926
  friend class ::WinTypeKeywords;
 
13927
  friend class ::WinFriend;
11916
13928
  friend class ::ExtAC;
11917
13929
  friend class ::ExtACBuilderCoupling;
11918
13930
  friend class ::ExtACSyntaxCoupling;
11919
13931
  friend class ::ExtACTree;
11920
13932
  friend class ::ExtACKeywords;
11921
 
  friend class ::WinAsm;
11922
 
  friend class ::WinDeclSpecs;
11923
 
  friend class ::WinMemberExplSpec;
11924
 
  friend class ::WinTypeKeywords;
 
13933
  friend class ::ExtGnu;
11925
13934
  friend class ::PragmaOnceUnitState;
11926
13935
  friend class ::PragmaOnce;
11927
 
  friend class ::CCExprResolve;
11928
 
  friend class ::CExprResolve;
 
13936
  friend class ::CMatchSyntax;
11929
13937
 
11930
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13938
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11931
13939
 
11932
13940
  CTree *sons[5]; // extern, str, open, decls, close
11933
13941
 
11934
13942
public:
11935
13943
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
11936
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
13944
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
13945
    AddSon (sons[3], d); AddSon (sons[4], c);
11937
13946
    if (isList ())
11938
13947
      ((CT_DeclList*)Decls ())->Linkage (this);
11939
13948
    else
11940
13949
      ((CT_Decl*)Decls ())->Linkage (this);
11941
13950
  }
 
13951
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11942
13952
  static const char *NodeId ();
 
13953
  /** Get the name of the node. Can be compared with NodeId(). */
11943
13954
  const char *NodeName () const { return NodeId (); }
 
13955
  /** Get the number of sons. */
11944
13956
  int Sons () const { return CTree::Sons (sons, 5); }
 
13957
  /** Get the n-th son.
 
13958
   *  \param n The index of the son.
 
13959
   *  \return The n-th son or NULL. */
11945
13960
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
11946
13961
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
11947
13962
  CTree *Decls () const { return sons[3]; }
11948
13963
  bool isList () const {
11949
13964
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
11950
13965
  }
 
13966
  /** Replace a son.
 
13967
   *  \param old_son The son to replace.
 
13968
   *  \param new_son The new son. */
11951
13969
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11952
13970
    CTree::ReplaceSon (sons, 5, old_son, new_son);
11953
13971
  }
11954
13972
};
11955
13973
 
11956
13974
 
11957
 
#line 11958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
13975
#line 13976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
11958
13976
} // closed Puma
 
13977
class CCExprResolve;
 
13978
class CExprResolve;
11959
13979
class WinIfExists;
11960
13980
class WinImportHandler;
11961
13981
class WinMacros;
11962
 
class CMatchSyntax;
11963
 
class ExtGnu;
 
13982
class WinAsm;
 
13983
class WinDeclSpecs;
 
13984
class WinMemberExplSpec;
 
13985
class WinTypeKeywords;
 
13986
class WinFriend;
11964
13987
class ExtAC;
11965
13988
class ExtACBuilderCoupling;
11966
13989
class ExtACSyntaxCoupling;
11967
13990
class ExtACTree;
11968
13991
class ExtACKeywords;
11969
 
class WinAsm;
11970
 
class WinDeclSpecs;
11971
 
class WinMemberExplSpec;
11972
 
class WinTypeKeywords;
 
13992
class ExtGnu;
11973
13993
class PragmaOnceUnitState;
11974
13994
class PragmaOnce;
11975
 
class CCExprResolve;
11976
 
class CExprResolve;
 
13995
class CMatchSyntax;
11977
13996
namespace Puma {
11978
13997
 
11979
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13998
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11980
13999
class CT_ArgDecl : public CT_Decl, public CSemObject {
11981
 
#line 11982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14000
#line 14001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14001
  friend class ::CCExprResolve;
 
14002
  friend class ::CExprResolve;
11982
14003
  friend class ::WinIfExists;
11983
14004
  friend class ::WinImportHandler;
11984
14005
  friend class ::WinMacros;
11985
 
  friend class ::CMatchSyntax;
11986
 
  friend class ::ExtGnu;
 
14006
  friend class ::WinAsm;
 
14007
  friend class ::WinDeclSpecs;
 
14008
  friend class ::WinMemberExplSpec;
 
14009
  friend class ::WinTypeKeywords;
 
14010
  friend class ::WinFriend;
11987
14011
  friend class ::ExtAC;
11988
14012
  friend class ::ExtACBuilderCoupling;
11989
14013
  friend class ::ExtACSyntaxCoupling;
11990
14014
  friend class ::ExtACTree;
11991
14015
  friend class ::ExtACKeywords;
11992
 
  friend class ::WinAsm;
11993
 
  friend class ::WinDeclSpecs;
11994
 
  friend class ::WinMemberExplSpec;
11995
 
  friend class ::WinTypeKeywords;
 
14016
  friend class ::ExtGnu;
11996
14017
  friend class ::PragmaOnceUnitState;
11997
14018
  friend class ::PragmaOnce;
11998
 
  friend class ::CCExprResolve;
11999
 
  friend class ::CExprResolve;
 
14019
  friend class ::CMatchSyntax;
12000
14020
 
12001
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14021
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12002
14022
 
12003
14023
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
12004
14024
 
12005
14025
public:
12006
14026
  CT_ArgDecl (CTree *dsl, CTree *d) {
12007
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
14027
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
14028
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
12008
14029
  }
12009
14030
  CT_ArgDecl (CTree *ellipsis) {
12010
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
14031
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
14032
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
12011
14033
  }
 
14034
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12012
14035
  static const char *NodeId ();
 
14036
  /** Get the name of the node. Can be compared with NodeId(). */
12013
14037
  const char *NodeName () const { return NodeId (); }
 
14038
  /** Get the number of sons. */
12014
14039
  int Sons () const { return CTree::Sons (sons, 4); }
 
14040
  /** Get the n-th son.
 
14041
   *  \param n The index of the son.
 
14042
   *  \return The n-th son or NULL. */
12015
14043
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12016
14044
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
12017
14045
  CTree *Declarator () const { return sons[1]; }
12018
14046
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
12019
14047
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
12020
14048
  CSemObject *SemObject () const { return (CSemObject*)this; }
12021
 
  void Initializer (CTree *i) { sons[2] = i; }
 
14049
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
14050
  /** Replace a son.
 
14051
   *  \param old_son The son to replace.
 
14052
   *  \param new_son The new son. */
12022
14053
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12023
14054
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12024
14055
  }
12025
14056
};
12026
14057
 
12027
14058
 
12028
 
#line 12029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14059
#line 14060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12029
14060
} // closed Puma
 
14061
class CCExprResolve;
 
14062
class CExprResolve;
12030
14063
class WinIfExists;
12031
14064
class WinImportHandler;
12032
14065
class WinMacros;
12033
 
class CMatchSyntax;
12034
 
class ExtGnu;
 
14066
class WinAsm;
 
14067
class WinDeclSpecs;
 
14068
class WinMemberExplSpec;
 
14069
class WinTypeKeywords;
 
14070
class WinFriend;
12035
14071
class ExtAC;
12036
14072
class ExtACBuilderCoupling;
12037
14073
class ExtACSyntaxCoupling;
12038
14074
class ExtACTree;
12039
14075
class ExtACKeywords;
12040
 
class WinAsm;
12041
 
class WinDeclSpecs;
12042
 
class WinMemberExplSpec;
12043
 
class WinTypeKeywords;
 
14076
class ExtGnu;
12044
14077
class PragmaOnceUnitState;
12045
14078
class PragmaOnce;
12046
 
class CCExprResolve;
12047
 
class CExprResolve;
 
14079
class CMatchSyntax;
12048
14080
namespace Puma {
12049
14081
 
12050
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14082
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12051
14083
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
12052
 
#line 12053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14084
#line 14085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14085
  friend class ::CCExprResolve;
 
14086
  friend class ::CExprResolve;
12053
14087
  friend class ::WinIfExists;
12054
14088
  friend class ::WinImportHandler;
12055
14089
  friend class ::WinMacros;
12056
 
  friend class ::CMatchSyntax;
12057
 
  friend class ::ExtGnu;
 
14090
  friend class ::WinAsm;
 
14091
  friend class ::WinDeclSpecs;
 
14092
  friend class ::WinMemberExplSpec;
 
14093
  friend class ::WinTypeKeywords;
 
14094
  friend class ::WinFriend;
12058
14095
  friend class ::ExtAC;
12059
14096
  friend class ::ExtACBuilderCoupling;
12060
14097
  friend class ::ExtACSyntaxCoupling;
12061
14098
  friend class ::ExtACTree;
12062
14099
  friend class ::ExtACKeywords;
12063
 
  friend class ::WinAsm;
12064
 
  friend class ::WinDeclSpecs;
12065
 
  friend class ::WinMemberExplSpec;
12066
 
  friend class ::WinTypeKeywords;
 
14100
  friend class ::ExtGnu;
12067
14101
  friend class ::PragmaOnceUnitState;
12068
14102
  friend class ::PragmaOnce;
12069
 
  friend class ::CCExprResolve;
12070
 
  friend class ::CExprResolve;
 
14103
  friend class ::CMatchSyntax;
12071
14104
 
12072
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14105
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12073
14106
 
12074
14107
public:
12075
14108
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
12076
14109
   CT_DeclList (size, 2) { AddProperties (props); }
 
14110
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12077
14111
  static const char *NodeId ();
 
14112
  /** Get the name of the node. Can be compared with NodeId(). */
12078
14113
  const char *NodeName () const { return NodeId (); }
 
14114
  CSemScope *SemScope () const { return (CSemScope*)this; }
12079
14115
};
12080
14116
 
12081
14117
 
12082
 
#line 12083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14118
#line 14119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12083
14119
} // closed Puma
 
14120
class CCExprResolve;
 
14121
class CExprResolve;
12084
14122
class WinIfExists;
12085
14123
class WinImportHandler;
12086
14124
class WinMacros;
12087
 
class CMatchSyntax;
12088
 
class ExtGnu;
 
14125
class WinAsm;
 
14126
class WinDeclSpecs;
 
14127
class WinMemberExplSpec;
 
14128
class WinTypeKeywords;
 
14129
class WinFriend;
12089
14130
class ExtAC;
12090
14131
class ExtACBuilderCoupling;
12091
14132
class ExtACSyntaxCoupling;
12092
14133
class ExtACTree;
12093
14134
class ExtACKeywords;
12094
 
class WinAsm;
12095
 
class WinDeclSpecs;
12096
 
class WinMemberExplSpec;
12097
 
class WinTypeKeywords;
 
14135
class ExtGnu;
12098
14136
class PragmaOnceUnitState;
12099
14137
class PragmaOnce;
12100
 
class CCExprResolve;
12101
 
class CExprResolve;
 
14138
class CMatchSyntax;
12102
14139
namespace Puma {
12103
14140
 
12104
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14141
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12105
14142
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
12106
 
#line 12107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14143
#line 14144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14144
  friend class ::CCExprResolve;
 
14145
  friend class ::CExprResolve;
12107
14146
  friend class ::WinIfExists;
12108
14147
  friend class ::WinImportHandler;
12109
14148
  friend class ::WinMacros;
12110
 
  friend class ::CMatchSyntax;
12111
 
  friend class ::ExtGnu;
 
14149
  friend class ::WinAsm;
 
14150
  friend class ::WinDeclSpecs;
 
14151
  friend class ::WinMemberExplSpec;
 
14152
  friend class ::WinTypeKeywords;
 
14153
  friend class ::WinFriend;
12112
14154
  friend class ::ExtAC;
12113
14155
  friend class ::ExtACBuilderCoupling;
12114
14156
  friend class ::ExtACSyntaxCoupling;
12115
14157
  friend class ::ExtACTree;
12116
14158
  friend class ::ExtACKeywords;
12117
 
  friend class ::WinAsm;
12118
 
  friend class ::WinDeclSpecs;
12119
 
  friend class ::WinMemberExplSpec;
12120
 
  friend class ::WinTypeKeywords;
 
14159
  friend class ::ExtGnu;
12121
14160
  friend class ::PragmaOnceUnitState;
12122
14161
  friend class ::PragmaOnce;
12123
 
  friend class ::CCExprResolve;
12124
 
  friend class ::CExprResolve;
 
14162
  friend class ::CMatchSyntax;
12125
14163
 
12126
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14164
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12127
14165
 
12128
14166
public:
12129
14167
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
14168
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12130
14169
  static const char *NodeId ();
 
14170
  /** Get the name of the node. Can be compared with NodeId(). */
12131
14171
  const char *NodeName () const { return NodeId (); }
 
14172
  CSemScope *SemScope () const { return (CSemScope*)this; }
12132
14173
};
12133
14174
 
12134
14175
 
12135
 
#line 12136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14176
#line 14177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12136
14177
} // closed Puma
 
14178
class CCExprResolve;
 
14179
class CExprResolve;
12137
14180
class WinIfExists;
12138
14181
class WinImportHandler;
12139
14182
class WinMacros;
12140
 
class CMatchSyntax;
12141
 
class ExtGnu;
 
14183
class WinAsm;
 
14184
class WinDeclSpecs;
 
14185
class WinMemberExplSpec;
 
14186
class WinTypeKeywords;
 
14187
class WinFriend;
12142
14188
class ExtAC;
12143
14189
class ExtACBuilderCoupling;
12144
14190
class ExtACSyntaxCoupling;
12145
14191
class ExtACTree;
12146
14192
class ExtACKeywords;
12147
 
class WinAsm;
12148
 
class WinDeclSpecs;
12149
 
class WinMemberExplSpec;
12150
 
class WinTypeKeywords;
 
14193
class ExtGnu;
12151
14194
class PragmaOnceUnitState;
12152
14195
class PragmaOnce;
12153
 
class CCExprResolve;
12154
 
class CExprResolve;
 
14196
class CMatchSyntax;
12155
14197
namespace Puma {
12156
14198
 
12157
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14199
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12158
14200
class CT_ArgNameList : public CT_ArgDeclList {
12159
 
#line 12160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14201
#line 14202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14202
  friend class ::CCExprResolve;
 
14203
  friend class ::CExprResolve;
12160
14204
  friend class ::WinIfExists;
12161
14205
  friend class ::WinImportHandler;
12162
14206
  friend class ::WinMacros;
12163
 
  friend class ::CMatchSyntax;
12164
 
  friend class ::ExtGnu;
 
14207
  friend class ::WinAsm;
 
14208
  friend class ::WinDeclSpecs;
 
14209
  friend class ::WinMemberExplSpec;
 
14210
  friend class ::WinTypeKeywords;
 
14211
  friend class ::WinFriend;
12165
14212
  friend class ::ExtAC;
12166
14213
  friend class ::ExtACBuilderCoupling;
12167
14214
  friend class ::ExtACSyntaxCoupling;
12168
14215
  friend class ::ExtACTree;
12169
14216
  friend class ::ExtACKeywords;
12170
 
  friend class ::WinAsm;
12171
 
  friend class ::WinDeclSpecs;
12172
 
  friend class ::WinMemberExplSpec;
12173
 
  friend class ::WinTypeKeywords;
 
14217
  friend class ::ExtGnu;
12174
14218
  friend class ::PragmaOnceUnitState;
12175
14219
  friend class ::PragmaOnce;
12176
 
  friend class ::CCExprResolve;
12177
 
  friend class ::CExprResolve;
 
14220
  friend class ::CMatchSyntax;
12178
14221
 
12179
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14222
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12180
14223
 
12181
14224
public:
12182
14225
  CT_ArgNameList () : CT_ArgDeclList () {}
 
14226
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12183
14227
  static const char *NodeId ();
 
14228
  /** Get the name of the node. Can be compared with NodeId(). */
12184
14229
  const char *NodeName () const { return NodeId (); }
12185
14230
};
12186
14231
 
12187
14232
 
12188
 
#line 12189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14233
#line 14234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12189
14234
} // closed Puma
 
14235
class CCExprResolve;
 
14236
class CExprResolve;
12190
14237
class WinIfExists;
12191
14238
class WinImportHandler;
12192
14239
class WinMacros;
12193
 
class CMatchSyntax;
12194
 
class ExtGnu;
 
14240
class WinAsm;
 
14241
class WinDeclSpecs;
 
14242
class WinMemberExplSpec;
 
14243
class WinTypeKeywords;
 
14244
class WinFriend;
12195
14245
class ExtAC;
12196
14246
class ExtACBuilderCoupling;
12197
14247
class ExtACSyntaxCoupling;
12198
14248
class ExtACTree;
12199
14249
class ExtACKeywords;
12200
 
class WinAsm;
12201
 
class WinDeclSpecs;
12202
 
class WinMemberExplSpec;
12203
 
class WinTypeKeywords;
 
14250
class ExtGnu;
12204
14251
class PragmaOnceUnitState;
12205
14252
class PragmaOnce;
12206
 
class CCExprResolve;
12207
 
class CExprResolve;
 
14253
class CMatchSyntax;
12208
14254
namespace Puma {
12209
14255
 
12210
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14256
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12211
14257
class CT_NamespaceDef : public CT_Decl, public CSemObject {
12212
 
#line 12213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14258
#line 14259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14259
  friend class ::CCExprResolve;
 
14260
  friend class ::CExprResolve;
12213
14261
  friend class ::WinIfExists;
12214
14262
  friend class ::WinImportHandler;
12215
14263
  friend class ::WinMacros;
12216
 
  friend class ::CMatchSyntax;
12217
 
  friend class ::ExtGnu;
 
14264
  friend class ::WinAsm;
 
14265
  friend class ::WinDeclSpecs;
 
14266
  friend class ::WinMemberExplSpec;
 
14267
  friend class ::WinTypeKeywords;
 
14268
  friend class ::WinFriend;
12218
14269
  friend class ::ExtAC;
12219
14270
  friend class ::ExtACBuilderCoupling;
12220
14271
  friend class ::ExtACSyntaxCoupling;
12221
14272
  friend class ::ExtACTree;
12222
14273
  friend class ::ExtACKeywords;
12223
 
  friend class ::WinAsm;
12224
 
  friend class ::WinDeclSpecs;
12225
 
  friend class ::WinMemberExplSpec;
12226
 
  friend class ::WinTypeKeywords;
 
14274
  friend class ::ExtGnu;
12227
14275
  friend class ::PragmaOnceUnitState;
12228
14276
  friend class ::PragmaOnce;
12229
 
  friend class ::CCExprResolve;
12230
 
  friend class ::CExprResolve;
 
14277
  friend class ::CMatchSyntax;
12231
14278
 
12232
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14279
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12233
14280
 
12234
14281
  CTree *sons[3]; // ns, name, members
12235
14282
 
12236
14283
public:
12237
14284
  CT_NamespaceDef (CTree *n, CTree *nm) {
12238
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
14285
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
12239
14286
  }
12240
14287
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
12241
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
14288
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
12242
14289
  }
 
14290
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12243
14291
  static const char *NodeId ();
 
14292
  /** Get the name of the node. Can be compared with NodeId(). */
12244
14293
  const char *NodeName () const { return NodeId (); }
 
14294
  /** Get the number of sons. */
12245
14295
  int Sons () const { return CTree::Sons (sons, 3); }
 
14296
  /** Get the n-th son.
 
14297
   *  \param n The index of the son.
 
14298
   *  \return The n-th son or NULL. */
12246
14299
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12247
 
  void Members (CTree *m) { sons[2] = m; }
 
14300
  void Members (CTree *m) { AddSon (sons[2], m); }
12248
14301
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
12249
14302
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
12250
14303
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
14304
  /** Replace a son.
 
14305
   *  \param old_son The son to replace.
 
14306
   *  \param new_son The new son. */
12251
14307
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12252
14308
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12253
14309
  }
12254
14310
};
12255
14311
 
12256
14312
 
12257
 
#line 12258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14313
#line 14314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12258
14314
} // closed Puma
 
14315
class CCExprResolve;
 
14316
class CExprResolve;
12259
14317
class WinIfExists;
12260
14318
class WinImportHandler;
12261
14319
class WinMacros;
12262
 
class CMatchSyntax;
12263
 
class ExtGnu;
 
14320
class WinAsm;
 
14321
class WinDeclSpecs;
 
14322
class WinMemberExplSpec;
 
14323
class WinTypeKeywords;
 
14324
class WinFriend;
12264
14325
class ExtAC;
12265
14326
class ExtACBuilderCoupling;
12266
14327
class ExtACSyntaxCoupling;
12267
14328
class ExtACTree;
12268
14329
class ExtACKeywords;
12269
 
class WinAsm;
12270
 
class WinDeclSpecs;
12271
 
class WinMemberExplSpec;
12272
 
class WinTypeKeywords;
 
14330
class ExtGnu;
12273
14331
class PragmaOnceUnitState;
12274
14332
class PragmaOnce;
12275
 
class CCExprResolve;
12276
 
class CExprResolve;
 
14333
class CMatchSyntax;
12277
14334
namespace Puma {
12278
14335
 
12279
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14336
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12280
14337
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
12281
 
#line 12282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14338
#line 14339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14339
  friend class ::CCExprResolve;
 
14340
  friend class ::CExprResolve;
12282
14341
  friend class ::WinIfExists;
12283
14342
  friend class ::WinImportHandler;
12284
14343
  friend class ::WinMacros;
12285
 
  friend class ::CMatchSyntax;
12286
 
  friend class ::ExtGnu;
 
14344
  friend class ::WinAsm;
 
14345
  friend class ::WinDeclSpecs;
 
14346
  friend class ::WinMemberExplSpec;
 
14347
  friend class ::WinTypeKeywords;
 
14348
  friend class ::WinFriend;
12287
14349
  friend class ::ExtAC;
12288
14350
  friend class ::ExtACBuilderCoupling;
12289
14351
  friend class ::ExtACSyntaxCoupling;
12290
14352
  friend class ::ExtACTree;
12291
14353
  friend class ::ExtACKeywords;
12292
 
  friend class ::WinAsm;
12293
 
  friend class ::WinDeclSpecs;
12294
 
  friend class ::WinMemberExplSpec;
12295
 
  friend class ::WinTypeKeywords;
 
14354
  friend class ::ExtGnu;
12296
14355
  friend class ::PragmaOnceUnitState;
12297
14356
  friend class ::PragmaOnce;
12298
 
  friend class ::CCExprResolve;
12299
 
  friend class ::CExprResolve;
 
14357
  friend class ::CMatchSyntax;
12300
14358
 
12301
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14359
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12302
14360
 
12303
14361
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
12304
14362
 
12305
14363
public:
12306
14364
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
12307
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
14365
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
14366
    AddSon (sons[3], nm); AddSon (sons[4], s); 
12308
14367
  }
 
14368
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12309
14369
  static const char *NodeId ();
 
14370
  /** Get the name of the node. Can be compared with NodeId(). */
12310
14371
  const char *NodeName () const { return NodeId (); }
 
14372
  /** Get the number of sons. */
12311
14373
  int Sons () const { return 5; }
 
14374
  /** Get the n-th son.
 
14375
   *  \param n The index of the son.
 
14376
   *  \return The n-th son or NULL. */
12312
14377
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12313
14378
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
12314
14379
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
12315
14380
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
14381
  /** Replace a son.
 
14382
   *  \param old_son The son to replace.
 
14383
   *  \param new_son The new son. */
12316
14384
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12317
14385
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12318
14386
  }
12319
14387
};
12320
14388
 
12321
14389
 
12322
 
#line 12323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14390
#line 14391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12323
14391
} // closed Puma
 
14392
class CCExprResolve;
 
14393
class CExprResolve;
12324
14394
class WinIfExists;
12325
14395
class WinImportHandler;
12326
14396
class WinMacros;
12327
 
class CMatchSyntax;
12328
 
class ExtGnu;
 
14397
class WinAsm;
 
14398
class WinDeclSpecs;
 
14399
class WinMemberExplSpec;
 
14400
class WinTypeKeywords;
 
14401
class WinFriend;
12329
14402
class ExtAC;
12330
14403
class ExtACBuilderCoupling;
12331
14404
class ExtACSyntaxCoupling;
12332
14405
class ExtACTree;
12333
14406
class ExtACKeywords;
12334
 
class WinAsm;
12335
 
class WinDeclSpecs;
12336
 
class WinMemberExplSpec;
12337
 
class WinTypeKeywords;
 
14407
class ExtGnu;
12338
14408
class PragmaOnceUnitState;
12339
14409
class PragmaOnce;
12340
 
class CCExprResolve;
12341
 
class CExprResolve;
 
14410
class CMatchSyntax;
12342
14411
namespace Puma {
12343
14412
 
12344
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14413
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12345
14414
class CT_UsingDirective : public CT_Decl {
12346
 
#line 12347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14415
#line 14416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14416
  friend class ::CCExprResolve;
 
14417
  friend class ::CExprResolve;
12347
14418
  friend class ::WinIfExists;
12348
14419
  friend class ::WinImportHandler;
12349
14420
  friend class ::WinMacros;
12350
 
  friend class ::CMatchSyntax;
12351
 
  friend class ::ExtGnu;
 
14421
  friend class ::WinAsm;
 
14422
  friend class ::WinDeclSpecs;
 
14423
  friend class ::WinMemberExplSpec;
 
14424
  friend class ::WinTypeKeywords;
 
14425
  friend class ::WinFriend;
12352
14426
  friend class ::ExtAC;
12353
14427
  friend class ::ExtACBuilderCoupling;
12354
14428
  friend class ::ExtACSyntaxCoupling;
12355
14429
  friend class ::ExtACTree;
12356
14430
  friend class ::ExtACKeywords;
12357
 
  friend class ::WinAsm;
12358
 
  friend class ::WinDeclSpecs;
12359
 
  friend class ::WinMemberExplSpec;
12360
 
  friend class ::WinTypeKeywords;
 
14431
  friend class ::ExtGnu;
12361
14432
  friend class ::PragmaOnceUnitState;
12362
14433
  friend class ::PragmaOnce;
12363
 
  friend class ::CCExprResolve;
12364
 
  friend class ::CExprResolve;
 
14434
  friend class ::CMatchSyntax;
12365
14435
 
12366
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14436
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12367
14437
 
12368
14438
  CTree *sons[4]; // using, ns, name, semi_colon
12369
14439
 
12370
14440
public:
12371
14441
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
12372
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
14442
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
14443
    AddSon (sons[3], s); 
12373
14444
  }
 
14445
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12374
14446
  static const char *NodeId ();
 
14447
  /** Get the name of the node. Can be compared with NodeId(). */
12375
14448
  const char *NodeName () const { return NodeId (); }
 
14449
  /** Get the number of sons. */
12376
14450
  int Sons () const { return 4; }
 
14451
  /** Get the n-th son.
 
14452
   *  \param n The index of the son.
 
14453
   *  \return The n-th son or NULL. */
12377
14454
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12378
14455
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
14456
  /** Replace a son.
 
14457
   *  \param old_son The son to replace.
 
14458
   *  \param new_son The new son. */
12379
14459
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12380
14460
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12381
14461
  }
12388
14468
/*****************************************************************************/
12389
14469
 
12390
14470
 
12391
 
#line 12392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14471
#line 14472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12392
14472
} // closed Puma
 
14473
class CCExprResolve;
 
14474
class CExprResolve;
12393
14475
class WinIfExists;
12394
14476
class WinImportHandler;
12395
14477
class WinMacros;
12396
 
class CMatchSyntax;
12397
 
class ExtGnu;
 
14478
class WinAsm;
 
14479
class WinDeclSpecs;
 
14480
class WinMemberExplSpec;
 
14481
class WinTypeKeywords;
 
14482
class WinFriend;
12398
14483
class ExtAC;
12399
14484
class ExtACBuilderCoupling;
12400
14485
class ExtACSyntaxCoupling;
12401
14486
class ExtACTree;
12402
14487
class ExtACKeywords;
12403
 
class WinAsm;
12404
 
class WinDeclSpecs;
12405
 
class WinMemberExplSpec;
12406
 
class WinTypeKeywords;
 
14488
class ExtGnu;
12407
14489
class PragmaOnceUnitState;
12408
14490
class PragmaOnce;
12409
 
class CCExprResolve;
12410
 
class CExprResolve;
 
14491
class CMatchSyntax;
12411
14492
namespace Puma {
12412
14493
 
12413
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14494
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12414
14495
class CT_Declarator : public CTree {
12415
 
#line 12416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14496
#line 14497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14497
  friend class ::CCExprResolve;
 
14498
  friend class ::CExprResolve;
12416
14499
  friend class ::WinIfExists;
12417
14500
  friend class ::WinImportHandler;
12418
14501
  friend class ::WinMacros;
12419
 
  friend class ::CMatchSyntax;
12420
 
  friend class ::ExtGnu;
 
14502
  friend class ::WinAsm;
 
14503
  friend class ::WinDeclSpecs;
 
14504
  friend class ::WinMemberExplSpec;
 
14505
  friend class ::WinTypeKeywords;
 
14506
  friend class ::WinFriend;
12421
14507
  friend class ::ExtAC;
12422
14508
  friend class ::ExtACBuilderCoupling;
12423
14509
  friend class ::ExtACSyntaxCoupling;
12424
14510
  friend class ::ExtACTree;
12425
14511
  friend class ::ExtACKeywords;
12426
 
  friend class ::WinAsm;
12427
 
  friend class ::WinDeclSpecs;
12428
 
  friend class ::WinMemberExplSpec;
12429
 
  friend class ::WinTypeKeywords;
 
14512
  friend class ::ExtGnu;
12430
14513
  friend class ::PragmaOnceUnitState;
12431
14514
  friend class ::PragmaOnce;
12432
 
  friend class ::CCExprResolve;
12433
 
  friend class ::CExprResolve;
 
14515
  friend class ::CMatchSyntax;
12434
14516
 
12435
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14517
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12436
14518
 
12437
14519
protected:
12438
14520
  CT_Declarator () {}
12447
14529
};
12448
14530
 
12449
14531
 
12450
 
#line 12451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14532
#line 14533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12451
14533
} // closed Puma
 
14534
class CCExprResolve;
 
14535
class CExprResolve;
12452
14536
class WinIfExists;
12453
14537
class WinImportHandler;
12454
14538
class WinMacros;
12455
 
class CMatchSyntax;
12456
 
class ExtGnu;
 
14539
class WinAsm;
 
14540
class WinDeclSpecs;
 
14541
class WinMemberExplSpec;
 
14542
class WinTypeKeywords;
 
14543
class WinFriend;
12457
14544
class ExtAC;
12458
14545
class ExtACBuilderCoupling;
12459
14546
class ExtACSyntaxCoupling;
12460
14547
class ExtACTree;
12461
14548
class ExtACKeywords;
12462
 
class WinAsm;
12463
 
class WinDeclSpecs;
12464
 
class WinMemberExplSpec;
12465
 
class WinTypeKeywords;
 
14549
class ExtGnu;
12466
14550
class PragmaOnceUnitState;
12467
14551
class PragmaOnce;
12468
 
class CCExprResolve;
12469
 
class CExprResolve;
 
14552
class CMatchSyntax;
12470
14553
namespace Puma {
12471
14554
 
12472
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14555
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12473
14556
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
12474
 
#line 12475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14557
#line 14558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14558
  friend class ::CCExprResolve;
 
14559
  friend class ::CExprResolve;
12475
14560
  friend class ::WinIfExists;
12476
14561
  friend class ::WinImportHandler;
12477
14562
  friend class ::WinMacros;
12478
 
  friend class ::CMatchSyntax;
12479
 
  friend class ::ExtGnu;
 
14563
  friend class ::WinAsm;
 
14564
  friend class ::WinDeclSpecs;
 
14565
  friend class ::WinMemberExplSpec;
 
14566
  friend class ::WinTypeKeywords;
 
14567
  friend class ::WinFriend;
12480
14568
  friend class ::ExtAC;
12481
14569
  friend class ::ExtACBuilderCoupling;
12482
14570
  friend class ::ExtACSyntaxCoupling;
12483
14571
  friend class ::ExtACTree;
12484
14572
  friend class ::ExtACKeywords;
12485
 
  friend class ::WinAsm;
12486
 
  friend class ::WinDeclSpecs;
12487
 
  friend class ::WinMemberExplSpec;
12488
 
  friend class ::WinTypeKeywords;
 
14573
  friend class ::ExtGnu;
12489
14574
  friend class ::PragmaOnceUnitState;
12490
14575
  friend class ::PragmaOnce;
12491
 
  friend class ::CCExprResolve;
12492
 
  friend class ::CExprResolve;
12493
 
 
12494
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12495
 
 
12496
 
  CTree *sons[2]; // declarator, init
 
14576
  friend class ::CMatchSyntax;
 
14577
 
 
14578
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14579
 
 
14580
  CTree *sons[3]; // declarator, ext, init
12497
14581
  CTree *obj_decl;
12498
14582
 
12499
14583
public:
12500
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
12501
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
14584
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
14585
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
14586
    AddSon (obj_decl, 0); 
12502
14587
  }
 
14588
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12503
14589
  static const char *NodeId ();
 
14590
  /** Get the name of the node. Can be compared with NodeId(). */
12504
14591
  const char *NodeName () const { return NodeId (); }
12505
 
  int Sons () const { return CTree::Sons (sons, 2); }
12506
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
14592
  /** Get the number of sons. */
 
14593
  int Sons () const { return CTree::Sons (sons, 3); }
 
14594
  /** Get the n-th son.
 
14595
   *  \param n The index of the son.
 
14596
   *  \return The n-th son or NULL. */
 
14597
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12507
14598
  CTree *Declarator () const { return sons[0]; }
12508
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
14599
  CTree *Extension () const { return sons[1]; }
 
14600
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
12509
14601
  CSemObject *SemObject () const { return (CSemObject*)this; }
12510
14602
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
12511
 
  void Initializer (CTree* i) { sons[1] = i; }
12512
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
14603
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
14604
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
14605
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
14606
  /** Replace a son.
 
14607
   *  \param old_son The son to replace.
 
14608
   *  \param new_son The new son. */
12513
14609
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12514
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
14610
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12515
14611
  }
12516
14612
};
12517
14613
 
12518
14614
 
12519
 
#line 12520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14615
#line 14616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12520
14616
} // closed Puma
 
14617
class CCExprResolve;
 
14618
class CExprResolve;
12521
14619
class WinIfExists;
12522
14620
class WinImportHandler;
12523
14621
class WinMacros;
12524
 
class CMatchSyntax;
12525
 
class ExtGnu;
 
14622
class WinAsm;
 
14623
class WinDeclSpecs;
 
14624
class WinMemberExplSpec;
 
14625
class WinTypeKeywords;
 
14626
class WinFriend;
12526
14627
class ExtAC;
12527
14628
class ExtACBuilderCoupling;
12528
14629
class ExtACSyntaxCoupling;
12529
14630
class ExtACTree;
12530
14631
class ExtACKeywords;
12531
 
class WinAsm;
12532
 
class WinDeclSpecs;
12533
 
class WinMemberExplSpec;
12534
 
class WinTypeKeywords;
 
14632
class ExtGnu;
12535
14633
class PragmaOnceUnitState;
12536
14634
class PragmaOnce;
12537
 
class CCExprResolve;
12538
 
class CExprResolve;
 
14635
class CMatchSyntax;
12539
14636
namespace Puma {
12540
14637
 
12541
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14638
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12542
14639
class CT_BracedDeclarator : public CT_Declarator {
12543
 
#line 12544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14640
#line 14641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14641
  friend class ::CCExprResolve;
 
14642
  friend class ::CExprResolve;
12544
14643
  friend class ::WinIfExists;
12545
14644
  friend class ::WinImportHandler;
12546
14645
  friend class ::WinMacros;
12547
 
  friend class ::CMatchSyntax;
12548
 
  friend class ::ExtGnu;
 
14646
  friend class ::WinAsm;
 
14647
  friend class ::WinDeclSpecs;
 
14648
  friend class ::WinMemberExplSpec;
 
14649
  friend class ::WinTypeKeywords;
 
14650
  friend class ::WinFriend;
12549
14651
  friend class ::ExtAC;
12550
14652
  friend class ::ExtACBuilderCoupling;
12551
14653
  friend class ::ExtACSyntaxCoupling;
12552
14654
  friend class ::ExtACTree;
12553
14655
  friend class ::ExtACKeywords;
12554
 
  friend class ::WinAsm;
12555
 
  friend class ::WinDeclSpecs;
12556
 
  friend class ::WinMemberExplSpec;
12557
 
  friend class ::WinTypeKeywords;
 
14656
  friend class ::ExtGnu;
12558
14657
  friend class ::PragmaOnceUnitState;
12559
14658
  friend class ::PragmaOnce;
12560
 
  friend class ::CCExprResolve;
12561
 
  friend class ::CExprResolve;
 
14659
  friend class ::CMatchSyntax;
12562
14660
 
12563
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14661
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12564
14662
 
12565
14663
  CTree *sons[4]; // open, win_specs, declarator, close
12566
14664
 
12567
14665
public:
12568
14666
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
12569
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
14667
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
14668
    AddSon (sons[2], d); AddSon (sons[3], c); 
12570
14669
  }
12571
14670
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
12572
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
14671
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
14672
    AddSon (sons[2], d); AddSon (sons[3], c); 
12573
14673
  }
 
14674
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12574
14675
  static const char *NodeId ();
 
14676
  /** Get the name of the node. Can be compared with NodeId(). */
12575
14677
  const char *NodeName () const { return NodeId (); }
 
14678
  /** Get the number of sons. */
12576
14679
  int Sons () const { return CTree::Sons (sons, 4); }
 
14680
  /** Get the n-th son.
 
14681
   *  \param n The index of the son.
 
14682
   *  \return The n-th son or NULL. */
12577
14683
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12578
14684
  CTree *Declarator () const { return sons[2]; }
 
14685
  /** Replace a son.
 
14686
   *  \param old_son The son to replace.
 
14687
   *  \param new_son The new son. */
12579
14688
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12580
14689
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12581
14690
  }
12582
14691
};
12583
14692
 
12584
14693
 
12585
 
#line 12586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14694
#line 14695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12586
14695
} // closed Puma
 
14696
class CCExprResolve;
 
14697
class CExprResolve;
12587
14698
class WinIfExists;
12588
14699
class WinImportHandler;
12589
14700
class WinMacros;
12590
 
class CMatchSyntax;
12591
 
class ExtGnu;
 
14701
class WinAsm;
 
14702
class WinDeclSpecs;
 
14703
class WinMemberExplSpec;
 
14704
class WinTypeKeywords;
 
14705
class WinFriend;
12592
14706
class ExtAC;
12593
14707
class ExtACBuilderCoupling;
12594
14708
class ExtACSyntaxCoupling;
12595
14709
class ExtACTree;
12596
14710
class ExtACKeywords;
12597
 
class WinAsm;
12598
 
class WinDeclSpecs;
12599
 
class WinMemberExplSpec;
12600
 
class WinTypeKeywords;
 
14711
class ExtGnu;
12601
14712
class PragmaOnceUnitState;
12602
14713
class PragmaOnce;
12603
 
class CCExprResolve;
12604
 
class CExprResolve;
 
14714
class CMatchSyntax;
12605
14715
namespace Puma {
12606
14716
 
12607
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14717
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12608
14718
class CT_ArrayDelimiter : public CTree {
12609
 
#line 12610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14719
#line 14720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14720
  friend class ::CCExprResolve;
 
14721
  friend class ::CExprResolve;
12610
14722
  friend class ::WinIfExists;
12611
14723
  friend class ::WinImportHandler;
12612
14724
  friend class ::WinMacros;
12613
 
  friend class ::CMatchSyntax;
12614
 
  friend class ::ExtGnu;
 
14725
  friend class ::WinAsm;
 
14726
  friend class ::WinDeclSpecs;
 
14727
  friend class ::WinMemberExplSpec;
 
14728
  friend class ::WinTypeKeywords;
 
14729
  friend class ::WinFriend;
12615
14730
  friend class ::ExtAC;
12616
14731
  friend class ::ExtACBuilderCoupling;
12617
14732
  friend class ::ExtACSyntaxCoupling;
12618
14733
  friend class ::ExtACTree;
12619
14734
  friend class ::ExtACKeywords;
12620
 
  friend class ::WinAsm;
12621
 
  friend class ::WinDeclSpecs;
12622
 
  friend class ::WinMemberExplSpec;
12623
 
  friend class ::WinTypeKeywords;
 
14735
  friend class ::ExtGnu;
12624
14736
  friend class ::PragmaOnceUnitState;
12625
14737
  friend class ::PragmaOnce;
12626
 
  friend class ::CCExprResolve;
12627
 
  friend class ::CExprResolve;
 
14738
  friend class ::CMatchSyntax;
12628
14739
 
12629
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14740
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12630
14741
 
12631
14742
  CTree *sons[4]; // star, static, quals, expr
12632
14743
  bool pos0;
12633
14744
 
12634
14745
public:
12635
14746
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
12636
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
14747
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
14748
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
12637
14749
  }
 
14750
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12638
14751
  static const char *NodeId ();
 
14752
  /** Get the name of the node. Can be compared with NodeId(). */
12639
14753
  const char *NodeName () const { return NodeId (); }
 
14754
  /** Get the number of sons. */
12640
14755
  int Sons () const { return CTree::Sons (sons, 4); }
 
14756
  /** Get the n-th son.
 
14757
   *  \param n The index of the son.
 
14758
   *  \return The n-th son or NULL. */
12641
14759
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12642
14760
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
12643
14761
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
12644
14762
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
12645
14763
  CTree *Expr () const { return sons[3]; }
 
14764
  /** Replace a son.
 
14765
   *  \param old_son The son to replace.
 
14766
   *  \param new_son The new son. */
12646
14767
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12647
14768
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12648
14769
  }
12649
14770
};
12650
14771
 
12651
14772
 
12652
 
#line 12653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14773
#line 14774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12653
14774
} // closed Puma
 
14775
class CCExprResolve;
 
14776
class CExprResolve;
12654
14777
class WinIfExists;
12655
14778
class WinImportHandler;
12656
14779
class WinMacros;
12657
 
class CMatchSyntax;
12658
 
class ExtGnu;
 
14780
class WinAsm;
 
14781
class WinDeclSpecs;
 
14782
class WinMemberExplSpec;
 
14783
class WinTypeKeywords;
 
14784
class WinFriend;
12659
14785
class ExtAC;
12660
14786
class ExtACBuilderCoupling;
12661
14787
class ExtACSyntaxCoupling;
12662
14788
class ExtACTree;
12663
14789
class ExtACKeywords;
12664
 
class WinAsm;
12665
 
class WinDeclSpecs;
12666
 
class WinMemberExplSpec;
12667
 
class WinTypeKeywords;
 
14790
class ExtGnu;
12668
14791
class PragmaOnceUnitState;
12669
14792
class PragmaOnce;
12670
 
class CCExprResolve;
12671
 
class CExprResolve;
 
14793
class CMatchSyntax;
12672
14794
namespace Puma {
12673
14795
 
12674
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14796
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12675
14797
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
12676
 
#line 12677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14798
#line 14799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14799
  friend class ::CCExprResolve;
 
14800
  friend class ::CExprResolve;
12677
14801
  friend class ::WinIfExists;
12678
14802
  friend class ::WinImportHandler;
12679
14803
  friend class ::WinMacros;
12680
 
  friend class ::CMatchSyntax;
12681
 
  friend class ::ExtGnu;
 
14804
  friend class ::WinAsm;
 
14805
  friend class ::WinDeclSpecs;
 
14806
  friend class ::WinMemberExplSpec;
 
14807
  friend class ::WinTypeKeywords;
 
14808
  friend class ::WinFriend;
12682
14809
  friend class ::ExtAC;
12683
14810
  friend class ::ExtACBuilderCoupling;
12684
14811
  friend class ::ExtACSyntaxCoupling;
12685
14812
  friend class ::ExtACTree;
12686
14813
  friend class ::ExtACKeywords;
12687
 
  friend class ::WinAsm;
12688
 
  friend class ::WinDeclSpecs;
12689
 
  friend class ::WinMemberExplSpec;
12690
 
  friend class ::WinTypeKeywords;
 
14814
  friend class ::ExtGnu;
12691
14815
  friend class ::PragmaOnceUnitState;
12692
14816
  friend class ::PragmaOnce;
12693
 
  friend class ::CCExprResolve;
12694
 
  friend class ::CExprResolve;
 
14817
  friend class ::CMatchSyntax;
12695
14818
 
12696
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14819
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12697
14820
 
12698
14821
  CTree *sons[4]; // declarator, open, delim, close
12699
14822
 
12700
14823
public:
12701
14824
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
12702
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
14825
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
14826
    AddSon (sons[2], ad); AddSon (sons[3], c); 
12703
14827
  }
 
14828
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12704
14829
  static const char *NodeId ();
 
14830
  /** Get the name of the node. Can be compared with NodeId(). */
12705
14831
  const char *NodeName () const { return NodeId (); }
 
14832
  /** Get the number of sons. */
12706
14833
  int Sons () const { return 4; }
 
14834
  /** Get the n-th son.
 
14835
   *  \param n The index of the son.
 
14836
   *  \return The n-th son or NULL. */
12707
14837
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12708
14838
  CTree *Declarator () const { return sons[0]; }
12709
14839
  CT_ArrayDelimiter *Delimiter () const 
12710
14840
   { return (CT_ArrayDelimiter*)sons[2]; }
 
14841
  /** Replace a son.
 
14842
   *  \param old_son The son to replace.
 
14843
   *  \param new_son The new son. */
12711
14844
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12712
14845
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12713
14846
  }
12717
14850
};
12718
14851
 
12719
14852
 
12720
 
#line 12721 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14853
#line 14854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12721
14854
} // closed Puma
 
14855
class CCExprResolve;
 
14856
class CExprResolve;
12722
14857
class WinIfExists;
12723
14858
class WinImportHandler;
12724
14859
class WinMacros;
12725
 
class CMatchSyntax;
12726
 
class ExtGnu;
 
14860
class WinAsm;
 
14861
class WinDeclSpecs;
 
14862
class WinMemberExplSpec;
 
14863
class WinTypeKeywords;
 
14864
class WinFriend;
12727
14865
class ExtAC;
12728
14866
class ExtACBuilderCoupling;
12729
14867
class ExtACSyntaxCoupling;
12730
14868
class ExtACTree;
12731
14869
class ExtACKeywords;
12732
 
class WinAsm;
12733
 
class WinDeclSpecs;
12734
 
class WinMemberExplSpec;
12735
 
class WinTypeKeywords;
 
14870
class ExtGnu;
12736
14871
class PragmaOnceUnitState;
12737
14872
class PragmaOnce;
12738
 
class CCExprResolve;
12739
 
class CExprResolve;
 
14873
class CMatchSyntax;
12740
14874
namespace Puma {
12741
14875
 
12742
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14876
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12743
14877
class CT_FctDeclarator : public CT_Declarator {
12744
 
#line 12745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14878
#line 14879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14879
  friend class ::CCExprResolve;
 
14880
  friend class ::CExprResolve;
12745
14881
  friend class ::WinIfExists;
12746
14882
  friend class ::WinImportHandler;
12747
14883
  friend class ::WinMacros;
12748
 
  friend class ::CMatchSyntax;
12749
 
  friend class ::ExtGnu;
 
14884
  friend class ::WinAsm;
 
14885
  friend class ::WinDeclSpecs;
 
14886
  friend class ::WinMemberExplSpec;
 
14887
  friend class ::WinTypeKeywords;
 
14888
  friend class ::WinFriend;
12750
14889
  friend class ::ExtAC;
12751
14890
  friend class ::ExtACBuilderCoupling;
12752
14891
  friend class ::ExtACSyntaxCoupling;
12753
14892
  friend class ::ExtACTree;
12754
14893
  friend class ::ExtACKeywords;
12755
 
  friend class ::WinAsm;
12756
 
  friend class ::WinDeclSpecs;
12757
 
  friend class ::WinMemberExplSpec;
12758
 
  friend class ::WinTypeKeywords;
 
14894
  friend class ::ExtGnu;
12759
14895
  friend class ::PragmaOnceUnitState;
12760
14896
  friend class ::PragmaOnce;
12761
 
  friend class ::CCExprResolve;
12762
 
  friend class ::CExprResolve;
 
14897
  friend class ::CMatchSyntax;
12763
14898
 
12764
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14899
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12765
14900
 
12766
14901
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
12767
14902
 
12768
14903
public:
12769
14904
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
12770
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
14905
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
14906
    AddSon (sons[2], cv); AddSon (sons[3], es); 
12771
14907
  }
 
14908
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12772
14909
  static const char *NodeId ();
 
14910
  /** Get the name of the node. Can be compared with NodeId(). */
12773
14911
  const char *NodeName () const { return NodeId (); }
 
14912
  /** Get the number of sons. */
12774
14913
  int Sons () const { return CTree::Sons (sons, 4); }
 
14914
  /** Get the n-th son.
 
14915
   *  \param n The index of the son.
 
14916
   *  \return The n-th son or NULL. */
12775
14917
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12776
14918
  CTree *Declarator () const { return sons[0]; }
12777
14919
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
12778
14920
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
12779
14921
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
14922
  /** Replace a son.
 
14923
   *  \param old_son The son to replace.
 
14924
   *  \param new_son The new son. */
12780
14925
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12781
14926
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12782
14927
  }
12783
14928
};
12784
14929
 
12785
14930
 
12786
 
#line 12787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14931
#line 14932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12787
14932
} // closed Puma
 
14933
class CCExprResolve;
 
14934
class CExprResolve;
12788
14935
class WinIfExists;
12789
14936
class WinImportHandler;
12790
14937
class WinMacros;
12791
 
class CMatchSyntax;
12792
 
class ExtGnu;
 
14938
class WinAsm;
 
14939
class WinDeclSpecs;
 
14940
class WinMemberExplSpec;
 
14941
class WinTypeKeywords;
 
14942
class WinFriend;
12793
14943
class ExtAC;
12794
14944
class ExtACBuilderCoupling;
12795
14945
class ExtACSyntaxCoupling;
12796
14946
class ExtACTree;
12797
14947
class ExtACKeywords;
12798
 
class WinAsm;
12799
 
class WinDeclSpecs;
12800
 
class WinMemberExplSpec;
12801
 
class WinTypeKeywords;
 
14948
class ExtGnu;
12802
14949
class PragmaOnceUnitState;
12803
14950
class PragmaOnce;
12804
 
class CCExprResolve;
12805
 
class CExprResolve;
 
14951
class CMatchSyntax;
12806
14952
namespace Puma {
12807
14953
 
12808
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14954
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12809
14955
class CT_RefDeclarator : public CT_Declarator {
12810
 
#line 12811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
14956
#line 14957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
14957
  friend class ::CCExprResolve;
 
14958
  friend class ::CExprResolve;
12811
14959
  friend class ::WinIfExists;
12812
14960
  friend class ::WinImportHandler;
12813
14961
  friend class ::WinMacros;
12814
 
  friend class ::CMatchSyntax;
12815
 
  friend class ::ExtGnu;
 
14962
  friend class ::WinAsm;
 
14963
  friend class ::WinDeclSpecs;
 
14964
  friend class ::WinMemberExplSpec;
 
14965
  friend class ::WinTypeKeywords;
 
14966
  friend class ::WinFriend;
12816
14967
  friend class ::ExtAC;
12817
14968
  friend class ::ExtACBuilderCoupling;
12818
14969
  friend class ::ExtACSyntaxCoupling;
12819
14970
  friend class ::ExtACTree;
12820
14971
  friend class ::ExtACKeywords;
12821
 
  friend class ::WinAsm;
12822
 
  friend class ::WinDeclSpecs;
12823
 
  friend class ::WinMemberExplSpec;
12824
 
  friend class ::WinTypeKeywords;
 
14972
  friend class ::ExtGnu;
12825
14973
  friend class ::PragmaOnceUnitState;
12826
14974
  friend class ::PragmaOnce;
12827
 
  friend class ::CCExprResolve;
12828
 
  friend class ::CExprResolve;
 
14975
  friend class ::CMatchSyntax;
12829
14976
 
12830
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14977
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12831
14978
 
12832
14979
  CTree *sons[2]; // ref, declarator
12833
14980
 
12834
14981
public:
12835
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
14982
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
14983
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12836
14984
  static const char *NodeId ();
 
14985
  /** Get the name of the node. Can be compared with NodeId(). */
12837
14986
  const char *NodeName () const { return NodeId (); }
 
14987
  /** Get the number of sons. */
12838
14988
  int Sons () const { return 2; }
 
14989
  /** Get the n-th son.
 
14990
   *  \param n The index of the son.
 
14991
   *  \return The n-th son or NULL. */
12839
14992
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12840
14993
  CTree *Declarator () const { return sons[1]; }
 
14994
  /** Replace a son.
 
14995
   *  \param old_son The son to replace.
 
14996
   *  \param new_son The new son. */
12841
14997
  void ReplaceSon (CTree *old_son, CTree *new_son) {
12842
14998
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12843
14999
  }
12844
15000
};
12845
15001
 
12846
15002
 
12847
 
#line 12848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15003
#line 15004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12848
15004
} // closed Puma
 
15005
class CCExprResolve;
 
15006
class CExprResolve;
12849
15007
class WinIfExists;
12850
15008
class WinImportHandler;
12851
15009
class WinMacros;
12852
 
class CMatchSyntax;
12853
 
class ExtGnu;
 
15010
class WinAsm;
 
15011
class WinDeclSpecs;
 
15012
class WinMemberExplSpec;
 
15013
class WinTypeKeywords;
 
15014
class WinFriend;
12854
15015
class ExtAC;
12855
15016
class ExtACBuilderCoupling;
12856
15017
class ExtACSyntaxCoupling;
12857
15018
class ExtACTree;
12858
15019
class ExtACKeywords;
12859
 
class WinAsm;
12860
 
class WinDeclSpecs;
12861
 
class WinMemberExplSpec;
12862
 
class WinTypeKeywords;
 
15020
class ExtGnu;
12863
15021
class PragmaOnceUnitState;
12864
15022
class PragmaOnce;
12865
 
class CCExprResolve;
12866
 
class CExprResolve;
 
15023
class CMatchSyntax;
12867
15024
namespace Puma {
12868
15025
 
12869
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15026
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12870
15027
class CT_PtrDeclarator : public CT_Declarator {
12871
 
#line 12872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15028
#line 15029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15029
  friend class ::CCExprResolve;
 
15030
  friend class ::CExprResolve;
12872
15031
  friend class ::WinIfExists;
12873
15032
  friend class ::WinImportHandler;
12874
15033
  friend class ::WinMacros;
12875
 
  friend class ::CMatchSyntax;
12876
 
  friend class ::ExtGnu;
 
15034
  friend class ::WinAsm;
 
15035
  friend class ::WinDeclSpecs;
 
15036
  friend class ::WinMemberExplSpec;
 
15037
  friend class ::WinTypeKeywords;
 
15038
  friend class ::WinFriend;
12877
15039
  friend class ::ExtAC;
12878
15040
  friend class ::ExtACBuilderCoupling;
12879
15041
  friend class ::ExtACSyntaxCoupling;
12880
15042
  friend class ::ExtACTree;
12881
15043
  friend class ::ExtACKeywords;
12882
 
  friend class ::WinAsm;
12883
 
  friend class ::WinDeclSpecs;
12884
 
  friend class ::WinMemberExplSpec;
12885
 
  friend class ::WinTypeKeywords;
 
15044
  friend class ::ExtGnu;
12886
15045
  friend class ::PragmaOnceUnitState;
12887
15046
  friend class ::PragmaOnce;
12888
 
  friend class ::CCExprResolve;
12889
 
  friend class ::CExprResolve;
 
15047
  friend class ::CMatchSyntax;
12890
15048
 
12891
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15049
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12892
15050
 
12893
15051
  CTree *sons[3]; // ptr, cv_quals, declarator
12894
15052
 
12895
15053
public:
12896
15054
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
12897
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
15055
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
12898
15056
  }
 
15057
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12899
15058
  static const char *NodeId ();
 
15059
  /** Get the name of the node. Can be compared with NodeId(). */
12900
15060
  const char *NodeName () const { return NodeId (); }
 
15061
  /** Get the number of sons. */
12901
15062
  int Sons () const { return CTree::Sons (sons, 3); }
 
15063
  /** Get the n-th son.
 
15064
   *  \param n The index of the son.
 
15065
   *  \return The n-th son or NULL. */
12902
15066
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12903
15067
  CTree *Declarator () const { return sons[2]; }
12904
15068
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
15069
  /** Replace a son.
 
15070
   *  \param old_son The son to replace.
 
15071
   *  \param new_son The new son. */
12905
15072
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12906
15073
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12907
15074
  }
12908
15075
};
12909
15076
 
12910
15077
 
12911
 
#line 12912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15078
#line 15079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12912
15079
} // closed Puma
 
15080
class CCExprResolve;
 
15081
class CExprResolve;
12913
15082
class WinIfExists;
12914
15083
class WinImportHandler;
12915
15084
class WinMacros;
12916
 
class CMatchSyntax;
12917
 
class ExtGnu;
 
15085
class WinAsm;
 
15086
class WinDeclSpecs;
 
15087
class WinMemberExplSpec;
 
15088
class WinTypeKeywords;
 
15089
class WinFriend;
12918
15090
class ExtAC;
12919
15091
class ExtACBuilderCoupling;
12920
15092
class ExtACSyntaxCoupling;
12921
15093
class ExtACTree;
12922
15094
class ExtACKeywords;
12923
 
class WinAsm;
12924
 
class WinDeclSpecs;
12925
 
class WinMemberExplSpec;
12926
 
class WinTypeKeywords;
 
15095
class ExtGnu;
12927
15096
class PragmaOnceUnitState;
12928
15097
class PragmaOnce;
12929
 
class CCExprResolve;
12930
 
class CExprResolve;
 
15098
class CMatchSyntax;
12931
15099
namespace Puma {
12932
15100
 
12933
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15101
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12934
15102
class CT_MembPtrDeclarator : public CT_Declarator {
12935
 
#line 12936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15103
#line 15104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15104
  friend class ::CCExprResolve;
 
15105
  friend class ::CExprResolve;
12936
15106
  friend class ::WinIfExists;
12937
15107
  friend class ::WinImportHandler;
12938
15108
  friend class ::WinMacros;
12939
 
  friend class ::CMatchSyntax;
12940
 
  friend class ::ExtGnu;
 
15109
  friend class ::WinAsm;
 
15110
  friend class ::WinDeclSpecs;
 
15111
  friend class ::WinMemberExplSpec;
 
15112
  friend class ::WinTypeKeywords;
 
15113
  friend class ::WinFriend;
12941
15114
  friend class ::ExtAC;
12942
15115
  friend class ::ExtACBuilderCoupling;
12943
15116
  friend class ::ExtACSyntaxCoupling;
12944
15117
  friend class ::ExtACTree;
12945
15118
  friend class ::ExtACKeywords;
12946
 
  friend class ::WinAsm;
12947
 
  friend class ::WinDeclSpecs;
12948
 
  friend class ::WinMemberExplSpec;
12949
 
  friend class ::WinTypeKeywords;
 
15119
  friend class ::ExtGnu;
12950
15120
  friend class ::PragmaOnceUnitState;
12951
15121
  friend class ::PragmaOnce;
12952
 
  friend class ::CCExprResolve;
12953
 
  friend class ::CExprResolve;
 
15122
  friend class ::CMatchSyntax;
12954
15123
 
12955
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15124
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12956
15125
 
12957
15126
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
12958
15127
 
12959
15128
public:
12960
15129
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
12961
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
15130
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
15131
    AddSon (sons[3], q); AddSon (sons[4], d); 
12962
15132
  }
 
15133
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12963
15134
  static const char *NodeId ();
 
15135
  /** Get the name of the node. Can be compared with NodeId(). */
12964
15136
  const char *NodeName () const { return NodeId (); }
 
15137
  /** Get the number of sons. */
12965
15138
  int Sons () const { return CTree::Sons (sons, 5); }
 
15139
  /** Get the n-th son.
 
15140
   *  \param n The index of the son.
 
15141
   *  \return The n-th son or NULL. */
12966
15142
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12967
15143
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
12968
15144
  CTree *Declarator () const { return sons[4]; }
12969
15145
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
15146
  /** Replace a son.
 
15147
   *  \param old_son The son to replace.
 
15148
   *  \param new_son The new son. */
12970
15149
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12971
15150
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12972
15151
  }
12973
15152
};
12974
15153
 
12975
15154
 
12976
 
#line 12977 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15155
#line 15156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
12977
15156
} // closed Puma
 
15157
class CCExprResolve;
 
15158
class CExprResolve;
12978
15159
class WinIfExists;
12979
15160
class WinImportHandler;
12980
15161
class WinMacros;
12981
 
class CMatchSyntax;
12982
 
class ExtGnu;
 
15162
class WinAsm;
 
15163
class WinDeclSpecs;
 
15164
class WinMemberExplSpec;
 
15165
class WinTypeKeywords;
 
15166
class WinFriend;
12983
15167
class ExtAC;
12984
15168
class ExtACBuilderCoupling;
12985
15169
class ExtACSyntaxCoupling;
12986
15170
class ExtACTree;
12987
15171
class ExtACKeywords;
12988
 
class WinAsm;
12989
 
class WinDeclSpecs;
12990
 
class WinMemberExplSpec;
12991
 
class WinTypeKeywords;
 
15172
class ExtGnu;
12992
15173
class PragmaOnceUnitState;
12993
15174
class PragmaOnce;
12994
 
class CCExprResolve;
12995
 
class CExprResolve;
 
15175
class CMatchSyntax;
12996
15176
namespace Puma {
12997
15177
 
12998
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15178
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12999
15179
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
13000
 
#line 13001 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15180
#line 15181 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15181
  friend class ::CCExprResolve;
 
15182
  friend class ::CExprResolve;
13001
15183
  friend class ::WinIfExists;
13002
15184
  friend class ::WinImportHandler;
13003
15185
  friend class ::WinMacros;
13004
 
  friend class ::CMatchSyntax;
13005
 
  friend class ::ExtGnu;
 
15186
  friend class ::WinAsm;
 
15187
  friend class ::WinDeclSpecs;
 
15188
  friend class ::WinMemberExplSpec;
 
15189
  friend class ::WinTypeKeywords;
 
15190
  friend class ::WinFriend;
13006
15191
  friend class ::ExtAC;
13007
15192
  friend class ::ExtACBuilderCoupling;
13008
15193
  friend class ::ExtACSyntaxCoupling;
13009
15194
  friend class ::ExtACTree;
13010
15195
  friend class ::ExtACKeywords;
13011
 
  friend class ::WinAsm;
13012
 
  friend class ::WinDeclSpecs;
13013
 
  friend class ::WinMemberExplSpec;
13014
 
  friend class ::WinTypeKeywords;
 
15196
  friend class ::ExtGnu;
13015
15197
  friend class ::PragmaOnceUnitState;
13016
15198
  friend class ::PragmaOnce;
13017
 
  friend class ::CCExprResolve;
13018
 
  friend class ::CExprResolve;
 
15199
  friend class ::CMatchSyntax;
13019
15200
 
13020
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15201
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13021
15202
 
13022
15203
  CTree *sons[3]; // declarator, colon, expr
13023
15204
 
13024
15205
public:
13025
15206
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
13026
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
15207
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
13027
15208
  }
 
15209
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13028
15210
  static const char *NodeId ();
 
15211
  /** Get the name of the node. Can be compared with NodeId(). */
13029
15212
  const char *NodeName () const { return NodeId (); }
 
15213
  /** Get the number of sons. */
13030
15214
  int Sons () const { return CTree::Sons (sons, 3); }
 
15215
  /** Get the n-th son.
 
15216
   *  \param n The index of the son.
 
15217
   *  \return The n-th son or NULL. */
13031
15218
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13032
15219
  CTree *Declarator () const { return sons[0]; }
13033
15220
  CTree *Expr () const { return sons[2]; }
13034
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
15221
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
13035
15222
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
15223
  /** Replace a son.
 
15224
   *  \param old_son The son to replace.
 
15225
   *  \param new_son The new son. */
13036
15226
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13037
15227
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13038
15228
  }
13045
15235
/*****************************************************************************/
13046
15236
 
13047
15237
 
13048
 
#line 13049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15238
#line 15239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13049
15239
} // closed Puma
 
15240
class CCExprResolve;
 
15241
class CExprResolve;
13050
15242
class WinIfExists;
13051
15243
class WinImportHandler;
13052
15244
class WinMacros;
13053
 
class CMatchSyntax;
13054
 
class ExtGnu;
 
15245
class WinAsm;
 
15246
class WinDeclSpecs;
 
15247
class WinMemberExplSpec;
 
15248
class WinTypeKeywords;
 
15249
class WinFriend;
13055
15250
class ExtAC;
13056
15251
class ExtACBuilderCoupling;
13057
15252
class ExtACSyntaxCoupling;
13058
15253
class ExtACTree;
13059
15254
class ExtACKeywords;
13060
 
class WinAsm;
13061
 
class WinDeclSpecs;
13062
 
class WinMemberExplSpec;
13063
 
class WinTypeKeywords;
 
15255
class ExtGnu;
13064
15256
class PragmaOnceUnitState;
13065
15257
class PragmaOnce;
13066
 
class CCExprResolve;
13067
 
class CExprResolve;
 
15258
class CMatchSyntax;
13068
15259
namespace Puma {
13069
15260
 
13070
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15261
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13071
15262
class CT_Statement : public CTree {
13072
 
#line 13073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15263
#line 15264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15264
  friend class ::CCExprResolve;
 
15265
  friend class ::CExprResolve;
13073
15266
  friend class ::WinIfExists;
13074
15267
  friend class ::WinImportHandler;
13075
15268
  friend class ::WinMacros;
13076
 
  friend class ::CMatchSyntax;
13077
 
  friend class ::ExtGnu;
 
15269
  friend class ::WinAsm;
 
15270
  friend class ::WinDeclSpecs;
 
15271
  friend class ::WinMemberExplSpec;
 
15272
  friend class ::WinTypeKeywords;
 
15273
  friend class ::WinFriend;
13078
15274
  friend class ::ExtAC;
13079
15275
  friend class ::ExtACBuilderCoupling;
13080
15276
  friend class ::ExtACSyntaxCoupling;
13081
15277
  friend class ::ExtACTree;
13082
15278
  friend class ::ExtACKeywords;
13083
 
  friend class ::WinAsm;
13084
 
  friend class ::WinDeclSpecs;
13085
 
  friend class ::WinMemberExplSpec;
13086
 
  friend class ::WinTypeKeywords;
 
15279
  friend class ::ExtGnu;
13087
15280
  friend class ::PragmaOnceUnitState;
13088
15281
  friend class ::PragmaOnce;
13089
 
  friend class ::CCExprResolve;
13090
 
  friend class ::CExprResolve;
 
15282
  friend class ::CMatchSyntax;
13091
15283
 
13092
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15284
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13093
15285
 
13094
15286
protected:
13095
15287
  CT_Statement () {}
 
15288
  virtual CT_Statement *IsStatement () { return this; }
13096
15289
};
13097
15290
 
13098
15291
 
13099
 
#line 13100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15292
#line 15293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13100
15293
} // closed Puma
 
15294
class CCExprResolve;
 
15295
class CExprResolve;
13101
15296
class WinIfExists;
13102
15297
class WinImportHandler;
13103
15298
class WinMacros;
13104
 
class CMatchSyntax;
13105
 
class ExtGnu;
 
15299
class WinAsm;
 
15300
class WinDeclSpecs;
 
15301
class WinMemberExplSpec;
 
15302
class WinTypeKeywords;
 
15303
class WinFriend;
13106
15304
class ExtAC;
13107
15305
class ExtACBuilderCoupling;
13108
15306
class ExtACSyntaxCoupling;
13109
15307
class ExtACTree;
13110
15308
class ExtACKeywords;
13111
 
class WinAsm;
13112
 
class WinDeclSpecs;
13113
 
class WinMemberExplSpec;
13114
 
class WinTypeKeywords;
 
15309
class ExtGnu;
13115
15310
class PragmaOnceUnitState;
13116
15311
class PragmaOnce;
13117
 
class CCExprResolve;
13118
 
class CExprResolve;
 
15312
class CMatchSyntax;
13119
15313
namespace Puma {
13120
15314
 
13121
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15315
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13122
15316
class CT_LabelStmt : public CT_Statement {
13123
 
#line 13124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15317
#line 15318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15318
  friend class ::CCExprResolve;
 
15319
  friend class ::CExprResolve;
13124
15320
  friend class ::WinIfExists;
13125
15321
  friend class ::WinImportHandler;
13126
15322
  friend class ::WinMacros;
13127
 
  friend class ::CMatchSyntax;
13128
 
  friend class ::ExtGnu;
 
15323
  friend class ::WinAsm;
 
15324
  friend class ::WinDeclSpecs;
 
15325
  friend class ::WinMemberExplSpec;
 
15326
  friend class ::WinTypeKeywords;
 
15327
  friend class ::WinFriend;
13129
15328
  friend class ::ExtAC;
13130
15329
  friend class ::ExtACBuilderCoupling;
13131
15330
  friend class ::ExtACSyntaxCoupling;
13132
15331
  friend class ::ExtACTree;
13133
15332
  friend class ::ExtACKeywords;
13134
 
  friend class ::WinAsm;
13135
 
  friend class ::WinDeclSpecs;
13136
 
  friend class ::WinMemberExplSpec;
13137
 
  friend class ::WinTypeKeywords;
 
15333
  friend class ::ExtGnu;
13138
15334
  friend class ::PragmaOnceUnitState;
13139
15335
  friend class ::PragmaOnce;
13140
 
  friend class ::CCExprResolve;
13141
 
  friend class ::CExprResolve;
 
15336
  friend class ::CMatchSyntax;
13142
15337
 
13143
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15338
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13144
15339
 
13145
15340
  CTree *sons[3]; // id, colon, stmt
13146
15341
 
13147
15342
public:
13148
15343
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
13149
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
15344
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
13150
15345
  }
 
15346
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13151
15347
  static const char *NodeId ();
 
15348
  /** Get the name of the node. Can be compared with NodeId(). */
13152
15349
  const char *NodeName () const { return NodeId (); }
 
15350
  /** Get the number of sons. */
13153
15351
  int Sons () const { return 3; }
 
15352
  /** Get the n-th son.
 
15353
   *  \param n The index of the son.
 
15354
   *  \return The n-th son or NULL. */
13154
15355
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13155
15356
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
13156
15357
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
15358
  /** Replace a son.
 
15359
   *  \param old_son The son to replace.
 
15360
   *  \param new_son The new son. */
13157
15361
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13158
15362
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13159
15363
  }
13160
15364
};
13161
15365
 
13162
15366
 
13163
 
#line 13164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15367
#line 15368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13164
15368
} // closed Puma
 
15369
class CCExprResolve;
 
15370
class CExprResolve;
13165
15371
class WinIfExists;
13166
15372
class WinImportHandler;
13167
15373
class WinMacros;
13168
 
class CMatchSyntax;
13169
 
class ExtGnu;
 
15374
class WinAsm;
 
15375
class WinDeclSpecs;
 
15376
class WinMemberExplSpec;
 
15377
class WinTypeKeywords;
 
15378
class WinFriend;
13170
15379
class ExtAC;
13171
15380
class ExtACBuilderCoupling;
13172
15381
class ExtACSyntaxCoupling;
13173
15382
class ExtACTree;
13174
15383
class ExtACKeywords;
13175
 
class WinAsm;
13176
 
class WinDeclSpecs;
13177
 
class WinMemberExplSpec;
13178
 
class WinTypeKeywords;
 
15384
class ExtGnu;
13179
15385
class PragmaOnceUnitState;
13180
15386
class PragmaOnce;
13181
 
class CCExprResolve;
13182
 
class CExprResolve;
 
15387
class CMatchSyntax;
13183
15388
namespace Puma {
13184
15389
 
13185
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15390
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13186
15391
class CT_DefaultStmt : public CT_Statement {
13187
 
#line 13188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15392
#line 15393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15393
  friend class ::CCExprResolve;
 
15394
  friend class ::CExprResolve;
13188
15395
  friend class ::WinIfExists;
13189
15396
  friend class ::WinImportHandler;
13190
15397
  friend class ::WinMacros;
13191
 
  friend class ::CMatchSyntax;
13192
 
  friend class ::ExtGnu;
 
15398
  friend class ::WinAsm;
 
15399
  friend class ::WinDeclSpecs;
 
15400
  friend class ::WinMemberExplSpec;
 
15401
  friend class ::WinTypeKeywords;
 
15402
  friend class ::WinFriend;
13193
15403
  friend class ::ExtAC;
13194
15404
  friend class ::ExtACBuilderCoupling;
13195
15405
  friend class ::ExtACSyntaxCoupling;
13196
15406
  friend class ::ExtACTree;
13197
15407
  friend class ::ExtACKeywords;
13198
 
  friend class ::WinAsm;
13199
 
  friend class ::WinDeclSpecs;
13200
 
  friend class ::WinMemberExplSpec;
13201
 
  friend class ::WinTypeKeywords;
 
15408
  friend class ::ExtGnu;
13202
15409
  friend class ::PragmaOnceUnitState;
13203
15410
  friend class ::PragmaOnce;
13204
 
  friend class ::CCExprResolve;
13205
 
  friend class ::CExprResolve;
 
15411
  friend class ::CMatchSyntax;
13206
15412
 
13207
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15413
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13208
15414
 
13209
15415
  CTree *sons[3]; // keyword, colon, stmt
13210
15416
 
13211
15417
public:
13212
15418
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
13213
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
15419
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
13214
15420
  }
 
15421
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13215
15422
  static const char *NodeId ();
 
15423
  /** Get the name of the node. Can be compared with NodeId(). */
13216
15424
  const char *NodeName () const { return NodeId (); }
 
15425
  /** Get the number of sons. */
13217
15426
  int Sons () const { return 3; }
 
15427
  /** Get the n-th son.
 
15428
   *  \param n The index of the son.
 
15429
   *  \return The n-th son or NULL. */
13218
15430
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13219
15431
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
15432
  /** Replace a son.
 
15433
   *  \param old_son The son to replace.
 
15434
   *  \param new_son The new son. */
13220
15435
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13221
15436
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13222
15437
  }
13223
15438
};
13224
15439
 
13225
15440
 
13226
 
#line 13227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15441
#line 15442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13227
15442
} // closed Puma
 
15443
class CCExprResolve;
 
15444
class CExprResolve;
13228
15445
class WinIfExists;
13229
15446
class WinImportHandler;
13230
15447
class WinMacros;
13231
 
class CMatchSyntax;
13232
 
class ExtGnu;
 
15448
class WinAsm;
 
15449
class WinDeclSpecs;
 
15450
class WinMemberExplSpec;
 
15451
class WinTypeKeywords;
 
15452
class WinFriend;
13233
15453
class ExtAC;
13234
15454
class ExtACBuilderCoupling;
13235
15455
class ExtACSyntaxCoupling;
13236
15456
class ExtACTree;
13237
15457
class ExtACKeywords;
13238
 
class WinAsm;
13239
 
class WinDeclSpecs;
13240
 
class WinMemberExplSpec;
13241
 
class WinTypeKeywords;
 
15458
class ExtGnu;
13242
15459
class PragmaOnceUnitState;
13243
15460
class PragmaOnce;
13244
 
class CCExprResolve;
13245
 
class CExprResolve;
 
15461
class CMatchSyntax;
13246
15462
namespace Puma {
13247
15463
 
13248
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15464
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13249
15465
class CT_TryStmt : public CT_Statement {
13250
 
#line 13251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15466
#line 15467 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15467
  friend class ::CCExprResolve;
 
15468
  friend class ::CExprResolve;
13251
15469
  friend class ::WinIfExists;
13252
15470
  friend class ::WinImportHandler;
13253
15471
  friend class ::WinMacros;
13254
 
  friend class ::CMatchSyntax;
13255
 
  friend class ::ExtGnu;
 
15472
  friend class ::WinAsm;
 
15473
  friend class ::WinDeclSpecs;
 
15474
  friend class ::WinMemberExplSpec;
 
15475
  friend class ::WinTypeKeywords;
 
15476
  friend class ::WinFriend;
13256
15477
  friend class ::ExtAC;
13257
15478
  friend class ::ExtACBuilderCoupling;
13258
15479
  friend class ::ExtACSyntaxCoupling;
13259
15480
  friend class ::ExtACTree;
13260
15481
  friend class ::ExtACKeywords;
13261
 
  friend class ::WinAsm;
13262
 
  friend class ::WinDeclSpecs;
13263
 
  friend class ::WinMemberExplSpec;
13264
 
  friend class ::WinTypeKeywords;
 
15482
  friend class ::ExtGnu;
13265
15483
  friend class ::PragmaOnceUnitState;
13266
15484
  friend class ::PragmaOnce;
13267
 
  friend class ::CCExprResolve;
13268
 
  friend class ::CExprResolve;
 
15485
  friend class ::CMatchSyntax;
13269
15486
 
13270
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15487
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13271
15488
 
13272
15489
  CTree *sons[3]; // try, stmt, handlers
13273
15490
 
13274
15491
public:
13275
15492
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
13276
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
15493
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
13277
15494
  }
 
15495
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13278
15496
  static const char *NodeId ();
 
15497
  /** Get the name of the node. Can be compared with NodeId(). */
13279
15498
  const char *NodeName () const { return NodeId (); }
 
15499
  /** Get the number of sons. */
13280
15500
  int Sons () const { return 3; }
 
15501
  /** Get the n-th son.
 
15502
   *  \param n The index of the son.
 
15503
   *  \return The n-th son or NULL. */
13281
15504
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13282
15505
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
13283
15506
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
15507
  /** Replace a son.
 
15508
   *  \param old_son The son to replace.
 
15509
   *  \param new_son The new son. */
13284
15510
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13285
15511
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13286
15512
  }
13287
15513
};
13288
15514
 
13289
15515
 
13290
 
#line 13291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15516
#line 15517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13291
15517
} // closed Puma
 
15518
class CCExprResolve;
 
15519
class CExprResolve;
13292
15520
class WinIfExists;
13293
15521
class WinImportHandler;
13294
15522
class WinMacros;
13295
 
class CMatchSyntax;
13296
 
class ExtGnu;
 
15523
class WinAsm;
 
15524
class WinDeclSpecs;
 
15525
class WinMemberExplSpec;
 
15526
class WinTypeKeywords;
 
15527
class WinFriend;
13297
15528
class ExtAC;
13298
15529
class ExtACBuilderCoupling;
13299
15530
class ExtACSyntaxCoupling;
13300
15531
class ExtACTree;
13301
15532
class ExtACKeywords;
13302
 
class WinAsm;
13303
 
class WinDeclSpecs;
13304
 
class WinMemberExplSpec;
13305
 
class WinTypeKeywords;
 
15533
class ExtGnu;
13306
15534
class PragmaOnceUnitState;
13307
15535
class PragmaOnce;
13308
 
class CCExprResolve;
13309
 
class CExprResolve;
 
15536
class CMatchSyntax;
13310
15537
namespace Puma {
13311
15538
 
13312
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15539
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13313
15540
class CT_CaseStmt : public CT_Statement {
13314
 
#line 13315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15541
#line 15542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15542
  friend class ::CCExprResolve;
 
15543
  friend class ::CExprResolve;
13315
15544
  friend class ::WinIfExists;
13316
15545
  friend class ::WinImportHandler;
13317
15546
  friend class ::WinMacros;
13318
 
  friend class ::CMatchSyntax;
13319
 
  friend class ::ExtGnu;
 
15547
  friend class ::WinAsm;
 
15548
  friend class ::WinDeclSpecs;
 
15549
  friend class ::WinMemberExplSpec;
 
15550
  friend class ::WinTypeKeywords;
 
15551
  friend class ::WinFriend;
13320
15552
  friend class ::ExtAC;
13321
15553
  friend class ::ExtACBuilderCoupling;
13322
15554
  friend class ::ExtACSyntaxCoupling;
13323
15555
  friend class ::ExtACTree;
13324
15556
  friend class ::ExtACKeywords;
13325
 
  friend class ::WinAsm;
13326
 
  friend class ::WinDeclSpecs;
13327
 
  friend class ::WinMemberExplSpec;
13328
 
  friend class ::WinTypeKeywords;
 
15557
  friend class ::ExtGnu;
13329
15558
  friend class ::PragmaOnceUnitState;
13330
15559
  friend class ::PragmaOnce;
13331
 
  friend class ::CCExprResolve;
13332
 
  friend class ::CExprResolve;
 
15560
  friend class ::CMatchSyntax;
13333
15561
 
13334
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15562
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13335
15563
 
13336
15564
  CTree *sons[4]; // keyword, expr, colon, stmt
13337
15565
 
13338
15566
public:
13339
15567
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
13340
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
15568
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
15569
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
13341
15570
  }
 
15571
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13342
15572
  static const char *NodeId ();
 
15573
  /** Get the name of the node. Can be compared with NodeId(). */
13343
15574
  const char *NodeName () const { return NodeId (); }
 
15575
  /** Get the number of sons. */
13344
15576
  int Sons () const { return 4; }
 
15577
  /** Get the n-th son.
 
15578
   *  \param n The index of the son.
 
15579
   *  \return The n-th son or NULL. */
13345
15580
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13346
15581
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
13347
15582
  CTree *Expr () const { return sons[1]; }
 
15583
  /** Replace a son.
 
15584
   *  \param old_son The son to replace.
 
15585
   *  \param new_son The new son. */
13348
15586
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13349
15587
    CTree::ReplaceSon (sons, 4, old_son, new_son);
13350
15588
  }
13351
15589
};
13352
15590
 
13353
15591
 
13354
 
#line 13355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15592
#line 15593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13355
15593
} // closed Puma
 
15594
class CCExprResolve;
 
15595
class CExprResolve;
13356
15596
class WinIfExists;
13357
15597
class WinImportHandler;
13358
15598
class WinMacros;
13359
 
class CMatchSyntax;
13360
 
class ExtGnu;
 
15599
class WinAsm;
 
15600
class WinDeclSpecs;
 
15601
class WinMemberExplSpec;
 
15602
class WinTypeKeywords;
 
15603
class WinFriend;
13361
15604
class ExtAC;
13362
15605
class ExtACBuilderCoupling;
13363
15606
class ExtACSyntaxCoupling;
13364
15607
class ExtACTree;
13365
15608
class ExtACKeywords;
13366
 
class WinAsm;
13367
 
class WinDeclSpecs;
13368
 
class WinMemberExplSpec;
13369
 
class WinTypeKeywords;
 
15609
class ExtGnu;
13370
15610
class PragmaOnceUnitState;
13371
15611
class PragmaOnce;
13372
 
class CCExprResolve;
13373
 
class CExprResolve;
 
15612
class CMatchSyntax;
13374
15613
namespace Puma {
13375
15614
 
13376
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15615
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13377
15616
class CT_ExprStmt : public CT_Statement {
13378
 
#line 13379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15617
#line 15618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15618
  friend class ::CCExprResolve;
 
15619
  friend class ::CExprResolve;
13379
15620
  friend class ::WinIfExists;
13380
15621
  friend class ::WinImportHandler;
13381
15622
  friend class ::WinMacros;
13382
 
  friend class ::CMatchSyntax;
13383
 
  friend class ::ExtGnu;
 
15623
  friend class ::WinAsm;
 
15624
  friend class ::WinDeclSpecs;
 
15625
  friend class ::WinMemberExplSpec;
 
15626
  friend class ::WinTypeKeywords;
 
15627
  friend class ::WinFriend;
13384
15628
  friend class ::ExtAC;
13385
15629
  friend class ::ExtACBuilderCoupling;
13386
15630
  friend class ::ExtACSyntaxCoupling;
13387
15631
  friend class ::ExtACTree;
13388
15632
  friend class ::ExtACKeywords;
13389
 
  friend class ::WinAsm;
13390
 
  friend class ::WinDeclSpecs;
13391
 
  friend class ::WinMemberExplSpec;
13392
 
  friend class ::WinTypeKeywords;
 
15633
  friend class ::ExtGnu;
13393
15634
  friend class ::PragmaOnceUnitState;
13394
15635
  friend class ::PragmaOnce;
13395
 
  friend class ::CCExprResolve;
13396
 
  friend class ::CExprResolve;
 
15636
  friend class ::CMatchSyntax;
13397
15637
 
13398
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15638
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13399
15639
 
13400
15640
  CTree *sons[2]; // expr, semi_colon
13401
15641
 
13402
15642
public:
13403
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
15643
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
15644
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13404
15645
  static const char *NodeId ();
 
15646
  /** Get the name of the node. Can be compared with NodeId(). */
13405
15647
  const char *NodeName () const { return NodeId (); }
 
15648
  /** Get the number of sons. */
13406
15649
  int Sons () const { return CTree::Sons (sons, 2); }
 
15650
  /** Get the n-th son.
 
15651
   *  \param n The index of the son.
 
15652
   *  \return The n-th son or NULL. */
13407
15653
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13408
15654
  CTree *Expr () const { return sons[0]; }
 
15655
  /** Replace a son.
 
15656
   *  \param old_son The son to replace.
 
15657
   *  \param new_son The new son. */
13409
15658
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13410
15659
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13411
15660
  }
13412
15661
};
13413
15662
 
13414
15663
 
13415
 
#line 13416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15664
#line 15665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13416
15665
} // closed Puma
 
15666
class CCExprResolve;
 
15667
class CExprResolve;
13417
15668
class WinIfExists;
13418
15669
class WinImportHandler;
13419
15670
class WinMacros;
13420
 
class CMatchSyntax;
13421
 
class ExtGnu;
 
15671
class WinAsm;
 
15672
class WinDeclSpecs;
 
15673
class WinMemberExplSpec;
 
15674
class WinTypeKeywords;
 
15675
class WinFriend;
13422
15676
class ExtAC;
13423
15677
class ExtACBuilderCoupling;
13424
15678
class ExtACSyntaxCoupling;
13425
15679
class ExtACTree;
13426
15680
class ExtACKeywords;
13427
 
class WinAsm;
13428
 
class WinDeclSpecs;
13429
 
class WinMemberExplSpec;
13430
 
class WinTypeKeywords;
 
15681
class ExtGnu;
13431
15682
class PragmaOnceUnitState;
13432
15683
class PragmaOnce;
13433
 
class CCExprResolve;
13434
 
class CExprResolve;
 
15684
class CMatchSyntax;
13435
15685
namespace Puma {
13436
15686
 
13437
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15687
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13438
15688
class CT_DeclStmt : public CT_Statement {
13439
 
#line 13440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15689
#line 15690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15690
  friend class ::CCExprResolve;
 
15691
  friend class ::CExprResolve;
13440
15692
  friend class ::WinIfExists;
13441
15693
  friend class ::WinImportHandler;
13442
15694
  friend class ::WinMacros;
13443
 
  friend class ::CMatchSyntax;
13444
 
  friend class ::ExtGnu;
 
15695
  friend class ::WinAsm;
 
15696
  friend class ::WinDeclSpecs;
 
15697
  friend class ::WinMemberExplSpec;
 
15698
  friend class ::WinTypeKeywords;
 
15699
  friend class ::WinFriend;
13445
15700
  friend class ::ExtAC;
13446
15701
  friend class ::ExtACBuilderCoupling;
13447
15702
  friend class ::ExtACSyntaxCoupling;
13448
15703
  friend class ::ExtACTree;
13449
15704
  friend class ::ExtACKeywords;
13450
 
  friend class ::WinAsm;
13451
 
  friend class ::WinDeclSpecs;
13452
 
  friend class ::WinMemberExplSpec;
13453
 
  friend class ::WinTypeKeywords;
 
15705
  friend class ::ExtGnu;
13454
15706
  friend class ::PragmaOnceUnitState;
13455
15707
  friend class ::PragmaOnce;
13456
 
  friend class ::CCExprResolve;
13457
 
  friend class ::CExprResolve;
 
15708
  friend class ::CMatchSyntax;
13458
15709
 
13459
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15710
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13460
15711
 
13461
15712
  CTree *_decl;
13462
15713
 
13463
15714
public:
13464
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
15715
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
15716
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13465
15717
  static const char *NodeId ();
 
15718
  /** Get the name of the node. Can be compared with NodeId(). */
13466
15719
  const char *NodeName () const { return NodeId (); }
 
15720
  /** Get the number of sons. */
13467
15721
  int Sons () const { return 1; }
 
15722
  /** Get the n-th son.
 
15723
   *  \param n The index of the son.
 
15724
   *  \return The n-th son or NULL. */
13468
15725
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
15726
  /** Replace a son.
 
15727
   *  \param old_son The son to replace.
 
15728
   *  \param new_son The new son. */
13469
15729
  void ReplaceSon (CTree *old_son, CTree *new_son) 
13470
 
   { if (old_son == _decl) _decl = new_son; }
 
15730
   { CTree::ReplaceSon (_decl, old_son, new_son); }
13471
15731
};
13472
15732
 
13473
15733
 
13474
 
#line 13475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15734
#line 15735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13475
15735
} // closed Puma
 
15736
class CCExprResolve;
 
15737
class CExprResolve;
13476
15738
class WinIfExists;
13477
15739
class WinImportHandler;
13478
15740
class WinMacros;
13479
 
class CMatchSyntax;
13480
 
class ExtGnu;
 
15741
class WinAsm;
 
15742
class WinDeclSpecs;
 
15743
class WinMemberExplSpec;
 
15744
class WinTypeKeywords;
 
15745
class WinFriend;
13481
15746
class ExtAC;
13482
15747
class ExtACBuilderCoupling;
13483
15748
class ExtACSyntaxCoupling;
13484
15749
class ExtACTree;
13485
15750
class ExtACKeywords;
13486
 
class WinAsm;
13487
 
class WinDeclSpecs;
13488
 
class WinMemberExplSpec;
13489
 
class WinTypeKeywords;
 
15751
class ExtGnu;
13490
15752
class PragmaOnceUnitState;
13491
15753
class PragmaOnce;
13492
 
class CCExprResolve;
13493
 
class CExprResolve;
 
15754
class CMatchSyntax;
13494
15755
namespace Puma {
13495
15756
 
13496
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15757
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13497
15758
class CT_SwitchStmt : public CT_Statement, public CSemScope {
13498
 
#line 13499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15759
#line 15760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15760
  friend class ::CCExprResolve;
 
15761
  friend class ::CExprResolve;
13499
15762
  friend class ::WinIfExists;
13500
15763
  friend class ::WinImportHandler;
13501
15764
  friend class ::WinMacros;
13502
 
  friend class ::CMatchSyntax;
13503
 
  friend class ::ExtGnu;
 
15765
  friend class ::WinAsm;
 
15766
  friend class ::WinDeclSpecs;
 
15767
  friend class ::WinMemberExplSpec;
 
15768
  friend class ::WinTypeKeywords;
 
15769
  friend class ::WinFriend;
13504
15770
  friend class ::ExtAC;
13505
15771
  friend class ::ExtACBuilderCoupling;
13506
15772
  friend class ::ExtACSyntaxCoupling;
13507
15773
  friend class ::ExtACTree;
13508
15774
  friend class ::ExtACKeywords;
13509
 
  friend class ::WinAsm;
13510
 
  friend class ::WinDeclSpecs;
13511
 
  friend class ::WinMemberExplSpec;
13512
 
  friend class ::WinTypeKeywords;
 
15775
  friend class ::ExtGnu;
13513
15776
  friend class ::PragmaOnceUnitState;
13514
15777
  friend class ::PragmaOnce;
13515
 
  friend class ::CCExprResolve;
13516
 
  friend class ::CExprResolve;
 
15778
  friend class ::CMatchSyntax;
13517
15779
 
13518
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15780
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13519
15781
 
13520
15782
  CTree *sons[5]; // keyword, open, cond, close, stmt
13521
15783
 
13522
15784
public:
13523
15785
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
13524
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
15786
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15787
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
13525
15788
  }
 
15789
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13526
15790
  static const char *NodeId ();
 
15791
  /** Get the name of the node. Can be compared with NodeId(). */
13527
15792
  const char *NodeName () const { return NodeId (); }
 
15793
  /** Get the number of sons. */
13528
15794
  int Sons () const { return 5; }
 
15795
  /** Get the n-th son.
 
15796
   *  \param n The index of the son.
 
15797
   *  \return The n-th son or NULL. */
13529
15798
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
13530
15799
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
13531
15800
  CTree *Condition () const { return sons[2]; }
 
15801
  /** Replace a son.
 
15802
   *  \param old_son The son to replace.
 
15803
   *  \param new_son The new son. */
13532
15804
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13533
15805
    CTree::ReplaceSon (sons, 5, old_son, new_son);
13534
15806
  }
 
15807
  CSemScope *SemScope () const { return (CSemScope*)this; }
13535
15808
};
13536
15809
 
13537
15810
 
13538
 
#line 13539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15811
#line 15812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13539
15812
} // closed Puma
 
15813
class CCExprResolve;
 
15814
class CExprResolve;
13540
15815
class WinIfExists;
13541
15816
class WinImportHandler;
13542
15817
class WinMacros;
13543
 
class CMatchSyntax;
13544
 
class ExtGnu;
 
15818
class WinAsm;
 
15819
class WinDeclSpecs;
 
15820
class WinMemberExplSpec;
 
15821
class WinTypeKeywords;
 
15822
class WinFriend;
13545
15823
class ExtAC;
13546
15824
class ExtACBuilderCoupling;
13547
15825
class ExtACSyntaxCoupling;
13548
15826
class ExtACTree;
13549
15827
class ExtACKeywords;
13550
 
class WinAsm;
13551
 
class WinDeclSpecs;
13552
 
class WinMemberExplSpec;
13553
 
class WinTypeKeywords;
 
15828
class ExtGnu;
13554
15829
class PragmaOnceUnitState;
13555
15830
class PragmaOnce;
13556
 
class CCExprResolve;
13557
 
class CExprResolve;
 
15831
class CMatchSyntax;
13558
15832
namespace Puma {
13559
15833
 
13560
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15834
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13561
15835
class CT_IfStmt : public CT_Statement, public CSemScope {
13562
 
#line 13563 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15836
#line 15837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15837
  friend class ::CCExprResolve;
 
15838
  friend class ::CExprResolve;
13563
15839
  friend class ::WinIfExists;
13564
15840
  friend class ::WinImportHandler;
13565
15841
  friend class ::WinMacros;
13566
 
  friend class ::CMatchSyntax;
13567
 
  friend class ::ExtGnu;
 
15842
  friend class ::WinAsm;
 
15843
  friend class ::WinDeclSpecs;
 
15844
  friend class ::WinMemberExplSpec;
 
15845
  friend class ::WinTypeKeywords;
 
15846
  friend class ::WinFriend;
13568
15847
  friend class ::ExtAC;
13569
15848
  friend class ::ExtACBuilderCoupling;
13570
15849
  friend class ::ExtACSyntaxCoupling;
13571
15850
  friend class ::ExtACTree;
13572
15851
  friend class ::ExtACKeywords;
13573
 
  friend class ::WinAsm;
13574
 
  friend class ::WinDeclSpecs;
13575
 
  friend class ::WinMemberExplSpec;
13576
 
  friend class ::WinTypeKeywords;
 
15852
  friend class ::ExtGnu;
13577
15853
  friend class ::PragmaOnceUnitState;
13578
15854
  friend class ::PragmaOnce;
13579
 
  friend class ::CCExprResolve;
13580
 
  friend class ::CExprResolve;
 
15855
  friend class ::CMatchSyntax;
13581
15856
 
13582
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15857
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13583
15858
 
13584
15859
  CTree *sons[5]; // keyword, open, cond, close, stmt
13585
15860
 
13586
15861
public:
13587
15862
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
13588
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
15863
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15864
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
13589
15865
  }
 
15866
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13590
15867
  static const char *NodeId ();
 
15868
  /** Get the name of the node. Can be compared with NodeId(). */
13591
15869
  const char *NodeName () const { return NodeId (); }
 
15870
  /** Get the number of sons. */
13592
15871
  int Sons () const { return 5; }
 
15872
  /** Get the n-th son.
 
15873
   *  \param n The index of the son.
 
15874
   *  \return The n-th son or NULL. */
13593
15875
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
13594
15876
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
13595
15877
  CTree *Condition () const { return sons[2]; }
 
15878
  /** Replace a son.
 
15879
   *  \param old_son The son to replace.
 
15880
   *  \param new_son The new son. */
13596
15881
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13597
15882
    CTree::ReplaceSon (sons, 5, old_son, new_son);
13598
15883
  }
 
15884
  CSemScope *SemScope () const { return (CSemScope*)this; }
13599
15885
};
13600
15886
 
13601
15887
 
13602
 
#line 13603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15888
#line 15889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13603
15889
} // closed Puma
 
15890
class CCExprResolve;
 
15891
class CExprResolve;
13604
15892
class WinIfExists;
13605
15893
class WinImportHandler;
13606
15894
class WinMacros;
13607
 
class CMatchSyntax;
13608
 
class ExtGnu;
 
15895
class WinAsm;
 
15896
class WinDeclSpecs;
 
15897
class WinMemberExplSpec;
 
15898
class WinTypeKeywords;
 
15899
class WinFriend;
13609
15900
class ExtAC;
13610
15901
class ExtACBuilderCoupling;
13611
15902
class ExtACSyntaxCoupling;
13612
15903
class ExtACTree;
13613
15904
class ExtACKeywords;
13614
 
class WinAsm;
13615
 
class WinDeclSpecs;
13616
 
class WinMemberExplSpec;
13617
 
class WinTypeKeywords;
 
15905
class ExtGnu;
13618
15906
class PragmaOnceUnitState;
13619
15907
class PragmaOnce;
13620
 
class CCExprResolve;
13621
 
class CExprResolve;
 
15908
class CMatchSyntax;
13622
15909
namespace Puma {
13623
15910
 
13624
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15911
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13625
15912
class CT_IfElseStmt : public CT_Statement, public CSemScope {
13626
 
#line 13627 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15913
#line 15914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15914
  friend class ::CCExprResolve;
 
15915
  friend class ::CExprResolve;
13627
15916
  friend class ::WinIfExists;
13628
15917
  friend class ::WinImportHandler;
13629
15918
  friend class ::WinMacros;
13630
 
  friend class ::CMatchSyntax;
13631
 
  friend class ::ExtGnu;
 
15919
  friend class ::WinAsm;
 
15920
  friend class ::WinDeclSpecs;
 
15921
  friend class ::WinMemberExplSpec;
 
15922
  friend class ::WinTypeKeywords;
 
15923
  friend class ::WinFriend;
13632
15924
  friend class ::ExtAC;
13633
15925
  friend class ::ExtACBuilderCoupling;
13634
15926
  friend class ::ExtACSyntaxCoupling;
13635
15927
  friend class ::ExtACTree;
13636
15928
  friend class ::ExtACKeywords;
13637
 
  friend class ::WinAsm;
13638
 
  friend class ::WinDeclSpecs;
13639
 
  friend class ::WinMemberExplSpec;
13640
 
  friend class ::WinTypeKeywords;
 
15929
  friend class ::ExtGnu;
13641
15930
  friend class ::PragmaOnceUnitState;
13642
15931
  friend class ::PragmaOnce;
13643
 
  friend class ::CCExprResolve;
13644
 
  friend class ::CExprResolve;
 
15932
  friend class ::CMatchSyntax;
13645
15933
 
13646
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15934
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13647
15935
 
13648
15936
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
13649
15937
 
13650
15938
public:
13651
15939
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
13652
15940
                 CTree *is, CTree *e, CTree *es) {
13653
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
13654
 
    sons[5] = e; sons[6] = es; 
 
15941
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15942
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
15943
    AddSon (sons[6], es); 
13655
15944
  }
 
15945
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13656
15946
  static const char *NodeId ();
 
15947
  /** Get the name of the node. Can be compared with NodeId(). */
13657
15948
  const char *NodeName () const { return NodeId (); }
 
15949
  /** Get the number of sons. */
13658
15950
  int Sons () const { return 7; }
 
15951
  /** Get the n-th son.
 
15952
   *  \param n The index of the son.
 
15953
   *  \return The n-th son or NULL. */
13659
15954
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
13660
15955
  CTree *Condition () const { return sons[2]; }
13661
15956
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
13662
15957
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
15958
  /** Replace a son.
 
15959
   *  \param old_son The son to replace.
 
15960
   *  \param new_son The new son. */
13663
15961
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13664
15962
    CTree::ReplaceSon (sons, 7, old_son, new_son);
13665
15963
  }
 
15964
  CSemScope *SemScope () const { return (CSemScope*)this; }
13666
15965
};
13667
15966
 
13668
15967
 
13669
 
#line 13670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15968
#line 15969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13670
15969
} // closed Puma
 
15970
class CCExprResolve;
 
15971
class CExprResolve;
13671
15972
class WinIfExists;
13672
15973
class WinImportHandler;
13673
15974
class WinMacros;
13674
 
class CMatchSyntax;
13675
 
class ExtGnu;
 
15975
class WinAsm;
 
15976
class WinDeclSpecs;
 
15977
class WinMemberExplSpec;
 
15978
class WinTypeKeywords;
 
15979
class WinFriend;
13676
15980
class ExtAC;
13677
15981
class ExtACBuilderCoupling;
13678
15982
class ExtACSyntaxCoupling;
13679
15983
class ExtACTree;
13680
15984
class ExtACKeywords;
13681
 
class WinAsm;
13682
 
class WinDeclSpecs;
13683
 
class WinMemberExplSpec;
13684
 
class WinTypeKeywords;
 
15985
class ExtGnu;
13685
15986
class PragmaOnceUnitState;
13686
15987
class PragmaOnce;
13687
 
class CCExprResolve;
13688
 
class CExprResolve;
 
15988
class CMatchSyntax;
13689
15989
namespace Puma {
13690
15990
 
13691
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15991
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13692
15992
class CT_BreakStmt : public CT_Statement {
13693
 
#line 13694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
15993
#line 15994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
15994
  friend class ::CCExprResolve;
 
15995
  friend class ::CExprResolve;
13694
15996
  friend class ::WinIfExists;
13695
15997
  friend class ::WinImportHandler;
13696
15998
  friend class ::WinMacros;
13697
 
  friend class ::CMatchSyntax;
13698
 
  friend class ::ExtGnu;
 
15999
  friend class ::WinAsm;
 
16000
  friend class ::WinDeclSpecs;
 
16001
  friend class ::WinMemberExplSpec;
 
16002
  friend class ::WinTypeKeywords;
 
16003
  friend class ::WinFriend;
13699
16004
  friend class ::ExtAC;
13700
16005
  friend class ::ExtACBuilderCoupling;
13701
16006
  friend class ::ExtACSyntaxCoupling;
13702
16007
  friend class ::ExtACTree;
13703
16008
  friend class ::ExtACKeywords;
13704
 
  friend class ::WinAsm;
13705
 
  friend class ::WinDeclSpecs;
13706
 
  friend class ::WinMemberExplSpec;
13707
 
  friend class ::WinTypeKeywords;
 
16009
  friend class ::ExtGnu;
13708
16010
  friend class ::PragmaOnceUnitState;
13709
16011
  friend class ::PragmaOnce;
13710
 
  friend class ::CCExprResolve;
13711
 
  friend class ::CExprResolve;
 
16012
  friend class ::CMatchSyntax;
13712
16013
 
13713
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16014
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13714
16015
 
13715
16016
  CTree *sons[2]; // key, semi_colon
13716
16017
 
13717
16018
public:
13718
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
16019
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
16020
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13719
16021
  static const char *NodeId ();
 
16022
  /** Get the name of the node. Can be compared with NodeId(). */
13720
16023
  const char *NodeName () const { return NodeId (); }
 
16024
  /** Get the number of sons. */
13721
16025
  int Sons () const { return 2; }
 
16026
  /** Get the n-th son.
 
16027
   *  \param n The index of the son.
 
16028
   *  \return The n-th son or NULL. */
13722
16029
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16030
  /** Replace a son.
 
16031
   *  \param old_son The son to replace.
 
16032
   *  \param new_son The new son. */
13723
16033
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13724
16034
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13725
16035
  }
13726
16036
};
13727
16037
 
13728
16038
 
13729
 
#line 13730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16039
#line 16040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13730
16040
} // closed Puma
 
16041
class CCExprResolve;
 
16042
class CExprResolve;
13731
16043
class WinIfExists;
13732
16044
class WinImportHandler;
13733
16045
class WinMacros;
13734
 
class CMatchSyntax;
13735
 
class ExtGnu;
 
16046
class WinAsm;
 
16047
class WinDeclSpecs;
 
16048
class WinMemberExplSpec;
 
16049
class WinTypeKeywords;
 
16050
class WinFriend;
13736
16051
class ExtAC;
13737
16052
class ExtACBuilderCoupling;
13738
16053
class ExtACSyntaxCoupling;
13739
16054
class ExtACTree;
13740
16055
class ExtACKeywords;
13741
 
class WinAsm;
13742
 
class WinDeclSpecs;
13743
 
class WinMemberExplSpec;
13744
 
class WinTypeKeywords;
 
16056
class ExtGnu;
13745
16057
class PragmaOnceUnitState;
13746
16058
class PragmaOnce;
13747
 
class CCExprResolve;
13748
 
class CExprResolve;
 
16059
class CMatchSyntax;
13749
16060
namespace Puma {
13750
16061
 
13751
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16062
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13752
16063
class CT_ContinueStmt : public CT_Statement {
13753
 
#line 13754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16064
#line 16065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16065
  friend class ::CCExprResolve;
 
16066
  friend class ::CExprResolve;
13754
16067
  friend class ::WinIfExists;
13755
16068
  friend class ::WinImportHandler;
13756
16069
  friend class ::WinMacros;
13757
 
  friend class ::CMatchSyntax;
13758
 
  friend class ::ExtGnu;
 
16070
  friend class ::WinAsm;
 
16071
  friend class ::WinDeclSpecs;
 
16072
  friend class ::WinMemberExplSpec;
 
16073
  friend class ::WinTypeKeywords;
 
16074
  friend class ::WinFriend;
13759
16075
  friend class ::ExtAC;
13760
16076
  friend class ::ExtACBuilderCoupling;
13761
16077
  friend class ::ExtACSyntaxCoupling;
13762
16078
  friend class ::ExtACTree;
13763
16079
  friend class ::ExtACKeywords;
13764
 
  friend class ::WinAsm;
13765
 
  friend class ::WinDeclSpecs;
13766
 
  friend class ::WinMemberExplSpec;
13767
 
  friend class ::WinTypeKeywords;
 
16080
  friend class ::ExtGnu;
13768
16081
  friend class ::PragmaOnceUnitState;
13769
16082
  friend class ::PragmaOnce;
13770
 
  friend class ::CCExprResolve;
13771
 
  friend class ::CExprResolve;
 
16083
  friend class ::CMatchSyntax;
13772
16084
 
13773
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16085
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13774
16086
 
13775
16087
  CTree *sons[2]; // key, semi_colon
13776
16088
 
13777
16089
public:
13778
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
16090
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
16091
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13779
16092
  static const char *NodeId ();
 
16093
  /** Get the name of the node. Can be compared with NodeId(). */
13780
16094
  const char *NodeName () const { return NodeId (); }
 
16095
  /** Get the number of sons. */
13781
16096
  int Sons () const { return 2; }
 
16097
  /** Get the n-th son.
 
16098
   *  \param n The index of the son.
 
16099
   *  \return The n-th son or NULL. */
13782
16100
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16101
  /** Replace a son.
 
16102
   *  \param old_son The son to replace.
 
16103
   *  \param new_son The new son. */
13783
16104
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13784
16105
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13785
16106
  }
13786
16107
};
13787
16108
 
13788
16109
 
13789
 
#line 13790 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16110
#line 16111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13790
16111
} // closed Puma
 
16112
class CCExprResolve;
 
16113
class CExprResolve;
13791
16114
class WinIfExists;
13792
16115
class WinImportHandler;
13793
16116
class WinMacros;
13794
 
class CMatchSyntax;
13795
 
class ExtGnu;
 
16117
class WinAsm;
 
16118
class WinDeclSpecs;
 
16119
class WinMemberExplSpec;
 
16120
class WinTypeKeywords;
 
16121
class WinFriend;
13796
16122
class ExtAC;
13797
16123
class ExtACBuilderCoupling;
13798
16124
class ExtACSyntaxCoupling;
13799
16125
class ExtACTree;
13800
16126
class ExtACKeywords;
13801
 
class WinAsm;
13802
 
class WinDeclSpecs;
13803
 
class WinMemberExplSpec;
13804
 
class WinTypeKeywords;
 
16127
class ExtGnu;
13805
16128
class PragmaOnceUnitState;
13806
16129
class PragmaOnce;
13807
 
class CCExprResolve;
13808
 
class CExprResolve;
 
16130
class CMatchSyntax;
13809
16131
namespace Puma {
13810
16132
 
13811
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16133
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13812
16134
class CT_GotoStmt : public CT_Statement {
13813
 
#line 13814 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16135
#line 16136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16136
  friend class ::CCExprResolve;
 
16137
  friend class ::CExprResolve;
13814
16138
  friend class ::WinIfExists;
13815
16139
  friend class ::WinImportHandler;
13816
16140
  friend class ::WinMacros;
13817
 
  friend class ::CMatchSyntax;
13818
 
  friend class ::ExtGnu;
 
16141
  friend class ::WinAsm;
 
16142
  friend class ::WinDeclSpecs;
 
16143
  friend class ::WinMemberExplSpec;
 
16144
  friend class ::WinTypeKeywords;
 
16145
  friend class ::WinFriend;
13819
16146
  friend class ::ExtAC;
13820
16147
  friend class ::ExtACBuilderCoupling;
13821
16148
  friend class ::ExtACSyntaxCoupling;
13822
16149
  friend class ::ExtACTree;
13823
16150
  friend class ::ExtACKeywords;
13824
 
  friend class ::WinAsm;
13825
 
  friend class ::WinDeclSpecs;
13826
 
  friend class ::WinMemberExplSpec;
13827
 
  friend class ::WinTypeKeywords;
 
16151
  friend class ::ExtGnu;
13828
16152
  friend class ::PragmaOnceUnitState;
13829
16153
  friend class ::PragmaOnce;
13830
 
  friend class ::CCExprResolve;
13831
 
  friend class ::CExprResolve;
 
16154
  friend class ::CMatchSyntax;
13832
16155
 
13833
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16156
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13834
16157
 
13835
16158
  CTree *sons[3]; // key, label, semi_colon
13836
16159
 
13837
16160
public:
13838
16161
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
13839
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
16162
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
13840
16163
  }
 
16164
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13841
16165
  static const char *NodeId ();
 
16166
  /** Get the name of the node. Can be compared with NodeId(). */
13842
16167
  const char *NodeName () const { return NodeId (); }
 
16168
  /** Get the number of sons. */
13843
16169
  int Sons () const { return 3; }
 
16170
  /** Get the n-th son.
 
16171
   *  \param n The index of the son.
 
16172
   *  \return The n-th son or NULL. */
13844
16173
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13845
16174
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
16175
  /** Replace a son.
 
16176
   *  \param old_son The son to replace.
 
16177
   *  \param new_son The new son. */
13846
16178
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13847
16179
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13848
16180
  }
13849
16181
};
13850
16182
 
13851
16183
 
13852
 
#line 13853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16184
#line 16185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13853
16185
} // closed Puma
 
16186
class CCExprResolve;
 
16187
class CExprResolve;
13854
16188
class WinIfExists;
13855
16189
class WinImportHandler;
13856
16190
class WinMacros;
13857
 
class CMatchSyntax;
13858
 
class ExtGnu;
 
16191
class WinAsm;
 
16192
class WinDeclSpecs;
 
16193
class WinMemberExplSpec;
 
16194
class WinTypeKeywords;
 
16195
class WinFriend;
13859
16196
class ExtAC;
13860
16197
class ExtACBuilderCoupling;
13861
16198
class ExtACSyntaxCoupling;
13862
16199
class ExtACTree;
13863
16200
class ExtACKeywords;
13864
 
class WinAsm;
13865
 
class WinDeclSpecs;
13866
 
class WinMemberExplSpec;
13867
 
class WinTypeKeywords;
 
16201
class ExtGnu;
13868
16202
class PragmaOnceUnitState;
13869
16203
class PragmaOnce;
13870
 
class CCExprResolve;
13871
 
class CExprResolve;
 
16204
class CMatchSyntax;
13872
16205
namespace Puma {
13873
16206
 
13874
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16207
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13875
16208
class CT_ReturnStmt : public CT_Statement {
13876
 
#line 13877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16209
#line 16210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16210
  friend class ::CCExprResolve;
 
16211
  friend class ::CExprResolve;
13877
16212
  friend class ::WinIfExists;
13878
16213
  friend class ::WinImportHandler;
13879
16214
  friend class ::WinMacros;
13880
 
  friend class ::CMatchSyntax;
13881
 
  friend class ::ExtGnu;
 
16215
  friend class ::WinAsm;
 
16216
  friend class ::WinDeclSpecs;
 
16217
  friend class ::WinMemberExplSpec;
 
16218
  friend class ::WinTypeKeywords;
 
16219
  friend class ::WinFriend;
13882
16220
  friend class ::ExtAC;
13883
16221
  friend class ::ExtACBuilderCoupling;
13884
16222
  friend class ::ExtACSyntaxCoupling;
13885
16223
  friend class ::ExtACTree;
13886
16224
  friend class ::ExtACKeywords;
13887
 
  friend class ::WinAsm;
13888
 
  friend class ::WinDeclSpecs;
13889
 
  friend class ::WinMemberExplSpec;
13890
 
  friend class ::WinTypeKeywords;
 
16225
  friend class ::ExtGnu;
13891
16226
  friend class ::PragmaOnceUnitState;
13892
16227
  friend class ::PragmaOnce;
13893
 
  friend class ::CCExprResolve;
13894
 
  friend class ::CExprResolve;
 
16228
  friend class ::CMatchSyntax;
13895
16229
 
13896
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16230
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13897
16231
 
13898
16232
  CTree *sons[3]; // key, expr, semi_colon
13899
16233
 
13900
16234
public:
13901
16235
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
13902
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
16236
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
13903
16237
  }
 
16238
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13904
16239
  static const char *NodeId ();
 
16240
  /** Get the name of the node. Can be compared with NodeId(). */
13905
16241
  const char *NodeName () const { return NodeId (); }
 
16242
  /** Get the number of sons. */
13906
16243
  int Sons () const { return CTree::Sons (sons, 3); }
 
16244
  /** Get the n-th son.
 
16245
   *  \param n The index of the son.
 
16246
   *  \return The n-th son or NULL. */
13907
16247
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13908
16248
  CTree *Expr () const { return sons[1]; }
 
16249
  /** Replace a son.
 
16250
   *  \param old_son The son to replace.
 
16251
   *  \param new_son The new son. */
13909
16252
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13910
16253
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13911
16254
  }
13912
16255
};
13913
16256
 
13914
16257
 
13915
 
#line 13916 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16258
#line 16259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13916
16259
} // closed Puma
 
16260
class CCExprResolve;
 
16261
class CExprResolve;
13917
16262
class WinIfExists;
13918
16263
class WinImportHandler;
13919
16264
class WinMacros;
13920
 
class CMatchSyntax;
13921
 
class ExtGnu;
 
16265
class WinAsm;
 
16266
class WinDeclSpecs;
 
16267
class WinMemberExplSpec;
 
16268
class WinTypeKeywords;
 
16269
class WinFriend;
13922
16270
class ExtAC;
13923
16271
class ExtACBuilderCoupling;
13924
16272
class ExtACSyntaxCoupling;
13925
16273
class ExtACTree;
13926
16274
class ExtACKeywords;
13927
 
class WinAsm;
13928
 
class WinDeclSpecs;
13929
 
class WinMemberExplSpec;
13930
 
class WinTypeKeywords;
 
16275
class ExtGnu;
13931
16276
class PragmaOnceUnitState;
13932
16277
class PragmaOnce;
13933
 
class CCExprResolve;
13934
 
class CExprResolve;
 
16278
class CMatchSyntax;
13935
16279
namespace Puma {
13936
16280
 
13937
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16281
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13938
16282
class CT_WhileStmt : public CT_Statement, public CSemScope {
13939
 
#line 13940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16283
#line 16284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16284
  friend class ::CCExprResolve;
 
16285
  friend class ::CExprResolve;
13940
16286
  friend class ::WinIfExists;
13941
16287
  friend class ::WinImportHandler;
13942
16288
  friend class ::WinMacros;
13943
 
  friend class ::CMatchSyntax;
13944
 
  friend class ::ExtGnu;
 
16289
  friend class ::WinAsm;
 
16290
  friend class ::WinDeclSpecs;
 
16291
  friend class ::WinMemberExplSpec;
 
16292
  friend class ::WinTypeKeywords;
 
16293
  friend class ::WinFriend;
13945
16294
  friend class ::ExtAC;
13946
16295
  friend class ::ExtACBuilderCoupling;
13947
16296
  friend class ::ExtACSyntaxCoupling;
13948
16297
  friend class ::ExtACTree;
13949
16298
  friend class ::ExtACKeywords;
13950
 
  friend class ::WinAsm;
13951
 
  friend class ::WinDeclSpecs;
13952
 
  friend class ::WinMemberExplSpec;
13953
 
  friend class ::WinTypeKeywords;
 
16299
  friend class ::ExtGnu;
13954
16300
  friend class ::PragmaOnceUnitState;
13955
16301
  friend class ::PragmaOnce;
13956
 
  friend class ::CCExprResolve;
13957
 
  friend class ::CExprResolve;
 
16302
  friend class ::CMatchSyntax;
13958
16303
 
13959
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16304
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13960
16305
 
13961
16306
  CTree *sons[5]; // key, open, cond, close, stmt
13962
16307
 
13963
16308
public:
13964
16309
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
13965
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
16310
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
16311
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
13966
16312
  }
 
16313
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13967
16314
  static const char *NodeId ();
 
16315
  /** Get the name of the node. Can be compared with NodeId(). */
13968
16316
  const char *NodeName () const { return NodeId (); }
 
16317
  /** Get the number of sons. */
13969
16318
  int Sons () const { return 5; }
 
16319
  /** Get the n-th son.
 
16320
   *  \param n The index of the son.
 
16321
   *  \return The n-th son or NULL. */
13970
16322
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
13971
16323
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
13972
16324
  CTree *Condition () const { return sons[2]; }
 
16325
  /** Replace a son.
 
16326
   *  \param old_son The son to replace.
 
16327
   *  \param new_son The new son. */
13973
16328
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13974
16329
    CTree::ReplaceSon (sons, 5, old_son, new_son);
13975
16330
  }
 
16331
  CSemScope *SemScope () const { return (CSemScope*)this; }
13976
16332
};
13977
16333
 
13978
16334
 
13979
 
#line 13980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16335
#line 16336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
13980
16336
} // closed Puma
 
16337
class CCExprResolve;
 
16338
class CExprResolve;
13981
16339
class WinIfExists;
13982
16340
class WinImportHandler;
13983
16341
class WinMacros;
13984
 
class CMatchSyntax;
13985
 
class ExtGnu;
 
16342
class WinAsm;
 
16343
class WinDeclSpecs;
 
16344
class WinMemberExplSpec;
 
16345
class WinTypeKeywords;
 
16346
class WinFriend;
13986
16347
class ExtAC;
13987
16348
class ExtACBuilderCoupling;
13988
16349
class ExtACSyntaxCoupling;
13989
16350
class ExtACTree;
13990
16351
class ExtACKeywords;
13991
 
class WinAsm;
13992
 
class WinDeclSpecs;
13993
 
class WinMemberExplSpec;
13994
 
class WinTypeKeywords;
 
16352
class ExtGnu;
13995
16353
class PragmaOnceUnitState;
13996
16354
class PragmaOnce;
13997
 
class CCExprResolve;
13998
 
class CExprResolve;
 
16355
class CMatchSyntax;
13999
16356
namespace Puma {
14000
16357
 
14001
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16358
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14002
16359
class CT_DoStmt : public CT_Statement {
14003
 
#line 14004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16360
#line 16361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16361
  friend class ::CCExprResolve;
 
16362
  friend class ::CExprResolve;
14004
16363
  friend class ::WinIfExists;
14005
16364
  friend class ::WinImportHandler;
14006
16365
  friend class ::WinMacros;
14007
 
  friend class ::CMatchSyntax;
14008
 
  friend class ::ExtGnu;
 
16366
  friend class ::WinAsm;
 
16367
  friend class ::WinDeclSpecs;
 
16368
  friend class ::WinMemberExplSpec;
 
16369
  friend class ::WinTypeKeywords;
 
16370
  friend class ::WinFriend;
14009
16371
  friend class ::ExtAC;
14010
16372
  friend class ::ExtACBuilderCoupling;
14011
16373
  friend class ::ExtACSyntaxCoupling;
14012
16374
  friend class ::ExtACTree;
14013
16375
  friend class ::ExtACKeywords;
14014
 
  friend class ::WinAsm;
14015
 
  friend class ::WinDeclSpecs;
14016
 
  friend class ::WinMemberExplSpec;
14017
 
  friend class ::WinTypeKeywords;
 
16376
  friend class ::ExtGnu;
14018
16377
  friend class ::PragmaOnceUnitState;
14019
16378
  friend class ::PragmaOnce;
14020
 
  friend class ::CCExprResolve;
14021
 
  friend class ::CExprResolve;
 
16379
  friend class ::CMatchSyntax;
14022
16380
 
14023
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16381
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14024
16382
 
14025
16383
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
14026
16384
 
14027
16385
public:
14028
16386
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
14029
16387
             CTree *c, CTree *sc) {
14030
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
14031
 
    sons[5] = c; sons[6] = sc; 
 
16388
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
16389
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
16390
    AddSon (sons[6], sc); 
14032
16391
  }
 
16392
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14033
16393
  static const char *NodeId ();
 
16394
  /** Get the name of the node. Can be compared with NodeId(). */
14034
16395
  const char *NodeName () const { return NodeId (); }
 
16396
  /** Get the number of sons. */
14035
16397
  int Sons () const { return 7; }
 
16398
  /** Get the n-th son.
 
16399
   *  \param n The index of the son.
 
16400
   *  \return The n-th son or NULL. */
14036
16401
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
14037
16402
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
14038
16403
  CTree *Expr () const { return sons[4]; }
 
16404
  /** Replace a son.
 
16405
   *  \param old_son The son to replace.
 
16406
   *  \param new_son The new son. */
14039
16407
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14040
16408
    CTree::ReplaceSon (sons, 7, old_son, new_son);
14041
16409
  }
14042
16410
};
14043
16411
 
14044
16412
 
14045
 
#line 14046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16413
#line 16414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14046
16414
} // closed Puma
 
16415
class CCExprResolve;
 
16416
class CExprResolve;
14047
16417
class WinIfExists;
14048
16418
class WinImportHandler;
14049
16419
class WinMacros;
14050
 
class CMatchSyntax;
14051
 
class ExtGnu;
 
16420
class WinAsm;
 
16421
class WinDeclSpecs;
 
16422
class WinMemberExplSpec;
 
16423
class WinTypeKeywords;
 
16424
class WinFriend;
14052
16425
class ExtAC;
14053
16426
class ExtACBuilderCoupling;
14054
16427
class ExtACSyntaxCoupling;
14055
16428
class ExtACTree;
14056
16429
class ExtACKeywords;
14057
 
class WinAsm;
14058
 
class WinDeclSpecs;
14059
 
class WinMemberExplSpec;
14060
 
class WinTypeKeywords;
 
16430
class ExtGnu;
14061
16431
class PragmaOnceUnitState;
14062
16432
class PragmaOnce;
14063
 
class CCExprResolve;
14064
 
class CExprResolve;
 
16433
class CMatchSyntax;
14065
16434
namespace Puma {
14066
16435
 
14067
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16436
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14068
16437
class CT_ForStmt : public CT_Statement, public CSemScope {
14069
 
#line 14070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16438
#line 16439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16439
  friend class ::CCExprResolve;
 
16440
  friend class ::CExprResolve;
14070
16441
  friend class ::WinIfExists;
14071
16442
  friend class ::WinImportHandler;
14072
16443
  friend class ::WinMacros;
14073
 
  friend class ::CMatchSyntax;
14074
 
  friend class ::ExtGnu;
 
16444
  friend class ::WinAsm;
 
16445
  friend class ::WinDeclSpecs;
 
16446
  friend class ::WinMemberExplSpec;
 
16447
  friend class ::WinTypeKeywords;
 
16448
  friend class ::WinFriend;
14075
16449
  friend class ::ExtAC;
14076
16450
  friend class ::ExtACBuilderCoupling;
14077
16451
  friend class ::ExtACSyntaxCoupling;
14078
16452
  friend class ::ExtACTree;
14079
16453
  friend class ::ExtACKeywords;
14080
 
  friend class ::WinAsm;
14081
 
  friend class ::WinDeclSpecs;
14082
 
  friend class ::WinMemberExplSpec;
14083
 
  friend class ::WinTypeKeywords;
 
16454
  friend class ::ExtGnu;
14084
16455
  friend class ::PragmaOnceUnitState;
14085
16456
  friend class ::PragmaOnce;
14086
 
  friend class ::CCExprResolve;
14087
 
  friend class ::CExprResolve;
 
16457
  friend class ::CMatchSyntax;
14088
16458
 
14089
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16459
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14090
16460
 
14091
16461
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
14092
16462
 
14093
16463
public:
14094
16464
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
14095
16465
              CTree *e, CTree *c, CTree *stmt) {
14096
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
14097
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
16466
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
16467
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
16468
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
14098
16469
  }
 
16470
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14099
16471
  static const char *NodeId ();
 
16472
  /** Get the name of the node. Can be compared with NodeId(). */
14100
16473
  const char *NodeName () const { return NodeId (); }
 
16474
  /** Get the number of sons. */
14101
16475
  int Sons () const { return CTree::Sons (sons, 8); }
 
16476
  /** Get the n-th son.
 
16477
   *  \param n The index of the son.
 
16478
   *  \return The n-th son or NULL. */
14102
16479
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
14103
16480
  CTree *InitStmt () const { return sons[2]; }
14104
16481
  CTree *Condition () const { return sons[3]; }
14105
16482
  CTree *Expr () const { return sons[5]; }
14106
16483
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
16484
  /** Replace a son.
 
16485
   *  \param old_son The son to replace.
 
16486
   *  \param new_son The new son. */
14107
16487
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14108
16488
    CTree::ReplaceSon (sons, 8, old_son, new_son);
14109
16489
  }
 
16490
  CSemScope *SemScope () const { return (CSemScope*)this; }
14110
16491
};
14111
16492
 
14112
16493
 
14113
 
#line 14114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16494
#line 16495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14114
16495
} // closed Puma
 
16496
class CCExprResolve;
 
16497
class CExprResolve;
14115
16498
class WinIfExists;
14116
16499
class WinImportHandler;
14117
16500
class WinMacros;
14118
 
class CMatchSyntax;
14119
 
class ExtGnu;
 
16501
class WinAsm;
 
16502
class WinDeclSpecs;
 
16503
class WinMemberExplSpec;
 
16504
class WinTypeKeywords;
 
16505
class WinFriend;
14120
16506
class ExtAC;
14121
16507
class ExtACBuilderCoupling;
14122
16508
class ExtACSyntaxCoupling;
14123
16509
class ExtACTree;
14124
16510
class ExtACKeywords;
14125
 
class WinAsm;
14126
 
class WinDeclSpecs;
14127
 
class WinMemberExplSpec;
14128
 
class WinTypeKeywords;
 
16511
class ExtGnu;
14129
16512
class PragmaOnceUnitState;
14130
16513
class PragmaOnce;
14131
 
class CCExprResolve;
14132
 
class CExprResolve;
 
16514
class CMatchSyntax;
14133
16515
namespace Puma {
14134
16516
 
14135
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16517
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14136
16518
class CT_Condition : public CT_Decl, public CSemObject {
14137
 
#line 14138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16519
#line 16520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16520
  friend class ::CCExprResolve;
 
16521
  friend class ::CExprResolve;
14138
16522
  friend class ::WinIfExists;
14139
16523
  friend class ::WinImportHandler;
14140
16524
  friend class ::WinMacros;
14141
 
  friend class ::CMatchSyntax;
14142
 
  friend class ::ExtGnu;
 
16525
  friend class ::WinAsm;
 
16526
  friend class ::WinDeclSpecs;
 
16527
  friend class ::WinMemberExplSpec;
 
16528
  friend class ::WinTypeKeywords;
 
16529
  friend class ::WinFriend;
14143
16530
  friend class ::ExtAC;
14144
16531
  friend class ::ExtACBuilderCoupling;
14145
16532
  friend class ::ExtACSyntaxCoupling;
14146
16533
  friend class ::ExtACTree;
14147
16534
  friend class ::ExtACKeywords;
14148
 
  friend class ::WinAsm;
14149
 
  friend class ::WinDeclSpecs;
14150
 
  friend class ::WinMemberExplSpec;
14151
 
  friend class ::WinTypeKeywords;
 
16535
  friend class ::ExtGnu;
14152
16536
  friend class ::PragmaOnceUnitState;
14153
16537
  friend class ::PragmaOnce;
14154
 
  friend class ::CCExprResolve;
14155
 
  friend class ::CExprResolve;
 
16538
  friend class ::CMatchSyntax;
14156
16539
 
14157
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16540
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14158
16541
 
14159
16542
  CTree *sons[3]; // declspecs, declarator, init
14160
16543
 
14161
16544
public:
14162
16545
  CT_Condition (CTree *dsl, CTree *d) {
14163
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
16546
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
14164
16547
  }
 
16548
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14165
16549
  static const char *NodeId ();
 
16550
  /** Get the name of the node. Can be compared with NodeId(). */
14166
16551
  const char *NodeName () const { return NodeId (); }
 
16552
  /** Get the number of sons. */
14167
16553
  int Sons () const { return CTree::Sons (sons, 3); }
 
16554
  /** Get the n-th son.
 
16555
   *  \param n The index of the son.
 
16556
   *  \return The n-th son or NULL. */
14168
16557
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
14169
16558
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
14170
16559
  CTree *Declarator () const { return sons[1]; }
14171
16560
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
14172
16561
  CSemObject *SemObject () const { return (CSemObject*)this; }
14173
 
  void Initializer (CTree *i) { sons[2] = i; }
 
16562
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
16563
  /** Replace a son.
 
16564
   *  \param old_son The son to replace.
 
16565
   *  \param new_son The new son. */
14174
16566
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14175
16567
    CTree::ReplaceSon (sons, 3, old_son, new_son);
14176
16568
  }
14183
16575
/*****************************************************************************/
14184
16576
 
14185
16577
 
14186
 
#line 14187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16578
#line 16579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14187
16579
} // closed Puma
 
16580
class CCExprResolve;
 
16581
class CExprResolve;
14188
16582
class WinIfExists;
14189
16583
class WinImportHandler;
14190
16584
class WinMacros;
14191
 
class CMatchSyntax;
14192
 
class ExtGnu;
 
16585
class WinAsm;
 
16586
class WinDeclSpecs;
 
16587
class WinMemberExplSpec;
 
16588
class WinTypeKeywords;
 
16589
class WinFriend;
14193
16590
class ExtAC;
14194
16591
class ExtACBuilderCoupling;
14195
16592
class ExtACSyntaxCoupling;
14196
16593
class ExtACTree;
14197
16594
class ExtACKeywords;
 
16595
class ExtGnu;
 
16596
class PragmaOnceUnitState;
 
16597
class PragmaOnce;
 
16598
class CMatchSyntax;
 
16599
namespace Puma {
 
16600
 
 
16601
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16602
 
 
16603
#line 16604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16604
} // closed Puma
 
16605
 
 
16606
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16607
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16608
 
 
16609
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16610
// This file is part of PUMA.
 
16611
// Copyright (C) 1999-2003  The PUMA developer team.
 
16612
//                                                                
 
16613
// This program is free software;  you can redistribute it and/or 
 
16614
// modify it under the terms of the GNU General Public License as 
 
16615
// published by the Free Software Foundation; either version 2 of 
 
16616
// the License, or (at your option) any later version.            
 
16617
//                                                                
 
16618
// This program is distributed in the hope that it will be useful,
 
16619
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
16620
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
16621
// GNU General Public License for more details.                   
 
16622
//                                                                
 
16623
// You should have received a copy of the GNU General Public      
 
16624
// License along with this program; if not, write to the Free     
 
16625
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
16626
// MA  02111-1307  USA                                            
 
16627
 
 
16628
#ifndef __ExtACTree_ah__
 
16629
#define __ExtACTree_ah__
 
16630
 
 
16631
// TODO:
 
16632
// this shall be introduced by the ExtAC aspect as soon as the include cycle
 
16633
// problem is solved!
 
16634
 
 
16635
namespace Puma {
 
16636
  class CTree;
 
16637
}
 
16638
 
 
16639
 
 
16640
#line 16641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16641
class CCExprResolve;
 
16642
class CExprResolve;
 
16643
class WinIfExists;
 
16644
class WinImportHandler;
 
16645
class WinMacros;
14198
16646
class WinAsm;
14199
16647
class WinDeclSpecs;
14200
16648
class WinMemberExplSpec;
14201
16649
class WinTypeKeywords;
 
16650
class WinFriend;
 
16651
class ExtAC;
 
16652
class ExtACBuilderCoupling;
 
16653
class ExtACSyntaxCoupling;
 
16654
class ExtACKeywords;
 
16655
class ExtGnu;
14202
16656
class PragmaOnceUnitState;
14203
16657
class PragmaOnce;
14204
 
class CCExprResolve;
14205
 
class CExprResolve;
 
16658
class CMatchSyntax;
 
16659
 
 
16660
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16661
class ExtACTree {
 
16662
#line 16663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16663
 
 
16664
public:
 
16665
  static ExtACTree *aspectof () {
 
16666
    static ExtACTree __instance;
 
16667
    return &__instance;
 
16668
  }
 
16669
  static ExtACTree *aspectOf () {
 
16670
    return aspectof ();
 
16671
  }
 
16672
private:
 
16673
 
 
16674
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16675
 
 
16676
#line 16677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16677
  friend class ::CCExprResolve;
 
16678
  friend class ::CExprResolve;
 
16679
  friend class ::WinIfExists;
 
16680
  friend class ::WinImportHandler;
 
16681
  friend class ::WinMacros;
 
16682
  friend class ::WinAsm;
 
16683
  friend class ::WinDeclSpecs;
 
16684
  friend class ::WinMemberExplSpec;
 
16685
  friend class ::WinTypeKeywords;
 
16686
  friend class ::WinFriend;
 
16687
  friend class ::ExtAC;
 
16688
  friend class ::ExtACBuilderCoupling;
 
16689
  friend class ::ExtACSyntaxCoupling;
 
16690
  friend class ::ExtACKeywords;
 
16691
  friend class ::ExtGnu;
 
16692
  friend class ::PragmaOnceUnitState;
 
16693
  friend class ::PragmaOnce;
 
16694
  friend class ::CMatchSyntax;
 
16695
 
 
16696
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16697
 
 
16698
  
 
16699
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16700
 
 
16701
  
 
16702
  // implemented in a separate .cc file, because Builder.h is needed!
 
16703
  void delete_tree (Puma::CTree *t);
 
16704
  
 
16705
  
 
16706
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16707
 
 
16708
  
 
16709
  
 
16710
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16711
 
 
16712
public: template<class JoinPoint> void __a0_after 
 
16713
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16714
 
 
16715
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16716
(JoinPoint *tjp)
 
16717
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16718
 {
 
16719
#line 16720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16720
 
 
16721
  typedef typename JoinPoint::That __JP_That;
 
16722
  typedef typename JoinPoint::Target __JP_Target;
 
16723
  typedef typename JoinPoint::Result __JP_Result;
 
16724
 
 
16725
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16726
 
 
16727
    tjp->that ()->_intro_members = 0;
 
16728
    tjp->that ()->_base_intros = 0;
 
16729
  }
 
16730
#line 16731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16731
 
 
16732
private:
 
16733
 
 
16734
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16735
 
 
16736
  
 
16737
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16738
 
 
16739
public: template<class JoinPoint> void __a1_before 
 
16740
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16741
 
 
16742
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16743
(JoinPoint *tjp)
 
16744
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16745
 {
 
16746
#line 16747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16747
 
 
16748
  typedef typename JoinPoint::That __JP_That;
 
16749
  typedef typename JoinPoint::Target __JP_Target;
 
16750
  typedef typename JoinPoint::Result __JP_Result;
 
16751
 
 
16752
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16753
 
 
16754
    delete_tree (tjp->that ()->_intro_members);
 
16755
    delete_tree (tjp->that ()->_base_intros);
 
16756
  }
 
16757
#line 16758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16758
 
 
16759
private:
 
16760
 
 
16761
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16762
 
 
16763
};
 
16764
#line 16765 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16765
 
 
16766
namespace AC {
 
16767
  template <class JoinPoint>
 
16768
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
 
16769
    ::ExtACTree::aspectof()->__a0_after (tjp);
 
16770
  }
 
16771
  template <class JoinPoint>
 
16772
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
 
16773
    ::ExtACTree::aspectof()->__a1_before (tjp);
 
16774
  }
 
16775
 
16776
 
 
16777
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16778
 
 
16779
 
 
16780
#endif // __ExtACTree_ah__
 
16781
 
 
16782
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16783
#endif
14206
16784
namespace Puma {
14207
16785
 
14208
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16786
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14209
16787
class CT_ClassDef : public CT_Decl, public CSemObject {
14210
 
#line 14211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16788
#line 16789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16789
  friend class ::CCExprResolve;
 
16790
  friend class ::CExprResolve;
14211
16791
  friend class ::WinIfExists;
14212
16792
  friend class ::WinImportHandler;
14213
16793
  friend class ::WinMacros;
14214
 
  friend class ::CMatchSyntax;
14215
 
  friend class ::ExtGnu;
 
16794
  friend class ::WinAsm;
 
16795
  friend class ::WinDeclSpecs;
 
16796
  friend class ::WinMemberExplSpec;
 
16797
  friend class ::WinTypeKeywords;
 
16798
  friend class ::WinFriend;
14216
16799
  friend class ::ExtAC;
14217
16800
  friend class ::ExtACBuilderCoupling;
14218
16801
  friend class ::ExtACSyntaxCoupling;
14219
16802
  friend class ::ExtACTree;
14220
16803
  friend class ::ExtACKeywords;
14221
 
  friend class ::WinAsm;
14222
 
  friend class ::WinDeclSpecs;
14223
 
  friend class ::WinMemberExplSpec;
14224
 
  friend class ::WinTypeKeywords;
 
16804
  friend class ::ExtGnu;
14225
16805
  friend class ::PragmaOnceUnitState;
14226
16806
  friend class ::PragmaOnce;
14227
 
  friend class ::CCExprResolve;
14228
 
  friend class ::CExprResolve;
 
16807
  friend class ::CMatchSyntax;
14229
16808
 
14230
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16809
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14231
16810
 
14232
16811
   
14233
 
#line 14234 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16812
#line 16813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14234
16813
 
14235
16814
  struct __ac_wrapper_sons {
14236
16815
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
14245
16824
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
14246
16825
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
14247
16826
  } sons
14248
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16827
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14249
16828
 
14250
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16829
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14251
16830
; // key, name, bases, members
14252
16831
  CTree *obj_decl;
14253
16832
 
14254
16833
public:
14255
16834
  
14256
 
#line 14257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
14257
 
 
14258
 
 
14259
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
14260
 
  typedef void Result;
14261
 
  typedef ::Puma::CT_ClassDef That;
14262
 
  typedef ::Puma::CT_ClassDef Target;
14263
 
  static const int JPID = 4;
 
16835
#line 16836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16836
 
 
16837
 
 
16838
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
16839
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
16840
  typedef TResult Result;
 
16841
  typedef TThat   That;
 
16842
  typedef TTarget Target;
 
16843
  enum { ARGS = TArgs::ARGS };
 
16844
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
16845
  static const int JPID = 55;
14264
16846
  static const AC::JPType JPTYPE = (AC::JPType)16;
14265
16847
  struct Res {
14266
16848
    typedef void Type;
14267
16849
    typedef void ReferredType;
14268
16850
  };
14269
 
  enum { ARGS = 3 };
14270
 
  template <int I, int DUMMY = 0> struct Arg {
14271
 
    typedef void Type;
14272
 
    typedef void ReferredType;
14273
 
  };
14274
 
  template <int DUMMY> struct Arg<0, DUMMY> {
14275
 
    typedef ::Puma::CTree * Type;
14276
 
    typedef ::Puma::CTree * ReferredType;
14277
 
  };
14278
 
  template <int DUMMY> struct Arg<1, DUMMY> {
14279
 
    typedef ::Puma::CTree * Type;
14280
 
    typedef ::Puma::CTree * ReferredType;
14281
 
  };
14282
 
  template <int DUMMY> struct Arg<2, DUMMY> {
14283
 
    typedef ::Puma::CTree * Type;
14284
 
    typedef ::Puma::CTree * ReferredType;
14285
 
  };
14286
16851
 
14287
16852
  That *_that;
14288
16853
 
14291
16856
};
14292
16857
 
14293
16858
 
14294
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16859
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14295
16860
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
14296
 
#line 14297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16861
#line 16862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14297
16862
{
14298
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
14299
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
14300
 
this->__exec_old_C1(arg0, arg1, arg2);
14301
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
14302
 
 
 
16863
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TLE > > > > __TJP;
 
16864
    __TJP tjp;
 
16865
  tjp._that =  (__TJP::That*)this;
 
16866
    this->__exec_old_C1(arg0, arg1, arg2);
 
16867
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
16868
  
14303
16869
}
14304
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
14305
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16870
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
16871
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14306
16872
{
14307
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
16873
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
16874
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
14308
16875
  }
 
16876
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14309
16877
  static const char *NodeId ();
 
16878
  /** Get the name of the node. Can be compared with NodeId(). */
14310
16879
  const char *NodeName () const { return NodeId (); }
 
16880
  /** Get the number of sons. */
14311
16881
  int Sons () const { return CTree::Sons (sons, 4); }
 
16882
  /** Get the n-th son.
 
16883
   *  \param n The index of the son.
 
16884
   *  \return The n-th son or NULL. */
14312
16885
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
14313
16886
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
14314
16887
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
14315
16888
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
14316
16889
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
14317
16890
  CSemObject *SemObject () const { return (CSemObject*)this; }
14318
 
  void Members (CTree *m) { sons[3] = m; }
14319
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
14320
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
16891
  void Members (CTree *m) { AddSon (sons[3], m); }
 
16892
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
16893
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
16894
  /** Replace a son.
 
16895
   *  \param old_son The son to replace.
 
16896
   *  \param new_son The new son. */
14321
16897
  void ReplaceSon (CTree *old_son, CTree *new_son) {
14322
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
14323
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
16898
    CTree::ReplaceSon (sons, 4, old_son, new_son);
14324
16899
  }
14325
16900
   private:
14326
16901
 
14327
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
14328
 
 CTree * _intro_members ;
 
16902
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16903
 Puma :: CTree * _intro_members ;
 
16904
Puma :: CTree * _base_intros ;
14329
16905
public :
14330
 
CTree * IntroMembers ( ) const { return _intro_members ; }
14331
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
14332
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14333
 
 
14334
 
#line 14335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
14335
 
 
14336
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
14337
 
  typedef void Result;
14338
 
  typedef ::Puma::CT_ClassDef That;
14339
 
  typedef ::Puma::CT_ClassDef Target;
14340
 
  static const int JPID = 4;
 
16906
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
16907
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
16908
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
16909
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
16910
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16911
 
 
16912
#line 16913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16913
 
 
16914
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
16915
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
16916
  typedef TResult Result;
 
16917
  typedef TThat   That;
 
16918
  typedef TTarget Target;
 
16919
  enum { ARGS = TArgs::ARGS };
 
16920
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
16921
  static const int JPID = 6315;
14341
16922
  static const AC::JPType JPTYPE = (AC::JPType)16;
14342
16923
  struct Res {
14343
16924
    typedef void Type;
14344
16925
    typedef void ReferredType;
14345
16926
  };
14346
 
  enum { ARGS = 1 };
14347
 
  template <int I, int DUMMY = 0> struct Arg {
14348
 
    typedef void Type;
14349
 
    typedef void ReferredType;
14350
 
  };
14351
 
  template <int DUMMY> struct Arg<0, DUMMY> {
14352
 
    typedef const ::Puma::CT_ClassDef & Type;
14353
 
    typedef const ::Puma::CT_ClassDef ReferredType;
14354
 
  };
14355
16927
 
14356
16928
  That *_that;
14357
16929
 
14360
16932
};
14361
16933
 
14362
16934
 
14363
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16935
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14364
16936
 
14365
 
#line 14366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16937
#line 16938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14366
16938
 
14367
16939
public:
14368
 
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members) {
14369
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
14370
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
14371
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
16940
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members), _base_intros (arg0._base_intros) {
 
16941
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
16942
  __TJP tjp;
 
16943
  tjp._that =  (__TJP::That*)this;
 
16944
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
14372
16945
 
14373
16946
}
14374
16947
 
14375
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14376
 
 
14377
 
#line 14378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
14378
 
 
14379
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
14380
 
  typedef void Result;
14381
 
  typedef ::Puma::CT_ClassDef That;
14382
 
  typedef ::Puma::CT_ClassDef Target;
14383
 
  static const int JPID = 4;
 
16948
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16949
 
 
16950
#line 16951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
16951
 
 
16952
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
16953
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
16954
  typedef TResult Result;
 
16955
  typedef TThat   That;
 
16956
  typedef TTarget Target;
 
16957
  enum { ARGS = TArgs::ARGS };
 
16958
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
16959
  static const int JPID = 6313;
14384
16960
  static const AC::JPType JPTYPE = (AC::JPType)32;
14385
16961
  struct Res {
14386
16962
    typedef void Type;
14387
16963
    typedef void ReferredType;
14388
16964
  };
14389
 
  enum { ARGS = 0 };
14390
 
  template <int I, int DUMMY = 0> struct Arg {
14391
 
    typedef void Type;
14392
 
    typedef void ReferredType;
14393
 
  };
14394
16965
 
14395
16966
  That *_that;
14396
16967
 
14399
16970
};
14400
16971
 
14401
16972
 
14402
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16973
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14403
16974
 
14404
 
#line 14405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16975
#line 16976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14405
16976
 
14406
16977
public:
14407
16978
inline ~CT_ClassDef () {
14408
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
14409
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
14410
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
16979
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
16980
  __TJP tjp;
 
16981
  tjp._that =  (__TJP::That*)this;
 
16982
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
14411
16983
 
14412
16984
}
14413
16985
 
14414
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16986
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14415
16987
};
14416
16988
      
14417
16989
 
14418
 
#line 14419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
16990
#line 16991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14419
16991
} // closed Puma
 
16992
class CCExprResolve;
 
16993
class CExprResolve;
14420
16994
class WinIfExists;
14421
16995
class WinImportHandler;
14422
16996
class WinMacros;
14423
 
class CMatchSyntax;
14424
 
class ExtGnu;
 
16997
class WinAsm;
 
16998
class WinDeclSpecs;
 
16999
class WinMemberExplSpec;
 
17000
class WinTypeKeywords;
 
17001
class WinFriend;
14425
17002
class ExtAC;
14426
17003
class ExtACBuilderCoupling;
14427
17004
class ExtACSyntaxCoupling;
14428
17005
class ExtACTree;
14429
17006
class ExtACKeywords;
14430
 
class WinAsm;
14431
 
class WinDeclSpecs;
14432
 
class WinMemberExplSpec;
14433
 
class WinTypeKeywords;
 
17007
class ExtGnu;
14434
17008
class PragmaOnceUnitState;
14435
17009
class PragmaOnce;
14436
 
class CCExprResolve;
14437
 
class CExprResolve;
 
17010
class CMatchSyntax;
14438
17011
namespace Puma {
14439
17012
 
14440
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17013
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14441
17014
class CT_UnionDef : public CT_ClassDef {
14442
 
#line 14443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17015
#line 17016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17016
  friend class ::CCExprResolve;
 
17017
  friend class ::CExprResolve;
14443
17018
  friend class ::WinIfExists;
14444
17019
  friend class ::WinImportHandler;
14445
17020
  friend class ::WinMacros;
14446
 
  friend class ::CMatchSyntax;
14447
 
  friend class ::ExtGnu;
 
17021
  friend class ::WinAsm;
 
17022
  friend class ::WinDeclSpecs;
 
17023
  friend class ::WinMemberExplSpec;
 
17024
  friend class ::WinTypeKeywords;
 
17025
  friend class ::WinFriend;
14448
17026
  friend class ::ExtAC;
14449
17027
  friend class ::ExtACBuilderCoupling;
14450
17028
  friend class ::ExtACSyntaxCoupling;
14451
17029
  friend class ::ExtACTree;
14452
17030
  friend class ::ExtACKeywords;
14453
 
  friend class ::WinAsm;
14454
 
  friend class ::WinDeclSpecs;
14455
 
  friend class ::WinMemberExplSpec;
14456
 
  friend class ::WinTypeKeywords;
 
17031
  friend class ::ExtGnu;
14457
17032
  friend class ::PragmaOnceUnitState;
14458
17033
  friend class ::PragmaOnce;
14459
 
  friend class ::CCExprResolve;
14460
 
  friend class ::CExprResolve;
 
17034
  friend class ::CMatchSyntax;
14461
17035
 
14462
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17036
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14463
17037
 
14464
17038
public:
14465
17039
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
14466
17040
  static const char *NodeId ();
 
17041
  /** Get the name of the node. Can be compared with NodeId(). */
14467
17042
  const char *NodeName () const { return NodeId (); }
14468
17043
};
14469
17044
      
14470
17045
 
14471
 
#line 14472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17046
#line 17047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14472
17047
} // closed Puma
 
17048
class CCExprResolve;
 
17049
class CExprResolve;
14473
17050
class WinIfExists;
14474
17051
class WinImportHandler;
14475
17052
class WinMacros;
14476
 
class CMatchSyntax;
14477
 
class ExtGnu;
 
17053
class WinAsm;
 
17054
class WinDeclSpecs;
 
17055
class WinMemberExplSpec;
 
17056
class WinTypeKeywords;
 
17057
class WinFriend;
14478
17058
class ExtAC;
14479
17059
class ExtACBuilderCoupling;
14480
17060
class ExtACSyntaxCoupling;
14481
17061
class ExtACTree;
14482
17062
class ExtACKeywords;
14483
 
class WinAsm;
14484
 
class WinDeclSpecs;
14485
 
class WinMemberExplSpec;
14486
 
class WinTypeKeywords;
 
17063
class ExtGnu;
14487
17064
class PragmaOnceUnitState;
14488
17065
class PragmaOnce;
14489
 
class CCExprResolve;
14490
 
class CExprResolve;
 
17066
class CMatchSyntax;
14491
17067
namespace Puma {
14492
17068
 
14493
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17069
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14494
17070
class CT_MembList : public CT_DeclList, public CSemScope {
14495
 
#line 14496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17071
#line 17072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17072
  friend class ::CCExprResolve;
 
17073
  friend class ::CExprResolve;
14496
17074
  friend class ::WinIfExists;
14497
17075
  friend class ::WinImportHandler;
14498
17076
  friend class ::WinMacros;
14499
 
  friend class ::CMatchSyntax;
14500
 
  friend class ::ExtGnu;
 
17077
  friend class ::WinAsm;
 
17078
  friend class ::WinDeclSpecs;
 
17079
  friend class ::WinMemberExplSpec;
 
17080
  friend class ::WinTypeKeywords;
 
17081
  friend class ::WinFriend;
14501
17082
  friend class ::ExtAC;
14502
17083
  friend class ::ExtACBuilderCoupling;
14503
17084
  friend class ::ExtACSyntaxCoupling;
14504
17085
  friend class ::ExtACTree;
14505
17086
  friend class ::ExtACKeywords;
14506
 
  friend class ::WinAsm;
14507
 
  friend class ::WinDeclSpecs;
14508
 
  friend class ::WinMemberExplSpec;
14509
 
  friend class ::WinTypeKeywords;
 
17087
  friend class ::ExtGnu;
14510
17088
  friend class ::PragmaOnceUnitState;
14511
17089
  friend class ::PragmaOnce;
14512
 
  friend class ::CCExprResolve;
14513
 
  friend class ::CExprResolve;
 
17090
  friend class ::CMatchSyntax;
14514
17091
 
14515
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17092
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14516
17093
 
14517
17094
public:
14518
17095
  CT_MembList (int size = 10, int incr = 10) : 
14519
17096
    CT_DeclList (size, incr) {}
 
17097
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14520
17098
  static const char *NodeId ();
 
17099
  /** Get the name of the node. Can be compared with NodeId(). */
14521
17100
  const char *NodeName () const { return NodeId (); }
 
17101
  CSemScope *SemScope () const { return (CSemScope*)this; }
14522
17102
};
14523
17103
 
14524
17104
 
14525
 
#line 14526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17105
#line 17106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14526
17106
} // closed Puma
 
17107
class CCExprResolve;
 
17108
class CExprResolve;
14527
17109
class WinIfExists;
14528
17110
class WinImportHandler;
14529
17111
class WinMacros;
14530
 
class CMatchSyntax;
14531
 
class ExtGnu;
 
17112
class WinAsm;
 
17113
class WinDeclSpecs;
 
17114
class WinMemberExplSpec;
 
17115
class WinTypeKeywords;
 
17116
class WinFriend;
14532
17117
class ExtAC;
14533
17118
class ExtACBuilderCoupling;
14534
17119
class ExtACSyntaxCoupling;
14535
17120
class ExtACTree;
14536
17121
class ExtACKeywords;
14537
 
class WinAsm;
14538
 
class WinDeclSpecs;
14539
 
class WinMemberExplSpec;
14540
 
class WinTypeKeywords;
 
17122
class ExtGnu;
14541
17123
class PragmaOnceUnitState;
14542
17124
class PragmaOnce;
14543
 
class CCExprResolve;
14544
 
class CExprResolve;
 
17125
class CMatchSyntax;
14545
17126
namespace Puma {
14546
17127
 
14547
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17128
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14548
17129
class CT_MembInitList : public CT_List, public CSemScope {
14549
 
#line 14550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17130
#line 17131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17131
  friend class ::CCExprResolve;
 
17132
  friend class ::CExprResolve;
14550
17133
  friend class ::WinIfExists;
14551
17134
  friend class ::WinImportHandler;
14552
17135
  friend class ::WinMacros;
14553
 
  friend class ::CMatchSyntax;
14554
 
  friend class ::ExtGnu;
 
17136
  friend class ::WinAsm;
 
17137
  friend class ::WinDeclSpecs;
 
17138
  friend class ::WinMemberExplSpec;
 
17139
  friend class ::WinTypeKeywords;
 
17140
  friend class ::WinFriend;
14555
17141
  friend class ::ExtAC;
14556
17142
  friend class ::ExtACBuilderCoupling;
14557
17143
  friend class ::ExtACSyntaxCoupling;
14558
17144
  friend class ::ExtACTree;
14559
17145
  friend class ::ExtACKeywords;
14560
 
  friend class ::WinAsm;
14561
 
  friend class ::WinDeclSpecs;
14562
 
  friend class ::WinMemberExplSpec;
14563
 
  friend class ::WinTypeKeywords;
 
17146
  friend class ::ExtGnu;
14564
17147
  friend class ::PragmaOnceUnitState;
14565
17148
  friend class ::PragmaOnce;
14566
 
  friend class ::CCExprResolve;
14567
 
  friend class ::CExprResolve;
 
17149
  friend class ::CMatchSyntax;
14568
17150
 
14569
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17151
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14570
17152
 
14571
17153
public:
14572
17154
  CT_MembInitList (int size = 2) : 
14573
17155
    CT_List (size, 2, CT_List::OPEN) {}
14574
17156
  static const char *NodeId ();
 
17157
  /** Get the name of the node. Can be compared with NodeId(). */
14575
17158
  const char *NodeName () const { return NodeId (); }
 
17159
  CSemScope *SemScope () const { return (CSemScope*)this; }
14576
17160
};
14577
17161
 
14578
17162
 
14579
 
#line 14580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17163
#line 17164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14580
17164
} // closed Puma
 
17165
class CCExprResolve;
 
17166
class CExprResolve;
14581
17167
class WinIfExists;
14582
17168
class WinImportHandler;
14583
17169
class WinMacros;
14584
 
class CMatchSyntax;
14585
 
class ExtGnu;
 
17170
class WinAsm;
 
17171
class WinDeclSpecs;
 
17172
class WinMemberExplSpec;
 
17173
class WinTypeKeywords;
 
17174
class WinFriend;
14586
17175
class ExtAC;
14587
17176
class ExtACBuilderCoupling;
14588
17177
class ExtACSyntaxCoupling;
14589
17178
class ExtACTree;
14590
17179
class ExtACKeywords;
14591
 
class WinAsm;
14592
 
class WinDeclSpecs;
14593
 
class WinMemberExplSpec;
14594
 
class WinTypeKeywords;
 
17180
class ExtGnu;
14595
17181
class PragmaOnceUnitState;
14596
17182
class PragmaOnce;
14597
 
class CCExprResolve;
14598
 
class CExprResolve;
14599
 
namespace Puma {
14600
 
 
14601
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17183
class CMatchSyntax;
 
17184
namespace Puma {
 
17185
 
 
17186
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17187
 
 
17188
#line 17189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17189
} // closed Puma
 
17190
 
 
17191
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
17192
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
17193
#include "CCExprResolveH.ah"
 
17194
#endif
 
17195
namespace Puma {
 
17196
 
 
17197
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17198
 
 
17199
#line 17200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17200
} // closed Puma
 
17201
 
 
17202
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
17203
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
17204
#include "CExprResolveH.ah"
 
17205
#endif
 
17206
namespace Puma {
 
17207
 
 
17208
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14602
17209
class CT_MembInit : public CT_Expression, public CSemObject {
14603
 
#line 14604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17210
#line 17211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17211
  friend class ::CCExprResolve;
 
17212
  friend class ::CExprResolve;
14604
17213
  friend class ::WinIfExists;
14605
17214
  friend class ::WinImportHandler;
14606
17215
  friend class ::WinMacros;
14607
 
  friend class ::CMatchSyntax;
14608
 
  friend class ::ExtGnu;
 
17216
  friend class ::WinAsm;
 
17217
  friend class ::WinDeclSpecs;
 
17218
  friend class ::WinMemberExplSpec;
 
17219
  friend class ::WinTypeKeywords;
 
17220
  friend class ::WinFriend;
14609
17221
  friend class ::ExtAC;
14610
17222
  friend class ::ExtACBuilderCoupling;
14611
17223
  friend class ::ExtACSyntaxCoupling;
14612
17224
  friend class ::ExtACTree;
14613
17225
  friend class ::ExtACKeywords;
14614
 
  friend class ::WinAsm;
14615
 
  friend class ::WinDeclSpecs;
14616
 
  friend class ::WinMemberExplSpec;
14617
 
  friend class ::WinTypeKeywords;
 
17226
  friend class ::ExtGnu;
14618
17227
  friend class ::PragmaOnceUnitState;
14619
17228
  friend class ::PragmaOnce;
14620
 
  friend class ::CCExprResolve;
14621
 
  friend class ::CExprResolve;
 
17229
  friend class ::CMatchSyntax;
14622
17230
 
14623
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17231
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14624
17232
 
14625
17233
  CTree *sons[2]; // name, init
14626
17234
 
14627
17235
public:
14628
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
17236
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
17237
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14629
17238
  static const char *NodeId ();
 
17239
  /** Get the name of the node. Can be compared with NodeId(). */
14630
17240
  const char *NodeName () const { return NodeId (); }
 
17241
  /** Get the number of sons. */
14631
17242
  int Sons () const { return 2; }
 
17243
  /** Get the n-th son.
 
17244
   *  \param n The index of the son.
 
17245
   *  \return The n-th son or NULL. */
14632
17246
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
17247
  /** Replace a son.
 
17248
   *  \param old_son The son to replace.
 
17249
   *  \param new_son The new son. */
14633
17250
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14634
17251
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14635
17252
  }
14639
17256
   private:
14640
17257
  typedef CT_MembInit CCExprResolveExpr;
14641
17258
 
14642
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
17259
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
14643
17260
 public :
14644
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
17261
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
14645
17262
  typedef CT_MembInit CExprResolveExpr;
14646
17263
 
14647
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
17264
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
14648
17265
 public :
14649
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
14650
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17266
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
17267
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14651
17268
};
14652
17269
 
14653
17270
 
14654
 
#line 14655 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17271
#line 17272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14655
17272
} // closed Puma
 
17273
class CCExprResolve;
 
17274
class CExprResolve;
14656
17275
class WinIfExists;
14657
17276
class WinImportHandler;
14658
17277
class WinMacros;
14659
 
class CMatchSyntax;
14660
 
class ExtGnu;
 
17278
class WinAsm;
 
17279
class WinDeclSpecs;
 
17280
class WinMemberExplSpec;
 
17281
class WinTypeKeywords;
 
17282
class WinFriend;
14661
17283
class ExtAC;
14662
17284
class ExtACBuilderCoupling;
14663
17285
class ExtACSyntaxCoupling;
14664
17286
class ExtACTree;
14665
17287
class ExtACKeywords;
14666
 
class WinAsm;
14667
 
class WinDeclSpecs;
14668
 
class WinMemberExplSpec;
14669
 
class WinTypeKeywords;
 
17288
class ExtGnu;
14670
17289
class PragmaOnceUnitState;
14671
17290
class PragmaOnce;
14672
 
class CCExprResolve;
14673
 
class CExprResolve;
 
17291
class CMatchSyntax;
14674
17292
namespace Puma {
14675
17293
 
14676
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17294
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14677
17295
class CT_BaseSpecList : public CT_List {
14678
 
#line 14679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17296
#line 17297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17297
  friend class ::CCExprResolve;
 
17298
  friend class ::CExprResolve;
14679
17299
  friend class ::WinIfExists;
14680
17300
  friend class ::WinImportHandler;
14681
17301
  friend class ::WinMacros;
14682
 
  friend class ::CMatchSyntax;
14683
 
  friend class ::ExtGnu;
 
17302
  friend class ::WinAsm;
 
17303
  friend class ::WinDeclSpecs;
 
17304
  friend class ::WinMemberExplSpec;
 
17305
  friend class ::WinTypeKeywords;
 
17306
  friend class ::WinFriend;
14684
17307
  friend class ::ExtAC;
14685
17308
  friend class ::ExtACBuilderCoupling;
14686
17309
  friend class ::ExtACSyntaxCoupling;
14687
17310
  friend class ::ExtACTree;
14688
17311
  friend class ::ExtACKeywords;
14689
 
  friend class ::WinAsm;
14690
 
  friend class ::WinDeclSpecs;
14691
 
  friend class ::WinMemberExplSpec;
14692
 
  friend class ::WinTypeKeywords;
 
17312
  friend class ::ExtGnu;
14693
17313
  friend class ::PragmaOnceUnitState;
14694
17314
  friend class ::PragmaOnce;
14695
 
  friend class ::CCExprResolve;
14696
 
  friend class ::CExprResolve;
 
17315
  friend class ::CMatchSyntax;
14697
17316
 
14698
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17317
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14699
17318
 
14700
17319
public:
14701
17320
  CT_BaseSpecList (int size = 2) : 
14702
17321
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
17322
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14703
17323
  static const char *NodeId ();
 
17324
  /** Get the name of the node. Can be compared with NodeId(). */
14704
17325
  const char *NodeName () const { return NodeId (); }
14705
17326
};
14706
17327
 
14707
17328
 
14708
 
#line 14709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17329
#line 17330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14709
17330
} // closed Puma
 
17331
class CCExprResolve;
 
17332
class CExprResolve;
14710
17333
class WinIfExists;
14711
17334
class WinImportHandler;
14712
17335
class WinMacros;
14713
 
class CMatchSyntax;
14714
 
class ExtGnu;
 
17336
class WinAsm;
 
17337
class WinDeclSpecs;
 
17338
class WinMemberExplSpec;
 
17339
class WinTypeKeywords;
 
17340
class WinFriend;
14715
17341
class ExtAC;
14716
17342
class ExtACBuilderCoupling;
14717
17343
class ExtACSyntaxCoupling;
14718
17344
class ExtACTree;
14719
17345
class ExtACKeywords;
14720
 
class WinAsm;
14721
 
class WinDeclSpecs;
14722
 
class WinMemberExplSpec;
14723
 
class WinTypeKeywords;
 
17346
class ExtGnu;
14724
17347
class PragmaOnceUnitState;
14725
17348
class PragmaOnce;
14726
 
class CCExprResolve;
14727
 
class CExprResolve;
 
17349
class CMatchSyntax;
14728
17350
namespace Puma {
14729
17351
 
14730
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17352
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14731
17353
class CT_AccessSpec : public CTree {
14732
 
#line 14733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17354
#line 17355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17355
  friend class ::CCExprResolve;
 
17356
  friend class ::CExprResolve;
14733
17357
  friend class ::WinIfExists;
14734
17358
  friend class ::WinImportHandler;
14735
17359
  friend class ::WinMacros;
14736
 
  friend class ::CMatchSyntax;
14737
 
  friend class ::ExtGnu;
 
17360
  friend class ::WinAsm;
 
17361
  friend class ::WinDeclSpecs;
 
17362
  friend class ::WinMemberExplSpec;
 
17363
  friend class ::WinTypeKeywords;
 
17364
  friend class ::WinFriend;
14738
17365
  friend class ::ExtAC;
14739
17366
  friend class ::ExtACBuilderCoupling;
14740
17367
  friend class ::ExtACSyntaxCoupling;
14741
17368
  friend class ::ExtACTree;
14742
17369
  friend class ::ExtACKeywords;
14743
 
  friend class ::WinAsm;
14744
 
  friend class ::WinDeclSpecs;
14745
 
  friend class ::WinMemberExplSpec;
14746
 
  friend class ::WinTypeKeywords;
 
17370
  friend class ::ExtGnu;
14747
17371
  friend class ::PragmaOnceUnitState;
14748
17372
  friend class ::PragmaOnce;
14749
 
  friend class ::CCExprResolve;
14750
 
  friend class ::CExprResolve;
 
17373
  friend class ::CMatchSyntax;
14751
17374
 
14752
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17375
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14753
17376
 
14754
17377
  CTree *sons[2]; // access, colon
14755
17378
 
14756
17379
public:
14757
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
17380
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
17381
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14758
17382
  static const char *NodeId ();
 
17383
  /** Get the name of the node. Can be compared with NodeId(). */
14759
17384
  const char *NodeName () const { return NodeId (); }
 
17385
  /** Get the number of sons. */
14760
17386
  int Sons () const { return 2; }
 
17387
  /** Get the n-th son.
 
17388
   *  \param n The index of the son.
 
17389
   *  \return The n-th son or NULL. */
14761
17390
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
14762
17391
  int Access () const { return sons[0]->token ()->type (); }
 
17392
  /** Replace a son.
 
17393
   *  \param old_son The son to replace.
 
17394
   *  \param new_son The new son. */
14763
17395
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14764
17396
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14765
17397
  }
14766
17398
};
14767
17399
 
14768
17400
 
14769
 
#line 14770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17401
#line 17402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14770
17402
} // closed Puma
 
17403
class CCExprResolve;
 
17404
class CExprResolve;
14771
17405
class WinIfExists;
14772
17406
class WinImportHandler;
14773
17407
class WinMacros;
14774
 
class CMatchSyntax;
14775
 
class ExtGnu;
 
17408
class WinAsm;
 
17409
class WinDeclSpecs;
 
17410
class WinMemberExplSpec;
 
17411
class WinTypeKeywords;
 
17412
class WinFriend;
14776
17413
class ExtAC;
14777
17414
class ExtACBuilderCoupling;
14778
17415
class ExtACSyntaxCoupling;
14779
17416
class ExtACTree;
14780
17417
class ExtACKeywords;
14781
 
class WinAsm;
14782
 
class WinDeclSpecs;
14783
 
class WinMemberExplSpec;
14784
 
class WinTypeKeywords;
 
17418
class ExtGnu;
14785
17419
class PragmaOnceUnitState;
14786
17420
class PragmaOnce;
14787
 
class CCExprResolve;
14788
 
class CExprResolve;
 
17421
class CMatchSyntax;
14789
17422
namespace Puma {
14790
17423
 
14791
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17424
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14792
17425
class CT_BaseSpec : public CTree {
14793
 
#line 14794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17426
#line 17427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17427
  friend class ::CCExprResolve;
 
17428
  friend class ::CExprResolve;
14794
17429
  friend class ::WinIfExists;
14795
17430
  friend class ::WinImportHandler;
14796
17431
  friend class ::WinMacros;
14797
 
  friend class ::CMatchSyntax;
14798
 
  friend class ::ExtGnu;
 
17432
  friend class ::WinAsm;
 
17433
  friend class ::WinDeclSpecs;
 
17434
  friend class ::WinMemberExplSpec;
 
17435
  friend class ::WinTypeKeywords;
 
17436
  friend class ::WinFriend;
14799
17437
  friend class ::ExtAC;
14800
17438
  friend class ::ExtACBuilderCoupling;
14801
17439
  friend class ::ExtACSyntaxCoupling;
14802
17440
  friend class ::ExtACTree;
14803
17441
  friend class ::ExtACKeywords;
14804
 
  friend class ::WinAsm;
14805
 
  friend class ::WinDeclSpecs;
14806
 
  friend class ::WinMemberExplSpec;
14807
 
  friend class ::WinTypeKeywords;
 
17442
  friend class ::ExtGnu;
14808
17443
  friend class ::PragmaOnceUnitState;
14809
17444
  friend class ::PragmaOnce;
14810
 
  friend class ::CCExprResolve;
14811
 
  friend class ::CExprResolve;
 
17445
  friend class ::CMatchSyntax;
14812
17446
 
14813
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17447
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14814
17448
 
14815
17449
  CTree *sons[3]; // virtual, access, name
14816
17450
 
14817
17451
public:
14818
17452
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
14819
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
17453
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
14820
17454
  }
 
17455
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14821
17456
  static const char *NodeId ();
 
17457
  /** Get the name of the node. Can be compared with NodeId(). */
14822
17458
  const char *NodeName () const { return NodeId (); }
 
17459
  /** Get the number of sons. */
14823
17460
  int Sons () const { return CTree::Sons (sons, 3); }
 
17461
  /** Get the n-th son.
 
17462
   *  \param n The index of the son.
 
17463
   *  \return The n-th son or NULL. */
14824
17464
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
14825
17465
  int Access () const { return sons[1]->token ()->type (); }
14826
17466
  CTree *AccessSpec () const { return sons[1]; }
14827
17467
  CTree *Virtual () const { return sons[0]; }
14828
17468
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
17469
  /** Replace a son.
 
17470
   *  \param old_son The son to replace.
 
17471
   *  \param new_son The new son. */
14829
17472
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14830
17473
    CTree::ReplaceSon (sons, 3, old_son, new_son);
14831
17474
  }
14832
17475
};
14833
17476
 
14834
17477
 
14835
 
#line 14836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17478
#line 17479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14836
17479
} // closed Puma
 
17480
class CCExprResolve;
 
17481
class CExprResolve;
14837
17482
class WinIfExists;
14838
17483
class WinImportHandler;
14839
17484
class WinMacros;
14840
 
class CMatchSyntax;
14841
 
class ExtGnu;
 
17485
class WinAsm;
 
17486
class WinDeclSpecs;
 
17487
class WinMemberExplSpec;
 
17488
class WinTypeKeywords;
 
17489
class WinFriend;
14842
17490
class ExtAC;
14843
17491
class ExtACBuilderCoupling;
14844
17492
class ExtACSyntaxCoupling;
14845
17493
class ExtACTree;
14846
17494
class ExtACKeywords;
14847
 
class WinAsm;
14848
 
class WinDeclSpecs;
14849
 
class WinMemberExplSpec;
14850
 
class WinTypeKeywords;
 
17495
class ExtGnu;
14851
17496
class PragmaOnceUnitState;
14852
17497
class PragmaOnce;
14853
 
class CCExprResolve;
14854
 
class CExprResolve;
 
17498
class CMatchSyntax;
14855
17499
namespace Puma {
14856
17500
 
14857
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17501
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14858
17502
class CT_AccessDecl : public CT_Decl {
14859
 
#line 14860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17503
#line 17504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17504
  friend class ::CCExprResolve;
 
17505
  friend class ::CExprResolve;
14860
17506
  friend class ::WinIfExists;
14861
17507
  friend class ::WinImportHandler;
14862
17508
  friend class ::WinMacros;
14863
 
  friend class ::CMatchSyntax;
14864
 
  friend class ::ExtGnu;
 
17509
  friend class ::WinAsm;
 
17510
  friend class ::WinDeclSpecs;
 
17511
  friend class ::WinMemberExplSpec;
 
17512
  friend class ::WinTypeKeywords;
 
17513
  friend class ::WinFriend;
14865
17514
  friend class ::ExtAC;
14866
17515
  friend class ::ExtACBuilderCoupling;
14867
17516
  friend class ::ExtACSyntaxCoupling;
14868
17517
  friend class ::ExtACTree;
14869
17518
  friend class ::ExtACKeywords;
14870
 
  friend class ::WinAsm;
14871
 
  friend class ::WinDeclSpecs;
14872
 
  friend class ::WinMemberExplSpec;
14873
 
  friend class ::WinTypeKeywords;
 
17519
  friend class ::ExtGnu;
14874
17520
  friend class ::PragmaOnceUnitState;
14875
17521
  friend class ::PragmaOnce;
14876
 
  friend class ::CCExprResolve;
14877
 
  friend class ::CExprResolve;
 
17522
  friend class ::CMatchSyntax;
14878
17523
 
14879
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17524
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14880
17525
 
14881
17526
  CTree *sons[2]; // name, semi_colon
14882
17527
 
14883
17528
public:
14884
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
17529
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
17530
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14885
17531
  static const char *NodeId ();
 
17532
  /** Get the name of the node. Can be compared with NodeId(). */
14886
17533
  const char *NodeName () const { return NodeId (); }
 
17534
  /** Get the number of sons. */
14887
17535
  int Sons () const { return 2; }
 
17536
  /** Get the n-th son.
 
17537
   *  \param n The index of the son.
 
17538
   *  \return The n-th son or NULL. */
14888
17539
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
14889
17540
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
17541
  /** Replace a son.
 
17542
   *  \param old_son The son to replace.
 
17543
   *  \param new_son The new son. */
14890
17544
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14891
17545
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14892
17546
  }
14893
17547
};
14894
17548
 
14895
17549
 
14896
 
#line 14897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17550
#line 17551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14897
17551
} // closed Puma
 
17552
class CCExprResolve;
 
17553
class CExprResolve;
14898
17554
class WinIfExists;
14899
17555
class WinImportHandler;
14900
17556
class WinMacros;
14901
 
class CMatchSyntax;
14902
 
class ExtGnu;
 
17557
class WinAsm;
 
17558
class WinDeclSpecs;
 
17559
class WinMemberExplSpec;
 
17560
class WinTypeKeywords;
 
17561
class WinFriend;
14903
17562
class ExtAC;
14904
17563
class ExtACBuilderCoupling;
14905
17564
class ExtACSyntaxCoupling;
14906
17565
class ExtACTree;
14907
17566
class ExtACKeywords;
14908
 
class WinAsm;
14909
 
class WinDeclSpecs;
14910
 
class WinMemberExplSpec;
14911
 
class WinTypeKeywords;
 
17567
class ExtGnu;
14912
17568
class PragmaOnceUnitState;
14913
17569
class PragmaOnce;
14914
 
class CCExprResolve;
14915
 
class CExprResolve;
 
17570
class CMatchSyntax;
14916
17571
namespace Puma {
14917
17572
 
14918
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17573
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14919
17574
class CT_UsingDecl : public CT_AccessDecl {
14920
 
#line 14921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17575
#line 17576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17576
  friend class ::CCExprResolve;
 
17577
  friend class ::CExprResolve;
14921
17578
  friend class ::WinIfExists;
14922
17579
  friend class ::WinImportHandler;
14923
17580
  friend class ::WinMacros;
14924
 
  friend class ::CMatchSyntax;
14925
 
  friend class ::ExtGnu;
 
17581
  friend class ::WinAsm;
 
17582
  friend class ::WinDeclSpecs;
 
17583
  friend class ::WinMemberExplSpec;
 
17584
  friend class ::WinTypeKeywords;
 
17585
  friend class ::WinFriend;
14926
17586
  friend class ::ExtAC;
14927
17587
  friend class ::ExtACBuilderCoupling;
14928
17588
  friend class ::ExtACSyntaxCoupling;
14929
17589
  friend class ::ExtACTree;
14930
17590
  friend class ::ExtACKeywords;
14931
 
  friend class ::WinAsm;
14932
 
  friend class ::WinDeclSpecs;
14933
 
  friend class ::WinMemberExplSpec;
14934
 
  friend class ::WinTypeKeywords;
 
17591
  friend class ::ExtGnu;
14935
17592
  friend class ::PragmaOnceUnitState;
14936
17593
  friend class ::PragmaOnce;
14937
 
  friend class ::CCExprResolve;
14938
 
  friend class ::CExprResolve;
 
17594
  friend class ::CMatchSyntax;
14939
17595
 
14940
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17596
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14941
17597
 
14942
17598
  CTree *sons[2]; // using, typename
14943
17599
 
14944
17600
public:
14945
17601
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
14946
 
    sons[0] = u; sons[1] = 0; 
 
17602
    AddSon (sons[0], u); AddSon (sons[1], 0); 
14947
17603
  }
14948
17604
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
14949
 
    sons[0] = u; sons[1] = t; 
 
17605
    AddSon (sons[0], u); AddSon (sons[1], t); 
14950
17606
  }
 
17607
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14951
17608
  static const char *NodeId ();
 
17609
  /** Get the name of the node. Can be compared with NodeId(). */
14952
17610
  const char *NodeName () const { return NodeId (); }
 
17611
  /** Get the number of sons. */
14953
17612
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
17613
  /** Get the n-th son.
 
17614
   *  \param n The index of the son.
 
17615
   *  \return The n-th son or NULL. */
14954
17616
  CTree *Son (int n) const {
14955
17617
    int num = CTree::Sons (sons, 2);
14956
17618
    CTree *result = CTree::Son (sons, 2, n);
14957
17619
    return result ? result : CT_AccessDecl::Son (n-num);
14958
17620
  }
14959
17621
  CTree *Typename () const { return sons[1]; }
 
17622
  /** Replace a son.
 
17623
   *  \param old_son The son to replace.
 
17624
   *  \param new_son The new son. */
14960
17625
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14961
17626
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14962
17627
    CT_AccessDecl::ReplaceSon (old_son, new_son);
14970
17635
/*****************************************************************************/
14971
17636
 
14972
17637
 
14973
 
#line 14974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17638
#line 17639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
14974
17639
} // closed Puma
 
17640
class CCExprResolve;
 
17641
class CExprResolve;
14975
17642
class WinIfExists;
14976
17643
class WinImportHandler;
14977
17644
class WinMacros;
14978
 
class CMatchSyntax;
14979
 
class ExtGnu;
 
17645
class WinAsm;
 
17646
class WinDeclSpecs;
 
17647
class WinMemberExplSpec;
 
17648
class WinTypeKeywords;
 
17649
class WinFriend;
14980
17650
class ExtAC;
14981
17651
class ExtACBuilderCoupling;
14982
17652
class ExtACSyntaxCoupling;
14983
17653
class ExtACTree;
14984
17654
class ExtACKeywords;
14985
 
class WinAsm;
14986
 
class WinDeclSpecs;
14987
 
class WinMemberExplSpec;
14988
 
class WinTypeKeywords;
 
17655
class ExtGnu;
14989
17656
class PragmaOnceUnitState;
14990
17657
class PragmaOnce;
14991
 
class CCExprResolve;
14992
 
class CExprResolve;
 
17658
class CMatchSyntax;
14993
17659
namespace Puma {
14994
17660
 
14995
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17661
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14996
17662
class CT_Any : public CTree {
14997
 
#line 14998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17663
#line 17664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17664
  friend class ::CCExprResolve;
 
17665
  friend class ::CExprResolve;
14998
17666
  friend class ::WinIfExists;
14999
17667
  friend class ::WinImportHandler;
15000
17668
  friend class ::WinMacros;
15001
 
  friend class ::CMatchSyntax;
15002
 
  friend class ::ExtGnu;
 
17669
  friend class ::WinAsm;
 
17670
  friend class ::WinDeclSpecs;
 
17671
  friend class ::WinMemberExplSpec;
 
17672
  friend class ::WinTypeKeywords;
 
17673
  friend class ::WinFriend;
15003
17674
  friend class ::ExtAC;
15004
17675
  friend class ::ExtACBuilderCoupling;
15005
17676
  friend class ::ExtACSyntaxCoupling;
15006
17677
  friend class ::ExtACTree;
15007
17678
  friend class ::ExtACKeywords;
15008
 
  friend class ::WinAsm;
15009
 
  friend class ::WinDeclSpecs;
15010
 
  friend class ::WinMemberExplSpec;
15011
 
  friend class ::WinTypeKeywords;
 
17679
  friend class ::ExtGnu;
15012
17680
  friend class ::PragmaOnceUnitState;
15013
17681
  friend class ::PragmaOnce;
15014
 
  friend class ::CCExprResolve;
15015
 
  friend class ::CExprResolve;
 
17682
  friend class ::CMatchSyntax;
15016
17683
 
15017
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17684
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15018
17685
 
15019
17686
  CTree *sons[2]; // keyword, extension
15020
17687
 
15021
17688
public:
15022
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
17689
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
17690
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15023
17691
  static const char *NodeId ();
 
17692
  /** Get the name of the node. Can be compared with NodeId(). */
15024
17693
  const char *NodeName () const { return NodeId (); }
 
17694
  /** Get the number of sons. */
15025
17695
  int Sons () const { return CTree::Sons (sons, 2); }
 
17696
  /** Get the n-th son.
 
17697
   *  \param n The index of the son.
 
17698
   *  \return The n-th son or NULL. */
15026
17699
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
17700
  /** Replace a son.
 
17701
   *  \param old_son The son to replace.
 
17702
   *  \param new_son The new son. */
15027
17703
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15028
17704
    CTree::ReplaceSon (sons, 2, old_son, new_son);
15029
17705
  }
15032
17708
};
15033
17709
 
15034
17710
 
15035
 
#line 15036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17711
#line 17712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
15036
17712
} // closed Puma
 
17713
class CCExprResolve;
 
17714
class CExprResolve;
15037
17715
class WinIfExists;
15038
17716
class WinImportHandler;
15039
17717
class WinMacros;
15040
 
class CMatchSyntax;
15041
 
class ExtGnu;
 
17718
class WinAsm;
 
17719
class WinDeclSpecs;
 
17720
class WinMemberExplSpec;
 
17721
class WinTypeKeywords;
 
17722
class WinFriend;
15042
17723
class ExtAC;
15043
17724
class ExtACBuilderCoupling;
15044
17725
class ExtACSyntaxCoupling;
15045
17726
class ExtACTree;
15046
17727
class ExtACKeywords;
15047
 
class WinAsm;
15048
 
class WinDeclSpecs;
15049
 
class WinMemberExplSpec;
15050
 
class WinTypeKeywords;
 
17728
class ExtGnu;
15051
17729
class PragmaOnceUnitState;
15052
17730
class PragmaOnce;
15053
 
class CCExprResolve;
15054
 
class CExprResolve;
 
17731
class CMatchSyntax;
15055
17732
namespace Puma {
15056
17733
 
15057
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17734
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15058
17735
class CT_AnyList : public CT_Any {
15059
 
#line 15060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17736
#line 17737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17737
  friend class ::CCExprResolve;
 
17738
  friend class ::CExprResolve;
15060
17739
  friend class ::WinIfExists;
15061
17740
  friend class ::WinImportHandler;
15062
17741
  friend class ::WinMacros;
15063
 
  friend class ::CMatchSyntax;
15064
 
  friend class ::ExtGnu;
 
17742
  friend class ::WinAsm;
 
17743
  friend class ::WinDeclSpecs;
 
17744
  friend class ::WinMemberExplSpec;
 
17745
  friend class ::WinTypeKeywords;
 
17746
  friend class ::WinFriend;
15065
17747
  friend class ::ExtAC;
15066
17748
  friend class ::ExtACBuilderCoupling;
15067
17749
  friend class ::ExtACSyntaxCoupling;
15068
17750
  friend class ::ExtACTree;
15069
17751
  friend class ::ExtACKeywords;
15070
 
  friend class ::WinAsm;
15071
 
  friend class ::WinDeclSpecs;
15072
 
  friend class ::WinMemberExplSpec;
15073
 
  friend class ::WinTypeKeywords;
 
17752
  friend class ::ExtGnu;
15074
17753
  friend class ::PragmaOnceUnitState;
15075
17754
  friend class ::PragmaOnce;
15076
 
  friend class ::CCExprResolve;
15077
 
  friend class ::CExprResolve;
 
17755
  friend class ::CMatchSyntax;
15078
17756
 
15079
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17757
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15080
17758
 
15081
17759
public:
15082
17760
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
17761
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15083
17762
  static const char *NodeId ();
 
17763
  /** Get the name of the node. Can be compared with NodeId(). */
15084
17764
  const char *NodeName () const { return NodeId (); }
15085
17765
};
15086
17766
 
15087
17767
 
15088
 
#line 15089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17768
#line 17769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
15089
17769
} // closed Puma
 
17770
class CCExprResolve;
 
17771
class CExprResolve;
15090
17772
class WinIfExists;
15091
17773
class WinImportHandler;
15092
17774
class WinMacros;
15093
 
class CMatchSyntax;
15094
 
class ExtGnu;
 
17775
class WinAsm;
 
17776
class WinDeclSpecs;
 
17777
class WinMemberExplSpec;
 
17778
class WinTypeKeywords;
 
17779
class WinFriend;
15095
17780
class ExtAC;
15096
17781
class ExtACBuilderCoupling;
15097
17782
class ExtACSyntaxCoupling;
15098
17783
class ExtACTree;
15099
17784
class ExtACKeywords;
15100
 
class WinAsm;
15101
 
class WinDeclSpecs;
15102
 
class WinMemberExplSpec;
15103
 
class WinTypeKeywords;
 
17785
class ExtGnu;
15104
17786
class PragmaOnceUnitState;
15105
17787
class PragmaOnce;
15106
 
class CCExprResolve;
15107
 
class CExprResolve;
 
17788
class CMatchSyntax;
15108
17789
namespace Puma {
15109
17790
 
15110
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17791
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15111
17792
class CT_AnyExtension : public CTree, public CSemValue {
15112
 
#line 15113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17793
#line 17794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17794
  friend class ::CCExprResolve;
 
17795
  friend class ::CExprResolve;
15113
17796
  friend class ::WinIfExists;
15114
17797
  friend class ::WinImportHandler;
15115
17798
  friend class ::WinMacros;
15116
 
  friend class ::CMatchSyntax;
15117
 
  friend class ::ExtGnu;
 
17799
  friend class ::WinAsm;
 
17800
  friend class ::WinDeclSpecs;
 
17801
  friend class ::WinMemberExplSpec;
 
17802
  friend class ::WinTypeKeywords;
 
17803
  friend class ::WinFriend;
15118
17804
  friend class ::ExtAC;
15119
17805
  friend class ::ExtACBuilderCoupling;
15120
17806
  friend class ::ExtACSyntaxCoupling;
15121
17807
  friend class ::ExtACTree;
15122
17808
  friend class ::ExtACKeywords;
15123
 
  friend class ::WinAsm;
15124
 
  friend class ::WinDeclSpecs;
15125
 
  friend class ::WinMemberExplSpec;
15126
 
  friend class ::WinTypeKeywords;
 
17809
  friend class ::ExtGnu;
15127
17810
  friend class ::PragmaOnceUnitState;
15128
17811
  friend class ::PragmaOnce;
15129
 
  friend class ::CCExprResolve;
15130
 
  friend class ::CExprResolve;
 
17812
  friend class ::CMatchSyntax;
15131
17813
 
15132
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17814
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15133
17815
 
15134
17816
  CTree *sons[5]; // open, string, comma, cond, close
15135
17817
 
15136
17818
public:
15137
17819
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
15138
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
17820
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
17821
    AddSon (sons[3], c); AddSon (sons[4], cr); 
15139
17822
  }
 
17823
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15140
17824
  static const char *NodeId ();
 
17825
  /** Get the name of the node. Can be compared with NodeId(). */
15141
17826
  const char *NodeName () const { return NodeId (); }
 
17827
  /** Get the number of sons. */
15142
17828
  int Sons () const { return CTree::Sons (sons, 5); }
 
17829
  /** Get the n-th son.
 
17830
   *  \param n The index of the son.
 
17831
   *  \return The n-th son or NULL. */
15143
17832
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
17833
  /** Replace a son.
 
17834
   *  \param old_son The son to replace.
 
17835
   *  \param new_son The new son. */
15144
17836
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15145
17837
    CTree::ReplaceSon (sons, 5, old_son, new_son);
15146
17838
  }
15154
17846
};
15155
17847
 
15156
17848
 
15157
 
#line 15158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17849
#line 17850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
15158
17850
} // closed Puma
 
17851
class CCExprResolve;
 
17852
class CExprResolve;
15159
17853
class WinIfExists;
15160
17854
class WinImportHandler;
15161
17855
class WinMacros;
15162
 
class CMatchSyntax;
15163
 
class ExtGnu;
 
17856
class WinAsm;
 
17857
class WinDeclSpecs;
 
17858
class WinMemberExplSpec;
 
17859
class WinTypeKeywords;
 
17860
class WinFriend;
15164
17861
class ExtAC;
15165
17862
class ExtACBuilderCoupling;
15166
17863
class ExtACSyntaxCoupling;
15167
17864
class ExtACTree;
15168
17865
class ExtACKeywords;
15169
 
class WinAsm;
15170
 
class WinDeclSpecs;
15171
 
class WinMemberExplSpec;
15172
 
class WinTypeKeywords;
 
17866
class ExtGnu;
15173
17867
class PragmaOnceUnitState;
15174
17868
class PragmaOnce;
15175
 
class CCExprResolve;
15176
 
class CExprResolve;
 
17869
class CMatchSyntax;
15177
17870
namespace Puma {
15178
17871
 
15179
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17872
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15180
17873
class CT_AnyCondition : public CTree {
15181
 
#line 15182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17874
#line 17875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17875
  friend class ::CCExprResolve;
 
17876
  friend class ::CExprResolve;
15182
17877
  friend class ::WinIfExists;
15183
17878
  friend class ::WinImportHandler;
15184
17879
  friend class ::WinMacros;
15185
 
  friend class ::CMatchSyntax;
15186
 
  friend class ::ExtGnu;
 
17880
  friend class ::WinAsm;
 
17881
  friend class ::WinDeclSpecs;
 
17882
  friend class ::WinMemberExplSpec;
 
17883
  friend class ::WinTypeKeywords;
 
17884
  friend class ::WinFriend;
15187
17885
  friend class ::ExtAC;
15188
17886
  friend class ::ExtACBuilderCoupling;
15189
17887
  friend class ::ExtACSyntaxCoupling;
15190
17888
  friend class ::ExtACTree;
15191
17889
  friend class ::ExtACKeywords;
15192
 
  friend class ::WinAsm;
15193
 
  friend class ::WinDeclSpecs;
15194
 
  friend class ::WinMemberExplSpec;
15195
 
  friend class ::WinTypeKeywords;
 
17890
  friend class ::ExtGnu;
15196
17891
  friend class ::PragmaOnceUnitState;
15197
17892
  friend class ::PragmaOnce;
15198
 
  friend class ::CCExprResolve;
15199
 
  friend class ::CExprResolve;
 
17893
  friend class ::CMatchSyntax;
15200
17894
 
15201
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17895
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15202
17896
 
15203
17897
  CTree *sons[3]; // arg1, arg2, arg3
15204
17898
 
15205
17899
public:
15206
17900
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
15207
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
17901
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
15208
17902
  }
 
17903
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15209
17904
  static const char *NodeId ();
 
17905
  /** Get the name of the node. Can be compared with NodeId(). */
15210
17906
  const char *NodeName () const { return NodeId (); }
 
17907
  /** Get the number of sons. */
15211
17908
  int Sons () const { return CTree::Sons (sons, 3); }
 
17909
  /** Get the n-th son.
 
17910
   *  \param n The index of the son.
 
17911
   *  \return The n-th son or NULL. */
15212
17912
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
17913
  /** Replace a son.
 
17914
   *  \param old_son The son to replace.
 
17915
   *  \param new_son The new son. */
15213
17916
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15214
17917
    CTree::ReplaceSon (sons, 3, old_son, new_son);
15215
17918
  }
15220
17923
 
15221
17924
#endif /* __CTree_h__ */
15222
17925
 
15223
 
#line 15224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
15224
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
15225
 
 
15226
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
15227
 
 
15228
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
17926
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
15229
17927
namespace Puma {
15230
17928
 
15231
17929
 
15232
17930
class Token;
15233
17931
 
15234
17932
 
15235
 
#line 15236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17933
#line 17934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
15236
17934
} // closed Puma
 
17935
class CCExprResolve;
 
17936
class CExprResolve;
15237
17937
class WinIfExists;
15238
17938
class WinImportHandler;
15239
17939
class WinMacros;
15240
 
class CMatchSyntax;
15241
 
class ExtGnu;
 
17940
class WinAsm;
 
17941
class WinDeclSpecs;
 
17942
class WinMemberExplSpec;
 
17943
class WinTypeKeywords;
 
17944
class WinFriend;
15242
17945
class ExtAC;
15243
17946
class ExtACBuilderCoupling;
15244
17947
class ExtACSyntaxCoupling;
15245
17948
class ExtACTree;
15246
17949
class ExtACKeywords;
15247
 
class WinAsm;
15248
 
class WinDeclSpecs;
15249
 
class WinMemberExplSpec;
15250
 
class WinTypeKeywords;
 
17950
class ExtGnu;
15251
17951
class PragmaOnceUnitState;
15252
17952
class PragmaOnce;
15253
 
class CCExprResolve;
15254
 
class CExprResolve;
 
17953
class CMatchSyntax;
15255
17954
namespace Puma {
15256
17955
 
15257
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
17956
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
15258
17957
class Builder : public PtrStack<CTree> {
15259
 
#line 15260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17958
#line 17959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17959
  friend class ::CCExprResolve;
 
17960
  friend class ::CExprResolve;
15260
17961
  friend class ::WinIfExists;
15261
17962
  friend class ::WinImportHandler;
15262
17963
  friend class ::WinMacros;
15263
 
  friend class ::CMatchSyntax;
15264
 
  friend class ::ExtGnu;
 
17964
  friend class ::WinAsm;
 
17965
  friend class ::WinDeclSpecs;
 
17966
  friend class ::WinMemberExplSpec;
 
17967
  friend class ::WinTypeKeywords;
 
17968
  friend class ::WinFriend;
15265
17969
  friend class ::ExtAC;
15266
17970
  friend class ::ExtACBuilderCoupling;
15267
17971
  friend class ::ExtACSyntaxCoupling;
15268
17972
  friend class ::ExtACTree;
15269
17973
  friend class ::ExtACKeywords;
15270
 
  friend class ::WinAsm;
15271
 
  friend class ::WinDeclSpecs;
15272
 
  friend class ::WinMemberExplSpec;
15273
 
  friend class ::WinTypeKeywords;
 
17974
  friend class ::ExtGnu;
15274
17975
  friend class ::PragmaOnceUnitState;
15275
17976
  friend class ::PragmaOnce;
15276
 
  friend class ::CCExprResolve;
15277
 
  friend class ::CExprResolve;
 
17977
  friend class ::CMatchSyntax;
15278
17978
 
15279
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
17979
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
15280
17980
 
15281
17981
protected:
15282
17982
  ErrorCollector ec;
15285
17985
public:
15286
17986
  // Container class to shift nodes from one level to another
15287
17987
  class Container : public CT_List {
15288
 
#line 15289 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
17988
#line 17989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
17989
  friend class ::CCExprResolve;
 
17990
  friend class ::CExprResolve;
15289
17991
  friend class ::WinIfExists;
15290
17992
  friend class ::WinImportHandler;
15291
17993
  friend class ::WinMacros;
15292
 
  friend class ::CMatchSyntax;
15293
 
  friend class ::ExtGnu;
 
17994
  friend class ::WinAsm;
 
17995
  friend class ::WinDeclSpecs;
 
17996
  friend class ::WinMemberExplSpec;
 
17997
  friend class ::WinTypeKeywords;
 
17998
  friend class ::WinFriend;
15294
17999
  friend class ::ExtAC;
15295
18000
  friend class ::ExtACBuilderCoupling;
15296
18001
  friend class ::ExtACSyntaxCoupling;
15297
18002
  friend class ::ExtACTree;
15298
18003
  friend class ::ExtACKeywords;
15299
 
  friend class ::WinAsm;
15300
 
  friend class ::WinDeclSpecs;
15301
 
  friend class ::WinMemberExplSpec;
15302
 
  friend class ::WinTypeKeywords;
 
18004
  friend class ::ExtGnu;
15303
18005
  friend class ::PragmaOnceUnitState;
15304
18006
  friend class ::PragmaOnce;
15305
 
  friend class ::CCExprResolve;
15306
 
  friend class ::CExprResolve;
 
18007
  friend class ::CMatchSyntax;
15307
18008
 
15308
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
18009
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
15309
18010
 
15310
18011
  public:
15311
18012
    static const char *NodeId ();
15375
18076
 
15376
18077
#endif /* __Builder_h__ */
15377
18078
 
15378
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18079
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
15379
18080
//#include "Puma/Semantic.h"
15380
18081
 
15381
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
18082
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
15382
18083
// This file is part of PUMA.
15383
18084
// Copyright (C) 1999-2003  The PUMA developer team.
15384
18085
//                                                                
15404
18105
// look ahead.
15405
18106
 
15406
18107
 
15407
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
18108
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
15408
18109
// This file is part of PUMA.
15409
18110
// Copyright (C) 1999-2003  The PUMA developer team.
15410
18111
//                                                                
15432
18133
class Token;
15433
18134
 
15434
18135
 
15435
 
#line 15436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18136
#line 18137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
15436
18137
} // closed Puma
 
18138
class CCExprResolve;
 
18139
class CExprResolve;
15437
18140
class WinIfExists;
15438
18141
class WinImportHandler;
15439
18142
class WinMacros;
15440
 
class CMatchSyntax;
15441
 
class ExtGnu;
 
18143
class WinAsm;
 
18144
class WinDeclSpecs;
 
18145
class WinMemberExplSpec;
 
18146
class WinTypeKeywords;
 
18147
class WinFriend;
15442
18148
class ExtAC;
15443
18149
class ExtACBuilderCoupling;
15444
18150
class ExtACSyntaxCoupling;
15445
18151
class ExtACTree;
15446
18152
class ExtACKeywords;
15447
 
class WinAsm;
15448
 
class WinDeclSpecs;
15449
 
class WinMemberExplSpec;
15450
 
class WinTypeKeywords;
 
18153
class ExtGnu;
15451
18154
class PragmaOnceUnitState;
15452
18155
class PragmaOnce;
15453
 
class CCExprResolve;
15454
 
class CExprResolve;
 
18156
class CMatchSyntax;
15455
18157
namespace Puma {
15456
18158
 
15457
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
18159
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
15458
18160
class PumaTokenSource {
15459
 
#line 15460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18161
#line 18162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
18162
  friend class ::CCExprResolve;
 
18163
  friend class ::CExprResolve;
15460
18164
  friend class ::WinIfExists;
15461
18165
  friend class ::WinImportHandler;
15462
18166
  friend class ::WinMacros;
15463
 
  friend class ::CMatchSyntax;
15464
 
  friend class ::ExtGnu;
 
18167
  friend class ::WinAsm;
 
18168
  friend class ::WinDeclSpecs;
 
18169
  friend class ::WinMemberExplSpec;
 
18170
  friend class ::WinTypeKeywords;
 
18171
  friend class ::WinFriend;
15465
18172
  friend class ::ExtAC;
15466
18173
  friend class ::ExtACBuilderCoupling;
15467
18174
  friend class ::ExtACSyntaxCoupling;
15468
18175
  friend class ::ExtACTree;
15469
18176
  friend class ::ExtACKeywords;
15470
 
  friend class ::WinAsm;
15471
 
  friend class ::WinDeclSpecs;
15472
 
  friend class ::WinMemberExplSpec;
15473
 
  friend class ::WinTypeKeywords;
 
18177
  friend class ::ExtGnu;
15474
18178
  friend class ::PragmaOnceUnitState;
15475
18179
  friend class ::PragmaOnce;
15476
 
  friend class ::CCExprResolve;
15477
 
  friend class ::CExprResolve;
 
18180
  friend class ::CMatchSyntax;
15478
18181
 
15479
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
18182
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
15480
18183
 
15481
18184
protected:
15482
18185
  PumaTokenSource () {}
15491
18194
 
15492
18195
#endif /* __Token_Source__ */
15493
18196
 
15494
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
18197
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
15495
18198
namespace Puma {
15496
18199
 
15497
18200
 
15498
 
#line 15499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18201
#line 18202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
15499
18202
} // closed Puma
 
18203
class CCExprResolve;
 
18204
class CExprResolve;
15500
18205
class WinIfExists;
15501
18206
class WinImportHandler;
15502
18207
class WinMacros;
15503
 
class CMatchSyntax;
15504
 
class ExtGnu;
 
18208
class WinAsm;
 
18209
class WinDeclSpecs;
 
18210
class WinMemberExplSpec;
 
18211
class WinTypeKeywords;
 
18212
class WinFriend;
15505
18213
class ExtAC;
15506
18214
class ExtACBuilderCoupling;
15507
18215
class ExtACSyntaxCoupling;
15508
18216
class ExtACTree;
15509
18217
class ExtACKeywords;
15510
 
class WinAsm;
15511
 
class WinDeclSpecs;
15512
 
class WinMemberExplSpec;
15513
 
class WinTypeKeywords;
 
18218
class ExtGnu;
15514
18219
class PragmaOnceUnitState;
15515
18220
class PragmaOnce;
15516
 
class CCExprResolve;
15517
 
class CExprResolve;
 
18221
class CMatchSyntax;
15518
18222
namespace Puma {
15519
18223
 
15520
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
18224
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
15521
18225
class TokenProvider {
15522
 
#line 15523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18226
#line 18227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
18227
  friend class ::CCExprResolve;
 
18228
  friend class ::CExprResolve;
15523
18229
  friend class ::WinIfExists;
15524
18230
  friend class ::WinImportHandler;
15525
18231
  friend class ::WinMacros;
15526
 
  friend class ::CMatchSyntax;
15527
 
  friend class ::ExtGnu;
 
18232
  friend class ::WinAsm;
 
18233
  friend class ::WinDeclSpecs;
 
18234
  friend class ::WinMemberExplSpec;
 
18235
  friend class ::WinTypeKeywords;
 
18236
  friend class ::WinFriend;
15528
18237
  friend class ::ExtAC;
15529
18238
  friend class ::ExtACBuilderCoupling;
15530
18239
  friend class ::ExtACSyntaxCoupling;
15531
18240
  friend class ::ExtACTree;
15532
18241
  friend class ::ExtACKeywords;
15533
 
  friend class ::WinAsm;
15534
 
  friend class ::WinDeclSpecs;
15535
 
  friend class ::WinMemberExplSpec;
15536
 
  friend class ::WinTypeKeywords;
 
18242
  friend class ::ExtGnu;
15537
18243
  friend class ::PragmaOnceUnitState;
15538
18244
  friend class ::PragmaOnce;
15539
 
  friend class ::CCExprResolve;
15540
 
  friend class ::CExprResolve;
 
18245
  friend class ::CMatchSyntax;
15541
18246
 
15542
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
18247
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
15543
18248
 
15544
18249
  
15545
18250
  typedef BCList<Token*, 8192> TokenStore;
15563
18268
    // go to the next read position
15564
18269
    ++_read_pos;
15565
18270
    // did we reach the end of the list?
15566
 
    if (_read_pos == _tokens.end ()) {
 
18271
    if (! _read_pos) {
15567
18272
      // add a new token to the token list
15568
18273
      Token *token = _source.next (); // get the next token from the source
15569
18274
      _read_pos = _tokens.add (token);
15583
18288
 
15584
18289
#endif /* __TokenProvider__ */
15585
18290
 
15586
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/TraceSyntax.ah"
15587
 
// This file is part of PUMA.
15588
 
// Copyright (C) 1999-2003  The PUMA developer team.
15589
 
//                                                                
15590
 
// This program is free software;  you can redistribute it and/or 
15591
 
// modify it under the terms of the GNU General Public License as 
15592
 
// published by the Free Software Foundation; either version 2 of 
15593
 
// the License, or (at your option) any later version.            
15594
 
//                                                                
15595
 
// This program is distributed in the hope that it will be useful,
15596
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15597
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15598
 
// GNU General Public License for more details.                   
15599
 
//                                                                
15600
 
// You should have received a copy of the GNU General Public      
15601
 
// License along with this program; if not, write to the Free     
15602
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15603
 
// MA  02111-1307  USA                                            
15604
 
 
15605
 
#ifndef __TraceSyntax_ah__
15606
 
#define __TraceSyntax_ah__
15607
 
 
15608
 
#ifndef NDEBUG
15609
 
 
15610
 
#include "Puma/Tracing.h"
15611
 
//#include "Puma/TokenProvider.h"
15612
 
 
15613
 
 
15614
 
namespace Puma {
15615
 
  class CTree;
15616
 
} // namespace Puma
15617
 
 
15618
 
 
15619
 
using namespace Puma;
15620
 
 
15621
 
 
15622
 
aspect TraceSyntax : public Tracing {
15623
 
  int skipping;
15624
 
  
15625
 
  void trace_rule (const char *sig) {
15626
 
    char rule[256];
15627
 
    while (*sig != ' ') 
15628
 
      sig++;
15629
 
    sig += 1;
15630
 
    while (*sig != ':') 
15631
 
      sig++;
15632
 
    sig += 2;
15633
 
    char *rptr = rule;
15634
 
    while (*sig != '(')
15635
 
      *rptr++ = *sig++;
15636
 
    *rptr = '\0';
15637
 
    trace (rule);
15638
 
  }
15639
 
 
15640
 
public:
15641
 
  TraceSyntax () : skipping (0) {}
15642
 
 
15643
 
  // Create instances an define locator function
15644
 
  static TraceSyntax* aspectOf () 
15645
 
   { return thisJoinPoint->that ()->trace_aspect (); }
15646
 
 
15647
 
  // structural extensions
15648
 
  pointcut syntax () = "Puma::Syntax";
15649
 
  pointcut parser () = "Puma::Parser";
15650
 
 
15651
 
  advice syntax () : slice class {
15652
 
    TraceSyntax __trace;
15653
 
  public:
15654
 
    TraceSyntax *trace_aspect () { return &__trace; }
15655
 
    TokenProvider *__tp () { return token_provider; }
15656
 
  };
15657
 
  
15658
 
  // add initialization function to Parser
15659
 
  advice parser () : slice class {
15660
 
  public:
15661
 
    void trace (ostream &out, bool tokens = false) {
15662
 
      syntax->trace_aspect ()->trace (out, tokens);
15663
 
    }
15664
 
  };
15665
 
  
15666
 
  // advice code for rules
15667
 
  advice within (derived (syntax ()) && ! syntax ()) &&
15668
 
   execution ("%::CTree * Puma::%::%()") : before () 
15669
 
   { trace_rule (JoinPoint::signature ()); }
15670
 
 
15671
 
  advice within (syntax ()) && args (result, "%::Syntax::State") &&
15672
 
  execution ("bool Puma::%::accept(...)") : before (CTree *result) {
15673
 
    trace (result ? "ACCEPT" : "FAILED", -1);
15674
 
  }
15675
 
 
15676
 
  advice within (syntax ()) && execution ("% Puma::%::locate_token()") : after ()
15677
 
   { if (! skipping) this->trace (thisJoinPoint->that ()->
15678
 
                     __tp ()->current (), "INPUT", "INPUT END"); }
15679
 
 
15680
 
  // trace reset operations
15681
 
  // because of a problem in AspectC++ or PUMA we cannot expose 'state' here!!! fix me.
15682
 
  advice within (syntax ()) && call ("% Puma::TokenProvider::set_state(...)") /* &&
15683
 
    args (state) */ : around (/* TokenProvider::State state */) {
15684
 
    bool diff = (*tjp->arg<0>() != tjp->target ()->get_state ());
15685
 
    tjp->proceed ();
15686
 
    if (diff )
15687
 
      trace (**tjp->arg<0>(), "RESET", "INPUT END");
15688
 
  }
15689
 
 
15690
 
  // tracing for token provider calls within skip functions
15691
 
  advice within (syntax ()) && call ("% Puma::TokenProvider::next()") : before ()
15692
 
   { if (skipping && trace_mode ())
15693
 
       tos () << thisJoinPoint->target ()->current ()->text () << " "; }
15694
 
 
15695
 
  // trace token if required
15696
 
  advice within (syntax ()) && execution ("bool Puma::%::parse_token(...)") && 
15697
 
   args (tok) : around (int tok)
15698
 
   { if (trace_mode () == 2) trace (tok);
15699
 
     thisJoinPoint->action ().trigger ();
15700
 
     if (trace_mode () == 2)
15701
 
       trace (*(bool*)thisJoinPoint->result () ? "ACCEPT" : "FAILED", -1);}
15702
 
       
15703
 
  // trace consumed tokens
15704
 
  advice within (syntax ()) && execution ("bool Puma::%::consume()") : before () {
15705
 
    if (trace_mode () == 2) {
15706
 
      trace (tjp->that ()->token_provider->current ()->type ());
15707
 
      trace ("ACCEPT", -1);
15708
 
    }
15709
 
  }
15710
 
 
15711
 
  advice within (syntax ()) && execution ("% Puma::%::skip(...)") : around () {
15712
 
    skipping++;
15713
 
    if (trace_mode ()) tos () << "SKIP: ";
15714
 
    thisJoinPoint->action ().trigger ();
15715
 
    if (trace_mode ()) tos () << endl;
15716
 
    skipping--;
15717
 
  }
15718
 
 
15719
 
  advice within (syntax ()) && execution ("% Puma::%::skip_block()") : around () {
15720
 
    skipping++;
15721
 
    if (trace_mode ()) tos () << "SKIP_BLOCK: ";
15722
 
    thisJoinPoint->action ().trigger ();
15723
 
    if (trace_mode ()) tos () << endl;
15724
 
    skipping--;
15725
 
  }
15726
 
};
15727
 
 
15728
 
#endif
15729
 
 
15730
 
#endif /* __TraceSyntax_ah__ */
15731
 
 
15732
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18291
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
15733
18292
namespace Puma {
15734
18293
 
15735
18294
class Semantic;
15737
18296
class CTree;
15738
18297
 
15739
18298
 
15740
 
#line 15741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18299
#line 18300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
15741
18300
} // closed Puma
 
18301
class CCExprResolve;
 
18302
class CExprResolve;
15742
18303
class WinIfExists;
15743
18304
class WinImportHandler;
15744
18305
class WinMacros;
15745
 
class CMatchSyntax;
15746
 
class ExtGnu;
 
18306
class WinAsm;
 
18307
class WinDeclSpecs;
 
18308
class WinMemberExplSpec;
 
18309
class WinTypeKeywords;
 
18310
class WinFriend;
15747
18311
class ExtAC;
15748
18312
class ExtACBuilderCoupling;
15749
18313
class ExtACSyntaxCoupling;
15750
18314
class ExtACTree;
15751
18315
class ExtACKeywords;
15752
 
class WinAsm;
15753
 
class WinDeclSpecs;
15754
 
class WinMemberExplSpec;
15755
 
class WinTypeKeywords;
 
18316
class ExtGnu;
15756
18317
class PragmaOnceUnitState;
15757
18318
class PragmaOnce;
15758
 
class CCExprResolve;
15759
 
class CExprResolve;
 
18319
class CMatchSyntax;
15760
18320
namespace Puma {
15761
18321
 
15762
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18322
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
15763
18323
class Syntax {
15764
 
#line 15765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18324
#line 18325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
18325
  friend class ::CCExprResolve;
 
18326
  friend class ::CExprResolve;
15765
18327
  friend class ::WinIfExists;
15766
18328
  friend class ::WinImportHandler;
15767
18329
  friend class ::WinMacros;
15768
 
  friend class ::CMatchSyntax;
15769
 
  friend class ::ExtGnu;
 
18330
  friend class ::WinAsm;
 
18331
  friend class ::WinDeclSpecs;
 
18332
  friend class ::WinMemberExplSpec;
 
18333
  friend class ::WinTypeKeywords;
 
18334
  friend class ::WinFriend;
15770
18335
  friend class ::ExtAC;
15771
18336
  friend class ::ExtACBuilderCoupling;
15772
18337
  friend class ::ExtACSyntaxCoupling;
15773
18338
  friend class ::ExtACTree;
15774
18339
  friend class ::ExtACKeywords;
15775
 
  friend class ::WinAsm;
15776
 
  friend class ::WinDeclSpecs;
15777
 
  friend class ::WinMemberExplSpec;
15778
 
  friend class ::WinTypeKeywords;
 
18340
  friend class ::ExtGnu;
15779
18341
  friend class ::PragmaOnceUnitState;
15780
18342
  friend class ::PragmaOnce;
15781
 
  friend class ::CCExprResolve;
15782
 
  friend class ::CExprResolve;
 
18343
  friend class ::CMatchSyntax;
15783
18344
 
15784
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18345
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
15785
18346
 
15786
18347
  Token *_problem_token;
15787
18348
  bool _have_error;
15794
18355
 
15795
18356
public: 
15796
18357
  struct State : public TokenProvider::State {
15797
 
#line 15798 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18358
#line 18359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
18359
  friend class ::CCExprResolve;
 
18360
  friend class ::CExprResolve;
15798
18361
  friend class ::WinIfExists;
15799
18362
  friend class ::WinImportHandler;
15800
18363
  friend class ::WinMacros;
15801
 
  friend class ::CMatchSyntax;
15802
 
  friend class ::ExtGnu;
 
18364
  friend class ::WinAsm;
 
18365
  friend class ::WinDeclSpecs;
 
18366
  friend class ::WinMemberExplSpec;
 
18367
  friend class ::WinTypeKeywords;
 
18368
  friend class ::WinFriend;
15803
18369
  friend class ::ExtAC;
15804
18370
  friend class ::ExtACBuilderCoupling;
15805
18371
  friend class ::ExtACSyntaxCoupling;
15806
18372
  friend class ::ExtACTree;
15807
18373
  friend class ::ExtACKeywords;
15808
 
  friend class ::WinAsm;
15809
 
  friend class ::WinDeclSpecs;
15810
 
  friend class ::WinMemberExplSpec;
15811
 
  friend class ::WinTypeKeywords;
 
18374
  friend class ::ExtGnu;
15812
18375
  friend class ::PragmaOnceUnitState;
15813
18376
  friend class ::PragmaOnce;
15814
 
  friend class ::CCExprResolve;
15815
 
  friend class ::CExprResolve;
 
18377
  friend class ::CMatchSyntax;
15816
18378
 
15817
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18379
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
15818
18380
 
15819
18381
    State () {}
15820
18382
    State (int) {}
15829
18391
  CTree *run (TokenProvider &);
15830
18392
  template <class T> CTree *run (TokenProvider &, CTree *(T::*)());
15831
18393
  
15832
 
#line 15833 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
15833
 
 
15834
 
 
15835
 
struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
15836
 
  typedef void Result;
15837
 
  typedef ::Puma::Syntax That;
15838
 
  typedef ::Puma::Syntax Target;
 
18394
#line 18395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
18395
 
 
18396
 
 
18397
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
 
18398
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 __TJP;
 
18399
  typedef TResult Result;
 
18400
  typedef TThat   That;
 
18401
  typedef TTarget Target;
 
18402
  enum { ARGS = TArgs::ARGS };
 
18403
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
15839
18404
  static const int JPID = 54;
15840
18405
  static const AC::JPType JPTYPE = (AC::JPType)8;
15841
18406
  struct Res {
15842
 
    typedef void Type;
15843
 
    typedef void ReferredType;
15844
 
  };
15845
 
  enum { ARGS = 1 };
15846
 
  template <int I, int DUMMY = 0> struct Arg {
15847
 
    typedef void Type;
15848
 
    typedef void ReferredType;
15849
 
  };
15850
 
  template <int DUMMY> struct Arg<0, DUMMY> {
15851
 
    typedef ::Puma::Config & Type;
15852
 
    typedef ::Puma::Config ReferredType;
 
18407
    typedef TResult Type;
 
18408
    typedef TResult ReferredType;
15853
18409
  };
15854
18410
 
15855
 
  void **_args;
 
18411
  void *_args[ARGS];
15856
18412
 
15857
18413
  inline void *arg (int n) {return _args[n];}
15858
18414
  template <int I> typename Arg<I>::ReferredType *arg () {
15859
18415
    return (typename Arg<I>::ReferredType*)arg (I);
15860
18416
  }
15861
18417
 
15862
 
};
15863
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before {
15864
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
15865
 
  template <int I, int DUMMY = 0> struct Arg {
15866
 
    void val (TJP *tjp) {} // for VC7
15867
 
  };
15868
 
  template <int DUMMY> struct Arg<0, DUMMY> {
15869
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
15870
 
  };
15871
 
};
15872
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before {
15873
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
15874
 
  template <int I, int DUMMY = 0> struct Arg {
15875
 
    void val (TJP *tjp) {} // for VC7
15876
 
  };
15877
 
  template <int DUMMY> struct Arg<0, DUMMY> {
15878
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
15879
 
  };
15880
 
};
15881
 
 
15882
 
 
15883
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18418
struct Binding_CMatchSyntax_CMatchSyntax_a25_before {
 
18419
  typedef __TJP TJP;
 
18420
  template <int I, int DUMMY = 0> struct Arg {
 
18421
    void val (TJP *tjp) {} // for VC7
 
18422
  };
 
18423
  template <int DUMMY> struct Arg<0, DUMMY> {
 
18424
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
18425
  };
 
18426
};
 
18427
struct Binding_ExtGnu_ExtGnu_a15_before {
 
18428
  typedef __TJP TJP;
 
18429
  template <int I, int DUMMY = 0> struct Arg {
 
18430
    void val (TJP *tjp) {} // for VC7
 
18431
  };
 
18432
  template <int DUMMY> struct Arg<0, DUMMY> {
 
18433
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
18434
  };
 
18435
};
 
18436
};
 
18437
 
 
18438
 
 
18439
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
15884
18440
virtual void configure (Config & arg0) 
15885
 
#line 15886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18441
#line 18442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
15886
18442
{
15887
 
  void *args__ZN4Puma6Syntax9configureERN4PumaE6Config[] = { (void*)&arg0 };
15888
 
  TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 tjp;
15889
 
  tjp._args = args__ZN4Puma6Syntax9configureERN4PumaE6Config;
15890
 
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before> (&tjp);
15891
 
  AC::invoke_ExtGnu_ExtGnu_a15_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before> (&tjp);
15892
 
this->__exec_old_configure(arg0);
15893
 
 
 
18443
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0< void, ::Puma::Syntax , ::Puma::Syntax ,  AC::TL< ::Puma::Config & , AC::TLE > > __TJP;
 
18444
    __TJP tjp;
 
18445
  tjp._args[0] = (void*)&arg0;
 
18446
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<__TJP> (&tjp);
 
18447
  AC::invoke_ExtGnu_ExtGnu_a15_before<__TJP> (&tjp);
 
18448
    this->__exec_old_configure(arg0);
 
18449
  
15894
18450
}
15895
 
inline void __exec_old_configure(::Puma::Config & )
15896
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18451
__attribute__((always_inline)) inline void __exec_old_configure(::Puma::Config & )
 
18452
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
15897
18453
{}
15898
18454
  TokenProvider *provider () const { return token_provider; }
15899
18455
  Token *problem () const;
16103
18659
 
16104
18660
#endif /* __Syntax_h__ */
16105
18661
 
16106
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18662
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16107
18663
 
16108
 
#line 16109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18664
#line 18665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16109
18665
 
16110
18666
#ifndef __ac_fwd_ExtACTree__
16111
18667
#define __ac_fwd_ExtACTree__
16112
18668
class ExtACTree;
16113
18669
namespace AC {
16114
18670
  template <class JoinPoint>
16115
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
18671
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
16116
18672
  template <class JoinPoint>
16117
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
18673
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
16118
18674
}
16119
18675
#endif
16120
18676
 
16121
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
16122
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
18677
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
18678
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
16123
18679
#endif
16124
18680
 
16125
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
16126
 
 
16127
 
#line 16128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
16128
 
 
16129
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
16130
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
16131
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
16132
 
 
16133
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18681
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16134
18682
// This file is part of PUMA.
16135
18683
// Copyright (C) 1999-2003  The PUMA developer team.
16136
18684
//                                                                
16175
18723
class     CT_DefaultStmt;
16176
18724
class     CT_TryStmt;
16177
18725
class   CT_Expression;
 
18726
class     CT_Call;
 
18727
class       CT_CallExpr;
 
18728
class       CT_ImplicitCall;
16178
18729
class     CT_ThrowExpr;
16179
18730
class     CT_NewExpr;
16180
18731
class     CT_DeleteExpr;
16195
18746
class     CT_IfThenExpr;
16196
18747
class     CT_CmpdLiteral;
16197
18748
class     CT_IndexExpr;
16198
 
class     CT_CallExpr;
16199
18749
class     CT_CastExpr;
16200
18750
class     CT_StaticCast;
16201
18751
class       CT_ConstCast;
16242
18792
class     CT_NamespaceDef;
16243
18793
class     CT_NamespaceAliasDef;
16244
18794
class     CT_UsingDirective;
 
18795
class     CT_Condition;
16245
18796
class   CT_List;
16246
18797
class     CT_CmpdStmt;
16247
18798
class     CT_DeclSpecSeq;
16272
18823
class     CT_TemplateArgList;
16273
18824
class   CT_Token;
16274
18825
class   CT_Error;
16275
 
class   CT_Condition;
16276
18826
class   CT_BaseSpec;
16277
18827
class   CT_AccessSpec;
16278
18828
class   CT_ArrayDelimiter;
16312
18862
/*                                                                           */
16313
18863
/*****************************************************************************/
16314
18864
 
16315
 
 
16316
 
#line 16317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18865
/** \file
 
18866
 *  C/C++ syntax tree classes.
 
18867
 *  \see Puma::CTree */
 
18868
 
 
18869
/** \class CTree CTree.h Puma/CTree.h
 
18870
 *  Base class for all C/C++ syntax tree classes. */
 
18871
 
 
18872
#line 18873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16317
18873
} // closed Puma
 
18874
class CCExprResolve;
 
18875
class CExprResolve;
16318
18876
class WinIfExists;
16319
18877
class WinImportHandler;
16320
18878
class WinMacros;
16321
 
class CMatchSyntax;
16322
 
class ExtGnu;
 
18879
class WinAsm;
 
18880
class WinDeclSpecs;
 
18881
class WinMemberExplSpec;
 
18882
class WinTypeKeywords;
 
18883
class WinFriend;
16323
18884
class ExtAC;
16324
18885
class ExtACBuilderCoupling;
16325
18886
class ExtACSyntaxCoupling;
16326
18887
class ExtACTree;
16327
18888
class ExtACKeywords;
16328
 
class WinAsm;
16329
 
class WinDeclSpecs;
16330
 
class WinMemberExplSpec;
16331
 
class WinTypeKeywords;
 
18889
class ExtGnu;
16332
18890
class PragmaOnceUnitState;
16333
18891
class PragmaOnce;
16334
 
class CCExprResolve;
16335
 
class CExprResolve;
16336
 
namespace Puma {
16337
 
 
16338
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18892
class CMatchSyntax;
 
18893
namespace Puma {
 
18894
 
 
18895
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18896
 
 
18897
#line 18898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
18898
} // closed Puma
 
18899
 
 
18900
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18901
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18902
#include "CCExprResolveH.ah"
 
18903
#endif
 
18904
namespace Puma {
 
18905
 
 
18906
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18907
 
 
18908
#line 18909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
18909
} // closed Puma
 
18910
 
 
18911
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18912
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18913
#include "CExprResolveH.ah"
 
18914
#endif
 
18915
namespace Puma {
 
18916
 
 
18917
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16339
18918
class CTree {
16340
 
#line 16341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
18919
#line 18920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
18920
  friend class ::CCExprResolve;
 
18921
  friend class ::CExprResolve;
16341
18922
  friend class ::WinIfExists;
16342
18923
  friend class ::WinImportHandler;
16343
18924
  friend class ::WinMacros;
16344
 
  friend class ::CMatchSyntax;
16345
 
  friend class ::ExtGnu;
 
18925
  friend class ::WinAsm;
 
18926
  friend class ::WinDeclSpecs;
 
18927
  friend class ::WinMemberExplSpec;
 
18928
  friend class ::WinTypeKeywords;
 
18929
  friend class ::WinFriend;
16346
18930
  friend class ::ExtAC;
16347
18931
  friend class ::ExtACBuilderCoupling;
16348
18932
  friend class ::ExtACSyntaxCoupling;
16349
18933
  friend class ::ExtACTree;
16350
18934
  friend class ::ExtACKeywords;
16351
 
  friend class ::WinAsm;
16352
 
  friend class ::WinDeclSpecs;
16353
 
  friend class ::WinMemberExplSpec;
16354
 
  friend class ::WinTypeKeywords;
 
18935
  friend class ::ExtGnu;
16355
18936
  friend class ::PragmaOnceUnitState;
16356
18937
  friend class ::PragmaOnce;
16357
 
  friend class ::CCExprResolve;
16358
 
  friend class ::CExprResolve;
16359
 
 
16360
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18938
  friend class ::CMatchSyntax;
 
18939
 
 
18940
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18941
 
 
18942
  CTree * _parent;
16361
18943
 
16362
18944
public:
16363
18945
  /*DEBUG*/static int alloc;
16364
18946
  /*DEBUG*/static int release;
16365
18947
 
16366
18948
protected:
16367
 
  CTree *Son (CTree * const *, int, int) const;
16368
 
  int Sons (CTree * const *, int) const;
16369
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
18949
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
18950
   *  \param sons The sons array.
 
18951
   *  \param len Length of the sons array.
 
18952
   *  \param n Index of the son.
 
18953
   *  \return The n-th son or NULL. */
 
18954
  CTree *Son (CTree * const *sons, int len, int n) const;
 
18955
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
18956
   *  \param sons The sons array.
 
18957
   *  \param len Length of the sons array. */
 
18958
  int Sons (CTree * const *sons, int len) const;
 
18959
  /** Replace a son.
 
18960
   *  \param sons The sons array.
 
18961
   *  \param len Length of the sons array.
 
18962
   *  \param old_son The son to replace.
 
18963
   *  \param new_son The new son. */
 
18964
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
18965
  /** Replace a son if it equals the given son.
 
18966
   *  \param son The actual son.
 
18967
   *  \param old_son The son to replace, must match the actual son.
 
18968
   *  \param new_son The new son, overwrites the actual son. */
 
18969
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
18970
  /** Add a new son.
 
18971
   *  \param son The actual son.
 
18972
   *  \param new_son The new son, overwrites the actual son. */
 
18973
  void AddSon (CTree *&son, CTree *new_son);
 
18974
  /** Set the parent tree node.
 
18975
   *  \param parent The new parent tree node. */
 
18976
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
18977
  /** Set the parent tree node of the given tree node.
 
18978
   *  \param node The tree node.
 
18979
   *  \param parent The new parent. */
 
18980
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
16370
18981
  
16371
18982
protected:
16372
 
  CTree () { /*DEBUG*/alloc++; }
 
18983
  /** Default constructor. */
 
18984
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
16373
18985
 
16374
18986
public:
 
18987
  /** Destructor. */
16375
18988
  virtual ~CTree () { /*DEBUG*/release++; }
 
18989
  /** Get the number of sons. */
16376
18990
  virtual int Sons () const = 0;
 
18991
  /** Get the n-th son.
 
18992
   *  \param n The index of the son.
 
18993
   *  \return The n-th son or NULL. */
16377
18994
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
18995
  /** Get the node name (node identifier). */
16378
18996
  virtual const char *NodeName () const = 0;
 
18997
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
18998
   *  \return The token or NULL. */
16379
18999
  virtual Token *token () const;
 
19000
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
19001
   *  \return The token or NULL. */
16380
19002
  virtual Token *end_token () const;
 
19003
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
19004
   *  \return The token node or NULL. */
16381
19005
  virtual CT_Token *token_node () const;
 
19006
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
19007
   *  \return The token node or NULL. */
16382
19008
  virtual CT_Token *end_token_node () const;
16383
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
19009
  /** Replace a son.
 
19010
   *  \param old_son The son to replace.
 
19011
   *  \param new_son The son with which to replace. */
 
19012
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
19013
  /** Get the parent node.
 
19014
   *  \return The parent node or NULL. */
 
19015
  virtual CTree *Parent () const { return (CTree*)_parent; }
16384
19016
 
16385
19017
public: // semantic information
 
19018
  /** Get the semantic type of the node.
 
19019
   *  \return The type object or NULL. */
16386
19020
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
19021
  /** Get the calculated value of the expression.
 
19022
   *  \return The value object or NULL. */
16387
19023
  virtual CExprValue *Value () const { return (CExprValue*)0; }
16388
19024
  
 
19025
  /** Get the semantic scope of the node.
 
19026
   *  \return The scope object or NULL. */
 
19027
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
19028
  /** Get the semantic value of the node.
 
19029
   *  \return The value object or NULL. */
16389
19030
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
19031
  /** Get the semantic object of the node.
 
19032
   *  \return The semantic object or NULL. */
16390
19033
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
16391
19034
  
16392
19035
public: // node classification function
 
19036
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
19037
   *  \return The CT_SimpleName node or NULL. */
16393
19038
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
19039
  /** Get a pointer to CT_String if the current node represents a string.
 
19040
   *  \return The CT_String node or NULL. */
 
19041
  virtual CT_String *IsString () { return 0; }
 
19042
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
19043
   *  \return The CT_Declarator pointer or NULL. */
16394
19044
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
19045
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
19046
   *  \return The CT_Statement pointer or NULL. */
 
19047
  virtual CT_Statement *IsStatement () { return 0; }
 
19048
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
19049
   *  \return The CT_Expression pointer or NULL. */
 
19050
  virtual CT_Expression *IsExpression () { return 0; }
 
19051
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
19052
   *  \return The CT_Decl pointer or NULL. */
 
19053
  virtual CT_Decl *IsDeclaration () { return 0; }
 
19054
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
19055
   *  \return The CT_Call pointer or NULL. */
 
19056
  virtual CT_Call *IsCall () { return 0; }
16395
19057
   private:
16396
19058
  typedef CTree CCExprResolveCTree;
16397
19059
 
16398
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19060
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
16399
19061
 public :
16400
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
19062
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
16401
19063
  typedef CTree CExprResolveCTree;
16402
19064
 
16403
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19065
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
16404
19066
 public :
16405
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
16406
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19067
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19068
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16407
19069
};
16408
19070
 
 
19071
/** \class CT_Error CTree.h Puma/CTree.h
 
19072
 *  Error tree node that is inserted into the tree for syntactic constructs
 
19073
 *  that could not be parsed. */
16409
19074
 
16410
 
#line 16411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19075
#line 19076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16411
19076
} // closed Puma
 
19077
class CCExprResolve;
 
19078
class CExprResolve;
16412
19079
class WinIfExists;
16413
19080
class WinImportHandler;
16414
19081
class WinMacros;
16415
 
class CMatchSyntax;
16416
 
class ExtGnu;
 
19082
class WinAsm;
 
19083
class WinDeclSpecs;
 
19084
class WinMemberExplSpec;
 
19085
class WinTypeKeywords;
 
19086
class WinFriend;
16417
19087
class ExtAC;
16418
19088
class ExtACBuilderCoupling;
16419
19089
class ExtACSyntaxCoupling;
16420
19090
class ExtACTree;
16421
19091
class ExtACKeywords;
16422
 
class WinAsm;
16423
 
class WinDeclSpecs;
16424
 
class WinMemberExplSpec;
16425
 
class WinTypeKeywords;
 
19092
class ExtGnu;
16426
19093
class PragmaOnceUnitState;
16427
19094
class PragmaOnce;
16428
 
class CCExprResolve;
16429
 
class CExprResolve;
 
19095
class CMatchSyntax;
16430
19096
namespace Puma {
16431
19097
 
16432
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19098
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16433
19099
class CT_Error : public CTree {
16434
 
#line 16435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19100
#line 19101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19101
  friend class ::CCExprResolve;
 
19102
  friend class ::CExprResolve;
16435
19103
  friend class ::WinIfExists;
16436
19104
  friend class ::WinImportHandler;
16437
19105
  friend class ::WinMacros;
16438
 
  friend class ::CMatchSyntax;
16439
 
  friend class ::ExtGnu;
 
19106
  friend class ::WinAsm;
 
19107
  friend class ::WinDeclSpecs;
 
19108
  friend class ::WinMemberExplSpec;
 
19109
  friend class ::WinTypeKeywords;
 
19110
  friend class ::WinFriend;
16440
19111
  friend class ::ExtAC;
16441
19112
  friend class ::ExtACBuilderCoupling;
16442
19113
  friend class ::ExtACSyntaxCoupling;
16443
19114
  friend class ::ExtACTree;
16444
19115
  friend class ::ExtACKeywords;
16445
 
  friend class ::WinAsm;
16446
 
  friend class ::WinDeclSpecs;
16447
 
  friend class ::WinMemberExplSpec;
16448
 
  friend class ::WinTypeKeywords;
 
19116
  friend class ::ExtGnu;
16449
19117
  friend class ::PragmaOnceUnitState;
16450
19118
  friend class ::PragmaOnce;
16451
 
  friend class ::CCExprResolve;
16452
 
  friend class ::CExprResolve;
 
19119
  friend class ::CMatchSyntax;
16453
19120
 
16454
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19121
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16455
19122
 
16456
19123
public:
 
19124
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16457
19125
  static const char *NodeId ();
 
19126
  /** Get the name of the node. Can be compared with NodeId(). */
16458
19127
  const char *NodeName () const { return NodeId (); }
 
19128
  /** Get the number of sons. */
16459
19129
  int Sons () const { return 0; }
16460
19130
};
16461
19131
 
 
19132
/** \class CT_Token CTree.h Puma/CTree.h
 
19133
 *  Tree node representing a single token in the source code. */
16462
19134
 
16463
 
#line 16464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19135
#line 19136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16464
19136
} // closed Puma
 
19137
class CCExprResolve;
 
19138
class CExprResolve;
16465
19139
class WinIfExists;
16466
19140
class WinImportHandler;
16467
19141
class WinMacros;
16468
 
class CMatchSyntax;
16469
 
class ExtGnu;
 
19142
class WinAsm;
 
19143
class WinDeclSpecs;
 
19144
class WinMemberExplSpec;
 
19145
class WinTypeKeywords;
 
19146
class WinFriend;
16470
19147
class ExtAC;
16471
19148
class ExtACBuilderCoupling;
16472
19149
class ExtACSyntaxCoupling;
16473
19150
class ExtACTree;
16474
19151
class ExtACKeywords;
16475
 
class WinAsm;
16476
 
class WinDeclSpecs;
16477
 
class WinMemberExplSpec;
16478
 
class WinTypeKeywords;
 
19152
class ExtGnu;
16479
19153
class PragmaOnceUnitState;
16480
19154
class PragmaOnce;
16481
 
class CCExprResolve;
16482
 
class CExprResolve;
 
19155
class CMatchSyntax;
16483
19156
namespace Puma {
16484
19157
 
16485
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19158
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16486
19159
class CT_Token : public CTree {
16487
 
#line 16488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19160
#line 19161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19161
  friend class ::CCExprResolve;
 
19162
  friend class ::CExprResolve;
16488
19163
  friend class ::WinIfExists;
16489
19164
  friend class ::WinImportHandler;
16490
19165
  friend class ::WinMacros;
16491
 
  friend class ::CMatchSyntax;
16492
 
  friend class ::ExtGnu;
 
19166
  friend class ::WinAsm;
 
19167
  friend class ::WinDeclSpecs;
 
19168
  friend class ::WinMemberExplSpec;
 
19169
  friend class ::WinTypeKeywords;
 
19170
  friend class ::WinFriend;
16493
19171
  friend class ::ExtAC;
16494
19172
  friend class ::ExtACBuilderCoupling;
16495
19173
  friend class ::ExtACSyntaxCoupling;
16496
19174
  friend class ::ExtACTree;
16497
19175
  friend class ::ExtACKeywords;
16498
 
  friend class ::WinAsm;
16499
 
  friend class ::WinDeclSpecs;
16500
 
  friend class ::WinMemberExplSpec;
16501
 
  friend class ::WinTypeKeywords;
 
19176
  friend class ::ExtGnu;
16502
19177
  friend class ::PragmaOnceUnitState;
16503
19178
  friend class ::PragmaOnce;
16504
 
  friend class ::CCExprResolve;
16505
 
  friend class ::CExprResolve;
 
19179
  friend class ::CMatchSyntax;
16506
19180
 
16507
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19181
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16508
19182
 
16509
19183
  Token *_token;
16510
19184
  unsigned long int _number;
16511
19185
  
16512
19186
public:
16513
 
  CT_Token (Token *t, unsigned long int n = 0) : 
16514
 
    _token (t), _number (n) {}
 
19187
  /** Constructor. 
 
19188
   *  \param token The represented token.
 
19189
   *  \param number The token number (a consecutive number). */
 
19190
  CT_Token (Token *token, unsigned long int number = 0) : 
 
19191
    _token (token), _number (number) {}
 
19192
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16515
19193
  static const char *NodeId ();
 
19194
  /** Get the name of the node. Can be compared with NodeId(). */
16516
19195
  const char *NodeName () const { return NodeId (); }
 
19196
  /** Get the number of sons. */
16517
19197
  int Sons () const { return 0; }
 
19198
  /** Get the represented token. */
16518
19199
  Token *token () const { return _token; }
 
19200
  /** Get the represented token. */
16519
19201
  Token *end_token () const { return _token; }
 
19202
  /** Get this. */
16520
19203
  CT_Token *token_node () const { return (CT_Token*)this; }
 
19204
  /** Get this. */
16521
19205
  CT_Token *end_token_node () const { return (CT_Token*)this; }
16522
 
  void Number (unsigned long int n) { _number = n; }
 
19206
  /** Set the token number. 
 
19207
   *  \param number The token number. */ 
 
19208
  void Number (unsigned long int number) { _number = number; }
 
19209
  /** Get the token number. Can be used to indentify this token. */
16523
19210
  unsigned long int Number () const { return _number; }
16524
 
  // special new / delete with reusing memory
 
19211
  
 
19212
public:
 
19213
  /** Own new operator reusing memory. */
16525
19214
  void *operator new (size_t);
16526
 
  void  operator delete (void *);
 
19215
  /** Own delete operator. */
 
19216
  void operator delete (void *);
16527
19217
};
16528
19218
 
16529
19219
/*****************************************************************************/
16532
19222
/*                                                                           */
16533
19223
/*****************************************************************************/
16534
19224
 
 
19225
/** \class CT_List CTree.h Puma/CTree.h
 
19226
 *  Base class for tree nodes representing lists. */
16535
19227
 
16536
 
#line 16537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19228
#line 19229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16537
19229
} // closed Puma
 
19230
class CCExprResolve;
 
19231
class CExprResolve;
16538
19232
class WinIfExists;
16539
19233
class WinImportHandler;
16540
19234
class WinMacros;
16541
 
class CMatchSyntax;
16542
 
class ExtGnu;
 
19235
class WinAsm;
 
19236
class WinDeclSpecs;
 
19237
class WinMemberExplSpec;
 
19238
class WinTypeKeywords;
 
19239
class WinFriend;
16543
19240
class ExtAC;
16544
19241
class ExtACBuilderCoupling;
16545
19242
class ExtACSyntaxCoupling;
16546
19243
class ExtACTree;
16547
19244
class ExtACKeywords;
16548
 
class WinAsm;
16549
 
class WinDeclSpecs;
16550
 
class WinMemberExplSpec;
16551
 
class WinTypeKeywords;
 
19245
class ExtGnu;
16552
19246
class PragmaOnceUnitState;
16553
19247
class PragmaOnce;
16554
 
class CCExprResolve;
16555
 
class CExprResolve;
 
19248
class CMatchSyntax;
16556
19249
namespace Puma {
16557
19250
 
16558
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19251
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16559
19252
class CT_List : public CTree {
16560
 
#line 16561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19253
#line 19254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19254
  friend class ::CCExprResolve;
 
19255
  friend class ::CExprResolve;
16561
19256
  friend class ::WinIfExists;
16562
19257
  friend class ::WinImportHandler;
16563
19258
  friend class ::WinMacros;
16564
 
  friend class ::CMatchSyntax;
16565
 
  friend class ::ExtGnu;
 
19259
  friend class ::WinAsm;
 
19260
  friend class ::WinDeclSpecs;
 
19261
  friend class ::WinMemberExplSpec;
 
19262
  friend class ::WinTypeKeywords;
 
19263
  friend class ::WinFriend;
16566
19264
  friend class ::ExtAC;
16567
19265
  friend class ::ExtACBuilderCoupling;
16568
19266
  friend class ::ExtACSyntaxCoupling;
16569
19267
  friend class ::ExtACTree;
16570
19268
  friend class ::ExtACKeywords;
16571
 
  friend class ::WinAsm;
16572
 
  friend class ::WinDeclSpecs;
16573
 
  friend class ::WinMemberExplSpec;
16574
 
  friend class ::WinTypeKeywords;
 
19269
  friend class ::ExtGnu;
16575
19270
  friend class ::PragmaOnceUnitState;
16576
19271
  friend class ::PragmaOnce;
16577
 
  friend class ::CCExprResolve;
16578
 
  friend class ::CExprResolve;
 
19272
  friend class ::CMatchSyntax;
16579
19273
 
16580
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19274
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16581
19275
 
16582
19276
  Array<CTree*> _sons;
16583
19277
  int _properties;
16584
19278
 
16585
19279
protected:
 
19280
  /** Constructor.
 
19281
   *  \param size The initial list size.
 
19282
   *  \param incr The initial increment count. 
 
19283
   *  \param props The list properties (bit array). */
16586
19284
  CT_List(int size = 5, int incr = 5, int props = 0) : 
16587
19285
    _sons (size, incr), _properties (props) {}
16588
19286
 
16589
19287
public:
 
19288
  /** List properties. */
16590
19289
  enum {
16591
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
16592
 
    CLOSE = 2,
16593
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
16594
 
    SEPARATORS = 4,   // the list has separators like ','
16595
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
16596
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
16597
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
16598
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
19290
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
19291
    CLOSE = 2,        /** List has an end token */
 
19292
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
19293
    SEPARATORS = 4,   /** List has separators, like ',' */
 
19294
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
19295
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
19296
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
19297
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
16599
19298
  };
16600
19299
 
 
19300
  /** Get the number of list entries. */
16601
19301
  int Entries () const;
16602
 
  CTree *Entry (int no) const;
 
19302
  /** Get the n-th list entry.
 
19303
   *  \param n The index of the entry. 
 
19304
   *  \return The list entry or NULL. */
 
19305
  CTree *Entry (int n) const;
 
19306
  /** Get the number of sons. */
16603
19307
  int Sons () const { return _sons.length (); }
 
19308
  /** Get the n-th son.
 
19309
   *  \param n The index of the son. 
 
19310
   *  \return The n-th son or NULL. */
16604
19311
  CTree *Son (int n) const { return _sons.lookup (n); }
 
19312
  /** Get the list properties. */
16605
19313
  int GetProperties () const { return _properties; }
 
19314
  /** Add a list property.
 
19315
   *  \param p The property to add. */
16606
19316
  void AddProperties (int p) { _properties |= p; }
16607
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
16608
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
16609
 
  void InsertSon (CTree *, CTree *);  // before given son
16610
 
  void ReplaceSon (CTree *, CTree *);
16611
 
  void RemoveSon (CTree *);
 
19317
  /** Add a son.
 
19318
   *  \param s The son to add. */
 
19319
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
19320
  /** Prepend a son.
 
19321
   *  \param s The son to prepend. */
 
19322
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
19323
  /** Insert a son before another son.
 
19324
   *  \param before The son to insert the new son before.
 
19325
   *  \param son The son to insert. */
 
19326
  void InsertSon (CTree *before, CTree *son); 
 
19327
  /** Replace a son.
 
19328
   *  \param old_son The son to replace.
 
19329
   *  \param new_son The new son. */
 
19330
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
19331
  /** Remove a son.
 
19332
   *  \param son The son to remove. */
 
19333
  void RemoveSon (CTree *son);
 
19334
  /** Insert a son at the given index. 
 
19335
   *  \param idx The index at which to insert.
 
19336
   *  \param s The son to insert. */
16612
19337
  void InsertSon (int idx, CTree *s)
16613
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
19338
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
19339
  /** Replace the son at the given index.
 
19340
   *  \param idx The index of the son to replace.
 
19341
   *  \param s The new son. */
16614
19342
  void ReplaceSon (int idx, CTree *s) 
16615
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
19343
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
19344
  /** Remove the son at the given index. 
 
19345
   *  \param idx The index of the son to remove. */
16616
19346
  void RemoveSon (int idx) 
16617
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
19347
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
16618
19348
};
16619
19349
 
 
19350
/** \class CT_ExprList CTree.h Puma/CTree.h
 
19351
 *  Tree node representing an expression list. */
16620
19352
 
16621
 
#line 16622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19353
#line 19354 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16622
19354
} // closed Puma
 
19355
class CCExprResolve;
 
19356
class CExprResolve;
16623
19357
class WinIfExists;
16624
19358
class WinImportHandler;
16625
19359
class WinMacros;
16626
 
class CMatchSyntax;
16627
 
class ExtGnu;
 
19360
class WinAsm;
 
19361
class WinDeclSpecs;
 
19362
class WinMemberExplSpec;
 
19363
class WinTypeKeywords;
 
19364
class WinFriend;
16628
19365
class ExtAC;
16629
19366
class ExtACBuilderCoupling;
16630
19367
class ExtACSyntaxCoupling;
16631
19368
class ExtACTree;
16632
19369
class ExtACKeywords;
16633
 
class WinAsm;
16634
 
class WinDeclSpecs;
16635
 
class WinMemberExplSpec;
16636
 
class WinTypeKeywords;
 
19370
class ExtGnu;
16637
19371
class PragmaOnceUnitState;
16638
19372
class PragmaOnce;
16639
 
class CCExprResolve;
16640
 
class CExprResolve;
 
19373
class CMatchSyntax;
16641
19374
namespace Puma {
16642
19375
 
16643
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19376
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16644
19377
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
16645
 
#line 16646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19378
#line 19379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19379
  friend class ::CCExprResolve;
 
19380
  friend class ::CExprResolve;
16646
19381
  friend class ::WinIfExists;
16647
19382
  friend class ::WinImportHandler;
16648
19383
  friend class ::WinMacros;
16649
 
  friend class ::CMatchSyntax;
16650
 
  friend class ::ExtGnu;
 
19384
  friend class ::WinAsm;
 
19385
  friend class ::WinDeclSpecs;
 
19386
  friend class ::WinMemberExplSpec;
 
19387
  friend class ::WinTypeKeywords;
 
19388
  friend class ::WinFriend;
16651
19389
  friend class ::ExtAC;
16652
19390
  friend class ::ExtACBuilderCoupling;
16653
19391
  friend class ::ExtACSyntaxCoupling;
16654
19392
  friend class ::ExtACTree;
16655
19393
  friend class ::ExtACKeywords;
16656
 
  friend class ::WinAsm;
16657
 
  friend class ::WinDeclSpecs;
16658
 
  friend class ::WinMemberExplSpec;
16659
 
  friend class ::WinTypeKeywords;
 
19394
  friend class ::ExtGnu;
16660
19395
  friend class ::PragmaOnceUnitState;
16661
19396
  friend class ::PragmaOnce;
16662
 
  friend class ::CCExprResolve;
16663
 
  friend class ::CExprResolve;
 
19397
  friend class ::CMatchSyntax;
16664
19398
 
16665
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19399
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16666
19400
 
16667
19401
public:
 
19402
  /** Constructor. */
16668
19403
  CT_ExprList () { AddProperties (SEPARATORS); }
 
19404
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16669
19405
  static const char *NodeId ();
 
19406
  /** Get the name of the node. Can be compared with NodeId(). */
16670
19407
  const char *NodeName () const { return NodeId (); }
16671
19408
 
 
19409
  /** Get the type of the last expression in the expression list.
 
19410
   *  \return The type or NULL. */
16672
19411
  CTypeInfo *Type () const { return type; }
 
19412
  /** Get the value of the last expression in the expression list.
 
19413
   *  \return The value of NULL. */
16673
19414
  CExprValue *Value () const { return value; }
 
19415
  /** Get the semantic value of the node. */
16674
19416
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
19417
  /** Get the semantic object of the node. */
16675
19418
  CSemObject *SemObject () const { return (CSemObject*)this; }
16676
19419
};
16677
19420
 
 
19421
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
19422
 *  Tree node representing a list of declarators. */
16678
19423
 
16679
 
#line 16680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19424
#line 19425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16680
19425
} // closed Puma
 
19426
class CCExprResolve;
 
19427
class CExprResolve;
16681
19428
class WinIfExists;
16682
19429
class WinImportHandler;
16683
19430
class WinMacros;
16684
 
class CMatchSyntax;
16685
 
class ExtGnu;
 
19431
class WinAsm;
 
19432
class WinDeclSpecs;
 
19433
class WinMemberExplSpec;
 
19434
class WinTypeKeywords;
 
19435
class WinFriend;
16686
19436
class ExtAC;
16687
19437
class ExtACBuilderCoupling;
16688
19438
class ExtACSyntaxCoupling;
16689
19439
class ExtACTree;
16690
19440
class ExtACKeywords;
16691
 
class WinAsm;
16692
 
class WinDeclSpecs;
16693
 
class WinMemberExplSpec;
16694
 
class WinTypeKeywords;
 
19441
class ExtGnu;
16695
19442
class PragmaOnceUnitState;
16696
19443
class PragmaOnce;
16697
 
class CCExprResolve;
16698
 
class CExprResolve;
 
19444
class CMatchSyntax;
16699
19445
namespace Puma {
16700
19446
 
16701
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19447
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16702
19448
class CT_DeclaratorList : public CT_List {
16703
 
#line 16704 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19449
#line 19450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19450
  friend class ::CCExprResolve;
 
19451
  friend class ::CExprResolve;
16704
19452
  friend class ::WinIfExists;
16705
19453
  friend class ::WinImportHandler;
16706
19454
  friend class ::WinMacros;
16707
 
  friend class ::CMatchSyntax;
16708
 
  friend class ::ExtGnu;
 
19455
  friend class ::WinAsm;
 
19456
  friend class ::WinDeclSpecs;
 
19457
  friend class ::WinMemberExplSpec;
 
19458
  friend class ::WinTypeKeywords;
 
19459
  friend class ::WinFriend;
16709
19460
  friend class ::ExtAC;
16710
19461
  friend class ::ExtACBuilderCoupling;
16711
19462
  friend class ::ExtACSyntaxCoupling;
16712
19463
  friend class ::ExtACTree;
16713
19464
  friend class ::ExtACKeywords;
16714
 
  friend class ::WinAsm;
16715
 
  friend class ::WinDeclSpecs;
16716
 
  friend class ::WinMemberExplSpec;
16717
 
  friend class ::WinTypeKeywords;
 
19465
  friend class ::ExtGnu;
16718
19466
  friend class ::PragmaOnceUnitState;
16719
19467
  friend class ::PragmaOnce;
16720
 
  friend class ::CCExprResolve;
16721
 
  friend class ::CExprResolve;
 
19468
  friend class ::CMatchSyntax;
16722
19469
 
16723
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19470
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16724
19471
 
16725
19472
public:
 
19473
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16726
19474
  static const char *NodeId ();
 
19475
  /** Get the name of the node. Can be compared with NodeId(). */
16727
19476
  const char *NodeName () const { return NodeId (); }
16728
19477
};
16729
19478
 
 
19479
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
19480
 *  Tree node representing a list of enumerator constants. */
16730
19481
 
16731
 
#line 16732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19482
#line 19483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16732
19483
} // closed Puma
 
19484
class CCExprResolve;
 
19485
class CExprResolve;
16733
19486
class WinIfExists;
16734
19487
class WinImportHandler;
16735
19488
class WinMacros;
16736
 
class CMatchSyntax;
16737
 
class ExtGnu;
 
19489
class WinAsm;
 
19490
class WinDeclSpecs;
 
19491
class WinMemberExplSpec;
 
19492
class WinTypeKeywords;
 
19493
class WinFriend;
16738
19494
class ExtAC;
16739
19495
class ExtACBuilderCoupling;
16740
19496
class ExtACSyntaxCoupling;
16741
19497
class ExtACTree;
16742
19498
class ExtACKeywords;
16743
 
class WinAsm;
16744
 
class WinDeclSpecs;
16745
 
class WinMemberExplSpec;
16746
 
class WinTypeKeywords;
 
19499
class ExtGnu;
16747
19500
class PragmaOnceUnitState;
16748
19501
class PragmaOnce;
16749
 
class CCExprResolve;
16750
 
class CExprResolve;
 
19502
class CMatchSyntax;
16751
19503
namespace Puma {
16752
19504
 
16753
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19505
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16754
19506
class CT_EnumeratorList : public CT_List {
16755
 
#line 16756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19507
#line 19508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19508
  friend class ::CCExprResolve;
 
19509
  friend class ::CExprResolve;
16756
19510
  friend class ::WinIfExists;
16757
19511
  friend class ::WinImportHandler;
16758
19512
  friend class ::WinMacros;
16759
 
  friend class ::CMatchSyntax;
16760
 
  friend class ::ExtGnu;
 
19513
  friend class ::WinAsm;
 
19514
  friend class ::WinDeclSpecs;
 
19515
  friend class ::WinMemberExplSpec;
 
19516
  friend class ::WinTypeKeywords;
 
19517
  friend class ::WinFriend;
16761
19518
  friend class ::ExtAC;
16762
19519
  friend class ::ExtACBuilderCoupling;
16763
19520
  friend class ::ExtACSyntaxCoupling;
16764
19521
  friend class ::ExtACTree;
16765
19522
  friend class ::ExtACKeywords;
16766
 
  friend class ::WinAsm;
16767
 
  friend class ::WinDeclSpecs;
16768
 
  friend class ::WinMemberExplSpec;
16769
 
  friend class ::WinTypeKeywords;
 
19523
  friend class ::ExtGnu;
16770
19524
  friend class ::PragmaOnceUnitState;
16771
19525
  friend class ::PragmaOnce;
16772
 
  friend class ::CCExprResolve;
16773
 
  friend class ::CExprResolve;
 
19526
  friend class ::CMatchSyntax;
16774
19527
 
16775
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19528
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16776
19529
 
16777
19530
public:
 
19531
  /** Constructor. */
16778
19532
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
19533
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16779
19534
  static const char *NodeId ();
 
19535
  /** Get the name of the node. Can be compared with NodeId(). */
16780
19536
  const char *NodeName () const { return NodeId (); }
16781
19537
};
16782
19538
   
 
19539
/** \class CT_DeclList CTree.h Puma/CTree.h
 
19540
 *  Tree node representing a list of declarations. */
16783
19541
 
16784
 
#line 16785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19542
#line 19543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16785
19543
} // closed Puma
 
19544
class CCExprResolve;
 
19545
class CExprResolve;
16786
19546
class WinIfExists;
16787
19547
class WinImportHandler;
16788
19548
class WinMacros;
16789
 
class CMatchSyntax;
16790
 
class ExtGnu;
 
19549
class WinAsm;
 
19550
class WinDeclSpecs;
 
19551
class WinMemberExplSpec;
 
19552
class WinTypeKeywords;
 
19553
class WinFriend;
16791
19554
class ExtAC;
16792
19555
class ExtACBuilderCoupling;
16793
19556
class ExtACSyntaxCoupling;
16794
19557
class ExtACTree;
16795
19558
class ExtACKeywords;
16796
 
class WinAsm;
16797
 
class WinDeclSpecs;
16798
 
class WinMemberExplSpec;
16799
 
class WinTypeKeywords;
 
19559
class ExtGnu;
16800
19560
class PragmaOnceUnitState;
16801
19561
class PragmaOnce;
16802
 
class CCExprResolve;
16803
 
class CExprResolve;
 
19562
class CMatchSyntax;
16804
19563
namespace Puma {
16805
19564
 
16806
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19565
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16807
19566
class CT_DeclList : public CT_List {
16808
 
#line 16809 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19567
#line 19568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19568
  friend class ::CCExprResolve;
 
19569
  friend class ::CExprResolve;
16809
19570
  friend class ::WinIfExists;
16810
19571
  friend class ::WinImportHandler;
16811
19572
  friend class ::WinMacros;
16812
 
  friend class ::CMatchSyntax;
16813
 
  friend class ::ExtGnu;
 
19573
  friend class ::WinAsm;
 
19574
  friend class ::WinDeclSpecs;
 
19575
  friend class ::WinMemberExplSpec;
 
19576
  friend class ::WinTypeKeywords;
 
19577
  friend class ::WinFriend;
16814
19578
  friend class ::ExtAC;
16815
19579
  friend class ::ExtACBuilderCoupling;
16816
19580
  friend class ::ExtACSyntaxCoupling;
16817
19581
  friend class ::ExtACTree;
16818
19582
  friend class ::ExtACKeywords;
16819
 
  friend class ::WinAsm;
16820
 
  friend class ::WinDeclSpecs;
16821
 
  friend class ::WinMemberExplSpec;
16822
 
  friend class ::WinTypeKeywords;
 
19583
  friend class ::ExtGnu;
16823
19584
  friend class ::PragmaOnceUnitState;
16824
19585
  friend class ::PragmaOnce;
16825
 
  friend class ::CCExprResolve;
16826
 
  friend class ::CExprResolve;
 
19586
  friend class ::CMatchSyntax;
16827
19587
 
16828
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19588
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16829
19589
 
16830
19590
public:
 
19591
  /** Constructor. 
 
19592
   *  \param size The initial size of the list.
 
19593
   *  \param incr The initial increment count of the list. */
16831
19594
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
19595
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16832
19596
  static const char *NodeId ();
 
19597
  /** Get the name of the node. Can be compared with NodeId(). */
16833
19598
  const char *NodeName () const { return NodeId (); }
 
19599
  /** Set the linkage specifiers to each declaration in the list.
 
19600
   *  \param l The linkage specifiers node. */
16834
19601
  void Linkage (CT_LinkageSpec *l);
16835
19602
};
16836
19603
 
 
19604
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
19605
 *  Tree node representing a sequence of declaration specifiers. */
16837
19606
 
16838
 
#line 16839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19607
#line 19608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16839
19608
} // closed Puma
 
19609
class CCExprResolve;
 
19610
class CExprResolve;
16840
19611
class WinIfExists;
16841
19612
class WinImportHandler;
16842
19613
class WinMacros;
16843
 
class CMatchSyntax;
16844
 
class ExtGnu;
 
19614
class WinAsm;
 
19615
class WinDeclSpecs;
 
19616
class WinMemberExplSpec;
 
19617
class WinTypeKeywords;
 
19618
class WinFriend;
16845
19619
class ExtAC;
16846
19620
class ExtACBuilderCoupling;
16847
19621
class ExtACSyntaxCoupling;
16848
19622
class ExtACTree;
16849
19623
class ExtACKeywords;
16850
 
class WinAsm;
16851
 
class WinDeclSpecs;
16852
 
class WinMemberExplSpec;
16853
 
class WinTypeKeywords;
 
19624
class ExtGnu;
16854
19625
class PragmaOnceUnitState;
16855
19626
class PragmaOnce;
16856
 
class CCExprResolve;
16857
 
class CExprResolve;
 
19627
class CMatchSyntax;
16858
19628
namespace Puma {
16859
19629
 
16860
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19630
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16861
19631
class CT_DeclSpecSeq : public CT_List {
16862
 
#line 16863 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19632
#line 19633 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19633
  friend class ::CCExprResolve;
 
19634
  friend class ::CExprResolve;
16863
19635
  friend class ::WinIfExists;
16864
19636
  friend class ::WinImportHandler;
16865
19637
  friend class ::WinMacros;
16866
 
  friend class ::CMatchSyntax;
16867
 
  friend class ::ExtGnu;
 
19638
  friend class ::WinAsm;
 
19639
  friend class ::WinDeclSpecs;
 
19640
  friend class ::WinMemberExplSpec;
 
19641
  friend class ::WinTypeKeywords;
 
19642
  friend class ::WinFriend;
16868
19643
  friend class ::ExtAC;
16869
19644
  friend class ::ExtACBuilderCoupling;
16870
19645
  friend class ::ExtACSyntaxCoupling;
16871
19646
  friend class ::ExtACTree;
16872
19647
  friend class ::ExtACKeywords;
16873
 
  friend class ::WinAsm;
16874
 
  friend class ::WinDeclSpecs;
16875
 
  friend class ::WinMemberExplSpec;
16876
 
  friend class ::WinTypeKeywords;
 
19648
  friend class ::ExtGnu;
16877
19649
  friend class ::PragmaOnceUnitState;
16878
19650
  friend class ::PragmaOnce;
16879
 
  friend class ::CCExprResolve;
16880
 
  friend class ::CExprResolve;
 
19651
  friend class ::CMatchSyntax;
16881
19652
 
16882
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19653
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16883
19654
 
16884
19655
public:
 
19656
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16885
19657
  static const char *NodeId ();
 
19658
  /** Get the name of the node. Can be compared with NodeId(). */
16886
19659
  const char *NodeName () const { return NodeId (); }
16887
19660
};
16888
19661
 
 
19662
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
19663
 *  Tree node representing a compound statement. */
16889
19664
 
16890
 
#line 16891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19665
#line 19666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16891
19666
} // closed Puma
 
19667
class CCExprResolve;
 
19668
class CExprResolve;
16892
19669
class WinIfExists;
16893
19670
class WinImportHandler;
16894
19671
class WinMacros;
16895
 
class CMatchSyntax;
16896
 
class ExtGnu;
 
19672
class WinAsm;
 
19673
class WinDeclSpecs;
 
19674
class WinMemberExplSpec;
 
19675
class WinTypeKeywords;
 
19676
class WinFriend;
16897
19677
class ExtAC;
16898
19678
class ExtACBuilderCoupling;
16899
19679
class ExtACSyntaxCoupling;
16900
19680
class ExtACTree;
16901
19681
class ExtACKeywords;
16902
 
class WinAsm;
16903
 
class WinDeclSpecs;
16904
 
class WinMemberExplSpec;
16905
 
class WinTypeKeywords;
 
19682
class ExtGnu;
16906
19683
class PragmaOnceUnitState;
16907
19684
class PragmaOnce;
16908
 
class CCExprResolve;
16909
 
class CExprResolve;
 
19685
class CMatchSyntax;
16910
19686
namespace Puma {
16911
19687
 
16912
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19688
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16913
19689
class CT_CmpdStmt : public CT_List, public CSemScope {
16914
 
#line 16915 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19690
#line 19691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19691
  friend class ::CCExprResolve;
 
19692
  friend class ::CExprResolve;
16915
19693
  friend class ::WinIfExists;
16916
19694
  friend class ::WinImportHandler;
16917
19695
  friend class ::WinMacros;
16918
 
  friend class ::CMatchSyntax;
16919
 
  friend class ::ExtGnu;
 
19696
  friend class ::WinAsm;
 
19697
  friend class ::WinDeclSpecs;
 
19698
  friend class ::WinMemberExplSpec;
 
19699
  friend class ::WinTypeKeywords;
 
19700
  friend class ::WinFriend;
16920
19701
  friend class ::ExtAC;
16921
19702
  friend class ::ExtACBuilderCoupling;
16922
19703
  friend class ::ExtACSyntaxCoupling;
16923
19704
  friend class ::ExtACTree;
16924
19705
  friend class ::ExtACKeywords;
16925
 
  friend class ::WinAsm;
16926
 
  friend class ::WinDeclSpecs;
16927
 
  friend class ::WinMemberExplSpec;
16928
 
  friend class ::WinTypeKeywords;
 
19706
  friend class ::ExtGnu;
16929
19707
  friend class ::PragmaOnceUnitState;
16930
19708
  friend class ::PragmaOnce;
16931
 
  friend class ::CCExprResolve;
16932
 
  friend class ::CExprResolve;
 
19709
  friend class ::CMatchSyntax;
16933
19710
 
16934
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19711
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16935
19712
 
16936
19713
public:
 
19714
  /* Constructor. */
16937
19715
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
19716
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16938
19717
  static const char *NodeId ();
 
19718
  /** Get the name of the node. Can be compared with NodeId(). */
16939
19719
  const char *NodeName () const { return NodeId (); }
 
19720
  /** Get the local scope of the compound statement. */
 
19721
  CSemScope *SemScope () const { return (CSemScope*)this; }
16940
19722
};
16941
19723
 
 
19724
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
19725
 *  Tree node representing an exception handler sequence. */
16942
19726
 
16943
 
#line 16944 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19727
#line 19728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16944
19728
} // closed Puma
 
19729
class CCExprResolve;
 
19730
class CExprResolve;
16945
19731
class WinIfExists;
16946
19732
class WinImportHandler;
16947
19733
class WinMacros;
16948
 
class CMatchSyntax;
16949
 
class ExtGnu;
 
19734
class WinAsm;
 
19735
class WinDeclSpecs;
 
19736
class WinMemberExplSpec;
 
19737
class WinTypeKeywords;
 
19738
class WinFriend;
16950
19739
class ExtAC;
16951
19740
class ExtACBuilderCoupling;
16952
19741
class ExtACSyntaxCoupling;
16953
19742
class ExtACTree;
16954
19743
class ExtACKeywords;
16955
 
class WinAsm;
16956
 
class WinDeclSpecs;
16957
 
class WinMemberExplSpec;
16958
 
class WinTypeKeywords;
 
19744
class ExtGnu;
16959
19745
class PragmaOnceUnitState;
16960
19746
class PragmaOnce;
16961
 
class CCExprResolve;
16962
 
class CExprResolve;
 
19747
class CMatchSyntax;
16963
19748
namespace Puma {
16964
19749
 
16965
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19750
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16966
19751
class CT_HandlerSeq : public CT_List {
16967
 
#line 16968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19752
#line 19753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19753
  friend class ::CCExprResolve;
 
19754
  friend class ::CExprResolve;
16968
19755
  friend class ::WinIfExists;
16969
19756
  friend class ::WinImportHandler;
16970
19757
  friend class ::WinMacros;
16971
 
  friend class ::CMatchSyntax;
16972
 
  friend class ::ExtGnu;
 
19758
  friend class ::WinAsm;
 
19759
  friend class ::WinDeclSpecs;
 
19760
  friend class ::WinMemberExplSpec;
 
19761
  friend class ::WinTypeKeywords;
 
19762
  friend class ::WinFriend;
16973
19763
  friend class ::ExtAC;
16974
19764
  friend class ::ExtACBuilderCoupling;
16975
19765
  friend class ::ExtACSyntaxCoupling;
16976
19766
  friend class ::ExtACTree;
16977
19767
  friend class ::ExtACKeywords;
16978
 
  friend class ::WinAsm;
16979
 
  friend class ::WinDeclSpecs;
16980
 
  friend class ::WinMemberExplSpec;
16981
 
  friend class ::WinTypeKeywords;
 
19768
  friend class ::ExtGnu;
16982
19769
  friend class ::PragmaOnceUnitState;
16983
19770
  friend class ::PragmaOnce;
16984
 
  friend class ::CCExprResolve;
16985
 
  friend class ::CExprResolve;
 
19771
  friend class ::CMatchSyntax;
16986
19772
 
16987
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19773
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
16988
19774
 
16989
19775
public:
 
19776
  /** Get the identifier for this node type. Can be compared with NodeName(). */
16990
19777
  static const char *NodeId ();
 
19778
  /** Get the name of the node. Can be compared with NodeId(). */
16991
19779
  const char *NodeName () const { return NodeId (); }
16992
19780
};
16993
19781
 
 
19782
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
19783
 *  Tree node representing a template parameter list. */
16994
19784
 
16995
 
#line 16996 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19785
#line 19786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
16996
19786
} // closed Puma
 
19787
class CCExprResolve;
 
19788
class CExprResolve;
16997
19789
class WinIfExists;
16998
19790
class WinImportHandler;
16999
19791
class WinMacros;
17000
 
class CMatchSyntax;
17001
 
class ExtGnu;
 
19792
class WinAsm;
 
19793
class WinDeclSpecs;
 
19794
class WinMemberExplSpec;
 
19795
class WinTypeKeywords;
 
19796
class WinFriend;
17002
19797
class ExtAC;
17003
19798
class ExtACBuilderCoupling;
17004
19799
class ExtACSyntaxCoupling;
17005
19800
class ExtACTree;
17006
19801
class ExtACKeywords;
17007
 
class WinAsm;
17008
 
class WinDeclSpecs;
17009
 
class WinMemberExplSpec;
17010
 
class WinTypeKeywords;
 
19802
class ExtGnu;
17011
19803
class PragmaOnceUnitState;
17012
19804
class PragmaOnce;
17013
 
class CCExprResolve;
17014
 
class CExprResolve;
 
19805
class CMatchSyntax;
17015
19806
namespace Puma {
17016
19807
 
17017
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19808
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17018
19809
class CT_TemplateParamList : public CT_List, public CSemScope {
17019
 
#line 17020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19810
#line 19811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19811
  friend class ::CCExprResolve;
 
19812
  friend class ::CExprResolve;
17020
19813
  friend class ::WinIfExists;
17021
19814
  friend class ::WinImportHandler;
17022
19815
  friend class ::WinMacros;
17023
 
  friend class ::CMatchSyntax;
17024
 
  friend class ::ExtGnu;
 
19816
  friend class ::WinAsm;
 
19817
  friend class ::WinDeclSpecs;
 
19818
  friend class ::WinMemberExplSpec;
 
19819
  friend class ::WinTypeKeywords;
 
19820
  friend class ::WinFriend;
17025
19821
  friend class ::ExtAC;
17026
19822
  friend class ::ExtACBuilderCoupling;
17027
19823
  friend class ::ExtACSyntaxCoupling;
17028
19824
  friend class ::ExtACTree;
17029
19825
  friend class ::ExtACKeywords;
17030
 
  friend class ::WinAsm;
17031
 
  friend class ::WinDeclSpecs;
17032
 
  friend class ::WinMemberExplSpec;
17033
 
  friend class ::WinTypeKeywords;
 
19826
  friend class ::ExtGnu;
17034
19827
  friend class ::PragmaOnceUnitState;
17035
19828
  friend class ::PragmaOnce;
17036
 
  friend class ::CCExprResolve;
17037
 
  friend class ::CExprResolve;
 
19829
  friend class ::CMatchSyntax;
17038
19830
 
17039
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19831
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17040
19832
 
17041
19833
public:
17042
19834
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
19835
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17043
19836
  static const char *NodeId ();
 
19837
  /** Get the name of the node. Can be compared with NodeId(). */
17044
19838
  const char *NodeName () const { return NodeId (); }
 
19839
  /** Get the scope of the template parameter list. */
 
19840
  CSemScope *SemScope () const { return (CSemScope*)this; }
17045
19841
};
17046
19842
 
 
19843
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
19844
 *  Tree node representing a template argument list. */
17047
19845
 
17048
 
#line 17049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19846
#line 19847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17049
19847
} // closed Puma
 
19848
class CCExprResolve;
 
19849
class CExprResolve;
17050
19850
class WinIfExists;
17051
19851
class WinImportHandler;
17052
19852
class WinMacros;
17053
 
class CMatchSyntax;
17054
 
class ExtGnu;
 
19853
class WinAsm;
 
19854
class WinDeclSpecs;
 
19855
class WinMemberExplSpec;
 
19856
class WinTypeKeywords;
 
19857
class WinFriend;
17055
19858
class ExtAC;
17056
19859
class ExtACBuilderCoupling;
17057
19860
class ExtACSyntaxCoupling;
17058
19861
class ExtACTree;
17059
19862
class ExtACKeywords;
17060
 
class WinAsm;
17061
 
class WinDeclSpecs;
17062
 
class WinMemberExplSpec;
17063
 
class WinTypeKeywords;
 
19863
class ExtGnu;
17064
19864
class PragmaOnceUnitState;
17065
19865
class PragmaOnce;
17066
 
class CCExprResolve;
17067
 
class CExprResolve;
 
19866
class CMatchSyntax;
17068
19867
namespace Puma {
17069
19868
 
17070
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19869
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17071
19870
class CT_TemplateArgList : public CT_List {
17072
 
#line 17073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19871
#line 19872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19872
  friend class ::CCExprResolve;
 
19873
  friend class ::CExprResolve;
17073
19874
  friend class ::WinIfExists;
17074
19875
  friend class ::WinImportHandler;
17075
19876
  friend class ::WinMacros;
17076
 
  friend class ::CMatchSyntax;
17077
 
  friend class ::ExtGnu;
 
19877
  friend class ::WinAsm;
 
19878
  friend class ::WinDeclSpecs;
 
19879
  friend class ::WinMemberExplSpec;
 
19880
  friend class ::WinTypeKeywords;
 
19881
  friend class ::WinFriend;
17078
19882
  friend class ::ExtAC;
17079
19883
  friend class ::ExtACBuilderCoupling;
17080
19884
  friend class ::ExtACSyntaxCoupling;
17081
19885
  friend class ::ExtACTree;
17082
19886
  friend class ::ExtACKeywords;
17083
 
  friend class ::WinAsm;
17084
 
  friend class ::WinDeclSpecs;
17085
 
  friend class ::WinMemberExplSpec;
17086
 
  friend class ::WinTypeKeywords;
 
19887
  friend class ::ExtGnu;
17087
19888
  friend class ::PragmaOnceUnitState;
17088
19889
  friend class ::PragmaOnce;
17089
 
  friend class ::CCExprResolve;
17090
 
  friend class ::CExprResolve;
 
19890
  friend class ::CMatchSyntax;
17091
19891
 
17092
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19892
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17093
19893
 
17094
19894
public:
 
19895
  /** Constructor. */
17095
19896
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
19897
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17096
19898
  static const char *NodeId ();
 
19899
  /** Get the name of the node. Can be compared with NodeId(). */
17097
19900
  const char *NodeName () const { return NodeId (); }
17098
19901
};
17099
19902
 
17103
19906
/*                                                                           */
17104
19907
/*****************************************************************************/
17105
19908
 
 
19909
/** \class CT_Expression CTree.h Puma/CTree.h
 
19910
 *  Base class for all expression tree nodes. */
17106
19911
 
17107
 
#line 17108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19912
#line 19913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17108
19913
} // closed Puma
 
19914
class CCExprResolve;
 
19915
class CExprResolve;
17109
19916
class WinIfExists;
17110
19917
class WinImportHandler;
17111
19918
class WinMacros;
17112
 
class CMatchSyntax;
17113
 
class ExtGnu;
 
19919
class WinAsm;
 
19920
class WinDeclSpecs;
 
19921
class WinMemberExplSpec;
 
19922
class WinTypeKeywords;
 
19923
class WinFriend;
17114
19924
class ExtAC;
17115
19925
class ExtACBuilderCoupling;
17116
19926
class ExtACSyntaxCoupling;
17117
19927
class ExtACTree;
17118
19928
class ExtACKeywords;
17119
 
class WinAsm;
17120
 
class WinDeclSpecs;
17121
 
class WinMemberExplSpec;
17122
 
class WinTypeKeywords;
 
19929
class ExtGnu;
17123
19930
class PragmaOnceUnitState;
17124
19931
class PragmaOnce;
17125
 
class CCExprResolve;
17126
 
class CExprResolve;
17127
 
namespace Puma {
17128
 
 
17129
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19932
class CMatchSyntax;
 
19933
namespace Puma {
 
19934
 
 
19935
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19936
 
 
19937
#line 19938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19938
} // closed Puma
 
19939
 
 
19940
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19941
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19942
#include "CCExprResolveH.ah"
 
19943
#endif
 
19944
namespace Puma {
 
19945
 
 
19946
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19947
 
 
19948
#line 19949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19949
} // closed Puma
 
19950
 
 
19951
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19952
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19953
#include "CExprResolveH.ah"
 
19954
#endif
 
19955
namespace Puma {
 
19956
 
 
19957
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17130
19958
class CT_Expression : public CTree, public CSemValue {
17131
 
#line 17132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
19959
#line 19960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
19960
  friend class ::CCExprResolve;
 
19961
  friend class ::CExprResolve;
17132
19962
  friend class ::WinIfExists;
17133
19963
  friend class ::WinImportHandler;
17134
19964
  friend class ::WinMacros;
17135
 
  friend class ::CMatchSyntax;
17136
 
  friend class ::ExtGnu;
 
19965
  friend class ::WinAsm;
 
19966
  friend class ::WinDeclSpecs;
 
19967
  friend class ::WinMemberExplSpec;
 
19968
  friend class ::WinTypeKeywords;
 
19969
  friend class ::WinFriend;
17137
19970
  friend class ::ExtAC;
17138
19971
  friend class ::ExtACBuilderCoupling;
17139
19972
  friend class ::ExtACSyntaxCoupling;
17140
19973
  friend class ::ExtACTree;
17141
19974
  friend class ::ExtACKeywords;
17142
 
  friend class ::WinAsm;
17143
 
  friend class ::WinDeclSpecs;
17144
 
  friend class ::WinMemberExplSpec;
17145
 
  friend class ::WinTypeKeywords;
 
19975
  friend class ::ExtGnu;
17146
19976
  friend class ::PragmaOnceUnitState;
17147
19977
  friend class ::PragmaOnce;
17148
 
  friend class ::CCExprResolve;
17149
 
  friend class ::CExprResolve;
 
19978
  friend class ::CMatchSyntax;
17150
19979
 
17151
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19980
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17152
19981
 
17153
19982
protected:
 
19983
  /** Constructor. */
17154
19984
  CT_Expression () {}
17155
19985
 
17156
19986
public:
 
19987
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17157
19988
  static const char *NodeId ();
 
19989
  /** Get the name of the node. Can be compared with NodeId(). */
17158
19990
  const char *NodeName () const { return NodeId (); }
 
19991
  /** Get the type of the expression.
 
19992
   *  \return The type information object or NULL. */
17159
19993
  CTypeInfo *Type () const { return type; }
 
19994
  /** Get the value of the expression.
 
19995
   *  \return The value object or NULL. */
17160
19996
  CExprValue *Value () const { return value; }
 
19997
  /** Get the semantic value information of the expression.
 
19998
   *  \return The value object or NULL. */
17161
19999
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
20000
  /** Get this. */
 
20001
  virtual CT_Expression *IsExpression () { return this; }
17162
20002
   private:
17163
20003
  typedef CT_Expression CCExprResolveExpr;
17164
20004
 
17165
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20005
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17166
20006
 public :
17167
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
20007
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17168
20008
  typedef CT_Expression CExprResolveExpr;
17169
20009
 
17170
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17171
 
 public :
17172
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17173
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17174
 
};
17175
 
 
17176
 
 
17177
 
#line 17178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
17178
 
} // closed Puma
17179
 
class WinIfExists;
17180
 
class WinImportHandler;
17181
 
class WinMacros;
17182
 
class CMatchSyntax;
17183
 
class ExtGnu;
17184
 
class ExtAC;
17185
 
class ExtACBuilderCoupling;
17186
 
class ExtACSyntaxCoupling;
17187
 
class ExtACTree;
17188
 
class ExtACKeywords;
17189
 
class WinAsm;
17190
 
class WinDeclSpecs;
17191
 
class WinMemberExplSpec;
17192
 
class WinTypeKeywords;
17193
 
class PragmaOnceUnitState;
17194
 
class PragmaOnce;
17195
 
class CCExprResolve;
17196
 
class CExprResolve;
17197
 
namespace Puma {
17198
 
 
17199
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20010
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20011
 public :
 
20012
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20013
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20014
};
 
20015
 
 
20016
/** \class CT_Call CTree.h Puma/CTree.h
 
20017
 *  Tree node representing explicit or implicit function calls 
 
20018
 *  including built-in or user-defined functions and overloaded
 
20019
 *  operators. */
 
20020
 
 
20021
#line 20022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20022
} // closed Puma
 
20023
class CCExprResolve;
 
20024
class CExprResolve;
 
20025
class WinIfExists;
 
20026
class WinImportHandler;
 
20027
class WinMacros;
 
20028
class WinAsm;
 
20029
class WinDeclSpecs;
 
20030
class WinMemberExplSpec;
 
20031
class WinTypeKeywords;
 
20032
class WinFriend;
 
20033
class ExtAC;
 
20034
class ExtACBuilderCoupling;
 
20035
class ExtACSyntaxCoupling;
 
20036
class ExtACTree;
 
20037
class ExtACKeywords;
 
20038
class ExtGnu;
 
20039
class PragmaOnceUnitState;
 
20040
class PragmaOnce;
 
20041
class CMatchSyntax;
 
20042
namespace Puma {
 
20043
 
 
20044
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20045
 
 
20046
#line 20047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20047
} // closed Puma
 
20048
 
 
20049
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20050
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20051
#include "CCExprResolveH.ah"
 
20052
#endif
 
20053
namespace Puma {
 
20054
 
 
20055
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20056
 
 
20057
#line 20058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20058
} // closed Puma
 
20059
 
 
20060
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20061
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20062
#include "CExprResolveH.ah"
 
20063
#endif
 
20064
namespace Puma {
 
20065
 
 
20066
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20067
class CT_Call : public CT_Expression, public CSemObject {
 
20068
#line 20069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20069
  friend class ::CCExprResolve;
 
20070
  friend class ::CExprResolve;
 
20071
  friend class ::WinIfExists;
 
20072
  friend class ::WinImportHandler;
 
20073
  friend class ::WinMacros;
 
20074
  friend class ::WinAsm;
 
20075
  friend class ::WinDeclSpecs;
 
20076
  friend class ::WinMemberExplSpec;
 
20077
  friend class ::WinTypeKeywords;
 
20078
  friend class ::WinFriend;
 
20079
  friend class ::ExtAC;
 
20080
  friend class ::ExtACBuilderCoupling;
 
20081
  friend class ::ExtACSyntaxCoupling;
 
20082
  friend class ::ExtACTree;
 
20083
  friend class ::ExtACKeywords;
 
20084
  friend class ::ExtGnu;
 
20085
  friend class ::PragmaOnceUnitState;
 
20086
  friend class ::PragmaOnce;
 
20087
  friend class ::CMatchSyntax;
 
20088
 
 
20089
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20090
 
 
20091
protected:
 
20092
  /** Constructor. */
 
20093
  CT_Call () {}
 
20094
  
 
20095
public:
 
20096
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20097
  static const char *NodeId ();
 
20098
  /** Get the name of the node. Can be compared with NodeId(). */
 
20099
  const char *NodeName () const { return NodeId (); }
 
20100
  /** Get the semantic information of the call.
 
20101
   *  \return The semantic information or NULL. */
 
20102
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
20103
  /** Get this. */
 
20104
  CT_Call *IsCall () { return this; }
 
20105
   private:
 
20106
  typedef CT_Call CCExprResolveExpr;
 
20107
 
 
20108
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20109
 public :
 
20110
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20111
  typedef CT_Call CExprResolveExpr;
 
20112
 
 
20113
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20114
 public :
 
20115
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20116
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20117
};
 
20118
 
 
20119
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
20120
 *  Tree node representing implicit function calls detected by
 
20121
 *  the semantic analysis. */
 
20122
 
 
20123
#line 20124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20124
} // closed Puma
 
20125
class CCExprResolve;
 
20126
class CExprResolve;
 
20127
class WinIfExists;
 
20128
class WinImportHandler;
 
20129
class WinMacros;
 
20130
class WinAsm;
 
20131
class WinDeclSpecs;
 
20132
class WinMemberExplSpec;
 
20133
class WinTypeKeywords;
 
20134
class WinFriend;
 
20135
class ExtAC;
 
20136
class ExtACBuilderCoupling;
 
20137
class ExtACSyntaxCoupling;
 
20138
class ExtACTree;
 
20139
class ExtACKeywords;
 
20140
class ExtGnu;
 
20141
class PragmaOnceUnitState;
 
20142
class PragmaOnce;
 
20143
class CMatchSyntax;
 
20144
namespace Puma {
 
20145
 
 
20146
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20147
 
 
20148
#line 20149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20149
} // closed Puma
 
20150
 
 
20151
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20152
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20153
#include "CCExprResolveH.ah"
 
20154
#endif
 
20155
namespace Puma {
 
20156
 
 
20157
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20158
 
 
20159
#line 20160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20160
} // closed Puma
 
20161
 
 
20162
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20163
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20164
#include "CExprResolveH.ah"
 
20165
#endif
 
20166
namespace Puma {
 
20167
 
 
20168
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20169
class CT_ImplicitCall : public CT_Call {
 
20170
#line 20171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20171
  friend class ::CCExprResolve;
 
20172
  friend class ::CExprResolve;
 
20173
  friend class ::WinIfExists;
 
20174
  friend class ::WinImportHandler;
 
20175
  friend class ::WinMacros;
 
20176
  friend class ::WinAsm;
 
20177
  friend class ::WinDeclSpecs;
 
20178
  friend class ::WinMemberExplSpec;
 
20179
  friend class ::WinTypeKeywords;
 
20180
  friend class ::WinFriend;
 
20181
  friend class ::ExtAC;
 
20182
  friend class ::ExtACBuilderCoupling;
 
20183
  friend class ::ExtACSyntaxCoupling;
 
20184
  friend class ::ExtACTree;
 
20185
  friend class ::ExtACKeywords;
 
20186
  friend class ::ExtGnu;
 
20187
  friend class ::PragmaOnceUnitState;
 
20188
  friend class ::PragmaOnce;
 
20189
  friend class ::CMatchSyntax;
 
20190
 
 
20191
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20192
 
 
20193
  CTree *_arg;
 
20194
 
 
20195
public:
 
20196
  /** Constructor.
 
20197
   *  \param arg The call argument. */
 
20198
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
20199
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20200
  static const char *NodeId ();
 
20201
  /** Get the name of the node. Can be compared with NodeId(). */
 
20202
  const char *NodeName () const { return NodeId (); }
 
20203
  /** Get the number of sons. */
 
20204
  int Sons () const { return 1; }
 
20205
  /** Get the n-th son.
 
20206
   *  \param n The index of the son.
 
20207
   *  \return The n-th son or NULL. */
 
20208
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
20209
  /** Replace a son.
 
20210
   *  \param old_son The son to replace.
 
20211
   *  \param new_son The new son. */
 
20212
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
20213
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
20214
   private:
 
20215
  typedef CT_ImplicitCall CCExprResolveExpr;
 
20216
 
 
20217
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20218
 public :
 
20219
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20220
  typedef CT_ImplicitCall CExprResolveExpr;
 
20221
 
 
20222
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20223
 public :
 
20224
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20225
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20226
};
 
20227
 
 
20228
/** \class CT_String CTree.h Puma/CTree.h
 
20229
 *  Tree node representing a string literal. */
 
20230
 
 
20231
#line 20232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20232
} // closed Puma
 
20233
class CCExprResolve;
 
20234
class CExprResolve;
 
20235
class WinIfExists;
 
20236
class WinImportHandler;
 
20237
class WinMacros;
 
20238
class WinAsm;
 
20239
class WinDeclSpecs;
 
20240
class WinMemberExplSpec;
 
20241
class WinTypeKeywords;
 
20242
class WinFriend;
 
20243
class ExtAC;
 
20244
class ExtACBuilderCoupling;
 
20245
class ExtACSyntaxCoupling;
 
20246
class ExtACTree;
 
20247
class ExtACKeywords;
 
20248
class ExtGnu;
 
20249
class PragmaOnceUnitState;
 
20250
class PragmaOnce;
 
20251
class CMatchSyntax;
 
20252
namespace Puma {
 
20253
 
 
20254
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20255
 
 
20256
#line 20257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20257
} // closed Puma
 
20258
 
 
20259
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20260
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20261
#include "CCExprResolveH.ah"
 
20262
#endif
 
20263
namespace Puma {
 
20264
 
 
20265
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20266
 
 
20267
#line 20268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20268
} // closed Puma
 
20269
 
 
20270
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20271
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20272
#include "CExprResolveH.ah"
 
20273
#endif
 
20274
namespace Puma {
 
20275
 
 
20276
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17200
20277
class CT_String : public CT_List, public CSemValue {
17201
 
#line 17202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20278
#line 20279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20279
  friend class ::CCExprResolve;
 
20280
  friend class ::CExprResolve;
17202
20281
  friend class ::WinIfExists;
17203
20282
  friend class ::WinImportHandler;
17204
20283
  friend class ::WinMacros;
17205
 
  friend class ::CMatchSyntax;
17206
 
  friend class ::ExtGnu;
 
20284
  friend class ::WinAsm;
 
20285
  friend class ::WinDeclSpecs;
 
20286
  friend class ::WinMemberExplSpec;
 
20287
  friend class ::WinTypeKeywords;
 
20288
  friend class ::WinFriend;
17207
20289
  friend class ::ExtAC;
17208
20290
  friend class ::ExtACBuilderCoupling;
17209
20291
  friend class ::ExtACSyntaxCoupling;
17210
20292
  friend class ::ExtACTree;
17211
20293
  friend class ::ExtACKeywords;
17212
 
  friend class ::WinAsm;
17213
 
  friend class ::WinDeclSpecs;
17214
 
  friend class ::WinMemberExplSpec;
17215
 
  friend class ::WinTypeKeywords;
 
20294
  friend class ::ExtGnu;
17216
20295
  friend class ::PragmaOnceUnitState;
17217
20296
  friend class ::PragmaOnce;
17218
 
  friend class ::CCExprResolve;
17219
 
  friend class ::CExprResolve;
 
20297
  friend class ::CMatchSyntax;
17220
20298
 
17221
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20299
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17222
20300
 
17223
20301
public:
 
20302
  /** Constructor. 
 
20303
   *  \param size The number of sub-strings. */
17224
20304
  CT_String (int size) : CT_List (size, 1) {}
 
20305
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17225
20306
  static const char *NodeId ();
 
20307
  /** Get the name of the node. Can be compared with NodeId(). */
17226
20308
  const char *NodeName () const { return NodeId (); }
17227
20309
 
 
20310
  /** Get the type of the string. 
 
20311
   *  \return The type or NULL. */
17228
20312
  CTypeInfo *Type () const { return type; }
 
20313
  /** Get the string value.
 
20314
   *  \return The value or NULL. */
17229
20315
  CExprValue *Value () const { return value; }
 
20316
  /** Get the semantic value info object.
 
20317
   *  \return The semantic value object or NULL. */
17230
20318
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
20319
  /** Get this. */
 
20320
  virtual CT_String *IsString () { return this; }
17231
20321
   private:
17232
20322
  typedef CT_String CCExprResolveExpr;
17233
20323
 
17234
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20324
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17235
20325
 public :
17236
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
20326
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17237
20327
  typedef CT_String CExprResolveExpr;
17238
20328
 
17239
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20329
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17240
20330
 public :
17241
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17242
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20331
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20332
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17243
20333
};
17244
20334
 
 
20335
/** \class CT_WideString CTree.h Puma/CTree.h
 
20336
 *  Tree node representing a wide string literal. */
17245
20337
 
17246
 
#line 17247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20338
#line 20339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17247
20339
} // closed Puma
 
20340
class CCExprResolve;
 
20341
class CExprResolve;
17248
20342
class WinIfExists;
17249
20343
class WinImportHandler;
17250
20344
class WinMacros;
17251
 
class CMatchSyntax;
17252
 
class ExtGnu;
 
20345
class WinAsm;
 
20346
class WinDeclSpecs;
 
20347
class WinMemberExplSpec;
 
20348
class WinTypeKeywords;
 
20349
class WinFriend;
17253
20350
class ExtAC;
17254
20351
class ExtACBuilderCoupling;
17255
20352
class ExtACSyntaxCoupling;
17256
20353
class ExtACTree;
17257
20354
class ExtACKeywords;
17258
 
class WinAsm;
17259
 
class WinDeclSpecs;
17260
 
class WinMemberExplSpec;
17261
 
class WinTypeKeywords;
 
20355
class ExtGnu;
17262
20356
class PragmaOnceUnitState;
17263
20357
class PragmaOnce;
17264
 
class CCExprResolve;
17265
 
class CExprResolve;
17266
 
namespace Puma {
17267
 
 
17268
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20358
class CMatchSyntax;
 
20359
namespace Puma {
 
20360
 
 
20361
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20362
 
 
20363
#line 20364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20364
} // closed Puma
 
20365
 
 
20366
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20367
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20368
#include "CCExprResolveH.ah"
 
20369
#endif
 
20370
namespace Puma {
 
20371
 
 
20372
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20373
 
 
20374
#line 20375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20375
} // closed Puma
 
20376
 
 
20377
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20378
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20379
#include "CExprResolveH.ah"
 
20380
#endif
 
20381
namespace Puma {
 
20382
 
 
20383
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17269
20384
class CT_WideString : public CT_String {
17270
 
#line 17271 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20385
#line 20386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20386
  friend class ::CCExprResolve;
 
20387
  friend class ::CExprResolve;
17271
20388
  friend class ::WinIfExists;
17272
20389
  friend class ::WinImportHandler;
17273
20390
  friend class ::WinMacros;
17274
 
  friend class ::CMatchSyntax;
17275
 
  friend class ::ExtGnu;
 
20391
  friend class ::WinAsm;
 
20392
  friend class ::WinDeclSpecs;
 
20393
  friend class ::WinMemberExplSpec;
 
20394
  friend class ::WinTypeKeywords;
 
20395
  friend class ::WinFriend;
17276
20396
  friend class ::ExtAC;
17277
20397
  friend class ::ExtACBuilderCoupling;
17278
20398
  friend class ::ExtACSyntaxCoupling;
17279
20399
  friend class ::ExtACTree;
17280
20400
  friend class ::ExtACKeywords;
17281
 
  friend class ::WinAsm;
17282
 
  friend class ::WinDeclSpecs;
17283
 
  friend class ::WinMemberExplSpec;
17284
 
  friend class ::WinTypeKeywords;
 
20401
  friend class ::ExtGnu;
17285
20402
  friend class ::PragmaOnceUnitState;
17286
20403
  friend class ::PragmaOnce;
17287
 
  friend class ::CCExprResolve;
17288
 
  friend class ::CExprResolve;
 
20404
  friend class ::CMatchSyntax;
17289
20405
 
17290
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20406
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17291
20407
 
17292
20408
public:
 
20409
  /** Constructor.
 
20410
   *  \param size The number of sub-strings. */
17293
20411
  CT_WideString (int size) : CT_String (size) {}
 
20412
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17294
20413
  static const char *NodeId ();
 
20414
  /** Get the name of the node. Can be compared with NodeId(). */
17295
20415
  const char *NodeName () const { return NodeId (); }
17296
20416
   private:
17297
20417
  typedef CT_WideString CCExprResolveExpr;
17298
20418
 
17299
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20419
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17300
20420
 public :
17301
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
20421
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17302
20422
  typedef CT_WideString CExprResolveExpr;
17303
20423
 
17304
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20424
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17305
20425
 public :
17306
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17307
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20426
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20427
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17308
20428
};
17309
20429
 
 
20430
/** \class CT_Integer CTree.h Puma/CTree.h
 
20431
 *  Tree node representing an integer constant. */
17310
20432
 
17311
 
#line 17312 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20433
#line 20434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17312
20434
} // closed Puma
 
20435
class CCExprResolve;
 
20436
class CExprResolve;
17313
20437
class WinIfExists;
17314
20438
class WinImportHandler;
17315
20439
class WinMacros;
17316
 
class CMatchSyntax;
17317
 
class ExtGnu;
 
20440
class WinAsm;
 
20441
class WinDeclSpecs;
 
20442
class WinMemberExplSpec;
 
20443
class WinTypeKeywords;
 
20444
class WinFriend;
17318
20445
class ExtAC;
17319
20446
class ExtACBuilderCoupling;
17320
20447
class ExtACSyntaxCoupling;
17321
20448
class ExtACTree;
17322
20449
class ExtACKeywords;
17323
 
class WinAsm;
17324
 
class WinDeclSpecs;
17325
 
class WinMemberExplSpec;
17326
 
class WinTypeKeywords;
 
20450
class ExtGnu;
17327
20451
class PragmaOnceUnitState;
17328
20452
class PragmaOnce;
17329
 
class CCExprResolve;
17330
 
class CExprResolve;
17331
 
namespace Puma {
17332
 
 
17333
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20453
class CMatchSyntax;
 
20454
namespace Puma {
 
20455
 
 
20456
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20457
 
 
20458
#line 20459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20459
} // closed Puma
 
20460
 
 
20461
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20462
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20463
#include "CCExprResolveH.ah"
 
20464
#endif
 
20465
namespace Puma {
 
20466
 
 
20467
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20468
 
 
20469
#line 20470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20470
} // closed Puma
 
20471
 
 
20472
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20473
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20474
#include "CExprResolveH.ah"
 
20475
#endif
 
20476
namespace Puma {
 
20477
 
 
20478
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17334
20479
class CT_Integer : public CT_Expression {
17335
 
#line 17336 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20480
#line 20481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20481
  friend class ::CCExprResolve;
 
20482
  friend class ::CExprResolve;
17336
20483
  friend class ::WinIfExists;
17337
20484
  friend class ::WinImportHandler;
17338
20485
  friend class ::WinMacros;
17339
 
  friend class ::CMatchSyntax;
17340
 
  friend class ::ExtGnu;
 
20486
  friend class ::WinAsm;
 
20487
  friend class ::WinDeclSpecs;
 
20488
  friend class ::WinMemberExplSpec;
 
20489
  friend class ::WinTypeKeywords;
 
20490
  friend class ::WinFriend;
17341
20491
  friend class ::ExtAC;
17342
20492
  friend class ::ExtACBuilderCoupling;
17343
20493
  friend class ::ExtACSyntaxCoupling;
17344
20494
  friend class ::ExtACTree;
17345
20495
  friend class ::ExtACKeywords;
17346
 
  friend class ::WinAsm;
17347
 
  friend class ::WinDeclSpecs;
17348
 
  friend class ::WinMemberExplSpec;
17349
 
  friend class ::WinTypeKeywords;
 
20496
  friend class ::ExtGnu;
17350
20497
  friend class ::PragmaOnceUnitState;
17351
20498
  friend class ::PragmaOnce;
17352
 
  friend class ::CCExprResolve;
17353
 
  friend class ::CExprResolve;
 
20499
  friend class ::CMatchSyntax;
17354
20500
 
17355
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20501
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17356
20502
 
17357
20503
  CTree *_value;  // CT_Token
17358
20504
 
17359
20505
public:
17360
 
  CT_Integer (CTree *t) : _value (t) {}
 
20506
  /** Constructor.
 
20507
   *  \param token The token containing the integer value. */
 
20508
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
20509
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17361
20510
  static const char *NodeId ();
 
20511
  /** Get the name of the node. Can be compared with NodeId(). */
17362
20512
  const char *NodeName () const { return NodeId (); }
 
20513
  /** Get the number of sons. */
17363
20514
  int Sons () const { return _value ? 1 : 0; }
 
20515
  /** Get the n-th son.
 
20516
   *  \param n The index of the son.
 
20517
   *  \return The n-th son or NULL. */
17364
20518
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
20519
  /** Replace a son.
 
20520
   *  \param old_son The son to replace.
 
20521
   *  \param new_son The new son. */
17365
20522
  void ReplaceSon (CTree *old_son, CTree *new_son) 
17366
 
   { if (old_son == _value) _value = new_son; }
 
20523
   { CTree::ReplaceSon (_value, old_son, new_son); }
17367
20524
   private:
17368
20525
  typedef CT_Integer CCExprResolveExpr;
17369
20526
 
17370
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20527
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17371
20528
 public :
17372
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
20529
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17373
20530
  typedef CT_Integer CExprResolveExpr;
17374
20531
 
17375
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20532
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17376
20533
 public :
17377
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17378
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20534
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20535
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17379
20536
};
17380
20537
 
 
20538
/** \class CT_Character CTree.h Puma/CTree.h
 
20539
 *  Tree node representing a single character constant. */
17381
20540
 
17382
 
#line 17383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20541
#line 20542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17383
20542
} // closed Puma
 
20543
class CCExprResolve;
 
20544
class CExprResolve;
17384
20545
class WinIfExists;
17385
20546
class WinImportHandler;
17386
20547
class WinMacros;
17387
 
class CMatchSyntax;
17388
 
class ExtGnu;
 
20548
class WinAsm;
 
20549
class WinDeclSpecs;
 
20550
class WinMemberExplSpec;
 
20551
class WinTypeKeywords;
 
20552
class WinFriend;
17389
20553
class ExtAC;
17390
20554
class ExtACBuilderCoupling;
17391
20555
class ExtACSyntaxCoupling;
17392
20556
class ExtACTree;
17393
20557
class ExtACKeywords;
17394
 
class WinAsm;
17395
 
class WinDeclSpecs;
17396
 
class WinMemberExplSpec;
17397
 
class WinTypeKeywords;
 
20558
class ExtGnu;
17398
20559
class PragmaOnceUnitState;
17399
20560
class PragmaOnce;
17400
 
class CCExprResolve;
17401
 
class CExprResolve;
17402
 
namespace Puma {
17403
 
 
17404
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20561
class CMatchSyntax;
 
20562
namespace Puma {
 
20563
 
 
20564
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20565
 
 
20566
#line 20567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20567
} // closed Puma
 
20568
 
 
20569
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20570
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20571
#include "CCExprResolveH.ah"
 
20572
#endif
 
20573
namespace Puma {
 
20574
 
 
20575
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20576
 
 
20577
#line 20578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20578
} // closed Puma
 
20579
 
 
20580
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20581
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20582
#include "CExprResolveH.ah"
 
20583
#endif
 
20584
namespace Puma {
 
20585
 
 
20586
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17405
20587
class CT_Character : public CT_Expression {
17406
 
#line 17407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20588
#line 20589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20589
  friend class ::CCExprResolve;
 
20590
  friend class ::CExprResolve;
17407
20591
  friend class ::WinIfExists;
17408
20592
  friend class ::WinImportHandler;
17409
20593
  friend class ::WinMacros;
17410
 
  friend class ::CMatchSyntax;
17411
 
  friend class ::ExtGnu;
 
20594
  friend class ::WinAsm;
 
20595
  friend class ::WinDeclSpecs;
 
20596
  friend class ::WinMemberExplSpec;
 
20597
  friend class ::WinTypeKeywords;
 
20598
  friend class ::WinFriend;
17412
20599
  friend class ::ExtAC;
17413
20600
  friend class ::ExtACBuilderCoupling;
17414
20601
  friend class ::ExtACSyntaxCoupling;
17415
20602
  friend class ::ExtACTree;
17416
20603
  friend class ::ExtACKeywords;
17417
 
  friend class ::WinAsm;
17418
 
  friend class ::WinDeclSpecs;
17419
 
  friend class ::WinMemberExplSpec;
17420
 
  friend class ::WinTypeKeywords;
 
20604
  friend class ::ExtGnu;
17421
20605
  friend class ::PragmaOnceUnitState;
17422
20606
  friend class ::PragmaOnce;
17423
 
  friend class ::CCExprResolve;
17424
 
  friend class ::CExprResolve;
 
20607
  friend class ::CMatchSyntax;
17425
20608
 
17426
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20609
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17427
20610
 
17428
20611
  CTree *_value;  // CT_Token
17429
20612
 
17430
20613
public:
17431
 
  CT_Character (CTree *t) : _value (t) {}
 
20614
  /** Constructor.
 
20615
   *  \param token The token containing the character value. */
 
20616
  CT_Character (CTree *token) { AddSon (_value, token); }
 
20617
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17432
20618
  static const char *NodeId ();
 
20619
  /** Get the name of the node. Can be compared with NodeId(). */
17433
20620
  const char *NodeName () const { return NodeId (); }
 
20621
  /** Get the number of sons. */
17434
20622
  int Sons () const { return 1; }
 
20623
  /** Get the n-th son.
 
20624
   *  \param n The index of the son.
 
20625
   *  \return The n-th son or NULL. */
17435
20626
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
20627
  /** Replace a son.
 
20628
   *  \param old_son The son to replace.
 
20629
   *  \param new_son The new son. */
17436
20630
  void ReplaceSon (CTree *old_son, CTree *new_son) 
17437
 
   { if (old_son == _value) _value = new_son; }
 
20631
   { CTree::ReplaceSon (_value, old_son, new_son); }
17438
20632
   private:
17439
20633
  typedef CT_Character CCExprResolveExpr;
17440
20634
 
17441
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20635
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17442
20636
 public :
17443
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
20637
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17444
20638
  typedef CT_Character CExprResolveExpr;
17445
20639
 
17446
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20640
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17447
20641
 public :
17448
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17449
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20642
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20643
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17450
20644
};
17451
20645
 
 
20646
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
20647
 *  Tree node representing a wide character constant. */
17452
20648
 
17453
 
#line 17454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20649
#line 20650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17454
20650
} // closed Puma
 
20651
class CCExprResolve;
 
20652
class CExprResolve;
17455
20653
class WinIfExists;
17456
20654
class WinImportHandler;
17457
20655
class WinMacros;
17458
 
class CMatchSyntax;
17459
 
class ExtGnu;
 
20656
class WinAsm;
 
20657
class WinDeclSpecs;
 
20658
class WinMemberExplSpec;
 
20659
class WinTypeKeywords;
 
20660
class WinFriend;
17460
20661
class ExtAC;
17461
20662
class ExtACBuilderCoupling;
17462
20663
class ExtACSyntaxCoupling;
17463
20664
class ExtACTree;
17464
20665
class ExtACKeywords;
17465
 
class WinAsm;
17466
 
class WinDeclSpecs;
17467
 
class WinMemberExplSpec;
17468
 
class WinTypeKeywords;
 
20666
class ExtGnu;
17469
20667
class PragmaOnceUnitState;
17470
20668
class PragmaOnce;
17471
 
class CCExprResolve;
17472
 
class CExprResolve;
17473
 
namespace Puma {
17474
 
 
17475
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20669
class CMatchSyntax;
 
20670
namespace Puma {
 
20671
 
 
20672
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20673
 
 
20674
#line 20675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20675
} // closed Puma
 
20676
 
 
20677
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20678
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20679
#include "CCExprResolveH.ah"
 
20680
#endif
 
20681
namespace Puma {
 
20682
 
 
20683
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20684
 
 
20685
#line 20686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20686
} // closed Puma
 
20687
 
 
20688
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20689
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20690
#include "CExprResolveH.ah"
 
20691
#endif
 
20692
namespace Puma {
 
20693
 
 
20694
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17476
20695
class CT_WideCharacter : public CT_Character {
17477
 
#line 17478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20696
#line 20697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20697
  friend class ::CCExprResolve;
 
20698
  friend class ::CExprResolve;
17478
20699
  friend class ::WinIfExists;
17479
20700
  friend class ::WinImportHandler;
17480
20701
  friend class ::WinMacros;
17481
 
  friend class ::CMatchSyntax;
17482
 
  friend class ::ExtGnu;
 
20702
  friend class ::WinAsm;
 
20703
  friend class ::WinDeclSpecs;
 
20704
  friend class ::WinMemberExplSpec;
 
20705
  friend class ::WinTypeKeywords;
 
20706
  friend class ::WinFriend;
17483
20707
  friend class ::ExtAC;
17484
20708
  friend class ::ExtACBuilderCoupling;
17485
20709
  friend class ::ExtACSyntaxCoupling;
17486
20710
  friend class ::ExtACTree;
17487
20711
  friend class ::ExtACKeywords;
17488
 
  friend class ::WinAsm;
17489
 
  friend class ::WinDeclSpecs;
17490
 
  friend class ::WinMemberExplSpec;
17491
 
  friend class ::WinTypeKeywords;
 
20712
  friend class ::ExtGnu;
17492
20713
  friend class ::PragmaOnceUnitState;
17493
20714
  friend class ::PragmaOnce;
17494
 
  friend class ::CCExprResolve;
17495
 
  friend class ::CExprResolve;
17496
 
 
17497
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17498
 
 
17499
 
  CTree *_value;  // CT_Token
 
20715
  friend class ::CMatchSyntax;
 
20716
 
 
20717
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17500
20718
 
17501
20719
public:
17502
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
20720
  /** Constructor.
 
20721
   *  \param token The token containing the wide character value. */
 
20722
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
20723
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17503
20724
  static const char *NodeId ();
 
20725
  /** Get the name of the node. Can be compared with NodeId(). */
17504
20726
  const char *NodeName () const { return NodeId (); }
17505
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
17506
 
   { if (old_son == _value) _value = new_son; }
17507
20727
   private:
17508
20728
  typedef CT_WideCharacter CCExprResolveExpr;
17509
20729
 
17510
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20730
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17511
20731
 public :
17512
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
20732
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17513
20733
  typedef CT_WideCharacter CExprResolveExpr;
17514
20734
 
17515
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20735
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17516
20736
 public :
17517
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17518
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20737
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20738
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17519
20739
};
17520
20740
 
 
20741
/** \class CT_Float CTree.h Puma/CTree.h
 
20742
 *  Tree node representing a floating point constant. */
17521
20743
 
17522
 
#line 17523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20744
#line 20745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17523
20745
} // closed Puma
 
20746
class CCExprResolve;
 
20747
class CExprResolve;
17524
20748
class WinIfExists;
17525
20749
class WinImportHandler;
17526
20750
class WinMacros;
17527
 
class CMatchSyntax;
17528
 
class ExtGnu;
 
20751
class WinAsm;
 
20752
class WinDeclSpecs;
 
20753
class WinMemberExplSpec;
 
20754
class WinTypeKeywords;
 
20755
class WinFriend;
17529
20756
class ExtAC;
17530
20757
class ExtACBuilderCoupling;
17531
20758
class ExtACSyntaxCoupling;
17532
20759
class ExtACTree;
17533
20760
class ExtACKeywords;
17534
 
class WinAsm;
17535
 
class WinDeclSpecs;
17536
 
class WinMemberExplSpec;
17537
 
class WinTypeKeywords;
 
20761
class ExtGnu;
17538
20762
class PragmaOnceUnitState;
17539
20763
class PragmaOnce;
17540
 
class CCExprResolve;
17541
 
class CExprResolve;
17542
 
namespace Puma {
17543
 
 
17544
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20764
class CMatchSyntax;
 
20765
namespace Puma {
 
20766
 
 
20767
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20768
 
 
20769
#line 20770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20770
} // closed Puma
 
20771
 
 
20772
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20773
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20774
#include "CCExprResolveH.ah"
 
20775
#endif
 
20776
namespace Puma {
 
20777
 
 
20778
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20779
 
 
20780
#line 20781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20781
} // closed Puma
 
20782
 
 
20783
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20784
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20785
#include "CExprResolveH.ah"
 
20786
#endif
 
20787
namespace Puma {
 
20788
 
 
20789
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17545
20790
class CT_Float : public CT_Expression {
17546
 
#line 17547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20791
#line 20792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20792
  friend class ::CCExprResolve;
 
20793
  friend class ::CExprResolve;
17547
20794
  friend class ::WinIfExists;
17548
20795
  friend class ::WinImportHandler;
17549
20796
  friend class ::WinMacros;
17550
 
  friend class ::CMatchSyntax;
17551
 
  friend class ::ExtGnu;
 
20797
  friend class ::WinAsm;
 
20798
  friend class ::WinDeclSpecs;
 
20799
  friend class ::WinMemberExplSpec;
 
20800
  friend class ::WinTypeKeywords;
 
20801
  friend class ::WinFriend;
17552
20802
  friend class ::ExtAC;
17553
20803
  friend class ::ExtACBuilderCoupling;
17554
20804
  friend class ::ExtACSyntaxCoupling;
17555
20805
  friend class ::ExtACTree;
17556
20806
  friend class ::ExtACKeywords;
17557
 
  friend class ::WinAsm;
17558
 
  friend class ::WinDeclSpecs;
17559
 
  friend class ::WinMemberExplSpec;
17560
 
  friend class ::WinTypeKeywords;
 
20807
  friend class ::ExtGnu;
17561
20808
  friend class ::PragmaOnceUnitState;
17562
20809
  friend class ::PragmaOnce;
17563
 
  friend class ::CCExprResolve;
17564
 
  friend class ::CExprResolve;
 
20810
  friend class ::CMatchSyntax;
17565
20811
 
17566
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20812
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17567
20813
 
17568
20814
  CTree *_value;  // CT_Token
17569
20815
 
17570
20816
public:
17571
 
  CT_Float (CTree *t) : _value (t) {}
 
20817
  /** Constructor.
 
20818
   *  \param token The token containing the floating point value. */
 
20819
  CT_Float (CTree *token) { AddSon (_value, token); }
 
20820
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17572
20821
  static const char *NodeId ();
 
20822
  /** Get the name of the node. Can be compared with NodeId(). */
17573
20823
  const char *NodeName () const { return NodeId (); }
 
20824
  /** Get the number of sons. */
17574
20825
  int Sons () const { return 1; }
 
20826
  /** Get the n-th son.
 
20827
   *  \param n The index of the son.
 
20828
   *  \return The n-th son or NULL. */
17575
20829
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
20830
  /** Replace a son.
 
20831
   *  \param old_son The son to replace.
 
20832
   *  \param new_son The new son. */
17576
20833
  void ReplaceSon (CTree *old_son, CTree *new_son) 
17577
 
   { if (old_son == _value) _value = new_son; }
 
20834
   { CTree::ReplaceSon (_value, old_son, new_son); }
17578
20835
   private:
17579
20836
  typedef CT_Float CCExprResolveExpr;
17580
20837
 
17581
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20838
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17582
20839
 public :
17583
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
20840
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17584
20841
  typedef CT_Float CExprResolveExpr;
17585
20842
 
17586
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20843
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17587
20844
 public :
17588
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17589
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20845
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20846
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17590
20847
};
17591
20848
 
 
20849
/** \class CT_Bool CTree.h Puma/CTree.h
 
20850
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
17592
20851
 
17593
 
#line 17594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20852
#line 20853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17594
20853
} // closed Puma
 
20854
class CCExprResolve;
 
20855
class CExprResolve;
17595
20856
class WinIfExists;
17596
20857
class WinImportHandler;
17597
20858
class WinMacros;
17598
 
class CMatchSyntax;
17599
 
class ExtGnu;
 
20859
class WinAsm;
 
20860
class WinDeclSpecs;
 
20861
class WinMemberExplSpec;
 
20862
class WinTypeKeywords;
 
20863
class WinFriend;
17600
20864
class ExtAC;
17601
20865
class ExtACBuilderCoupling;
17602
20866
class ExtACSyntaxCoupling;
17603
20867
class ExtACTree;
17604
20868
class ExtACKeywords;
17605
 
class WinAsm;
17606
 
class WinDeclSpecs;
17607
 
class WinMemberExplSpec;
17608
 
class WinTypeKeywords;
 
20869
class ExtGnu;
17609
20870
class PragmaOnceUnitState;
17610
20871
class PragmaOnce;
17611
 
class CCExprResolve;
17612
 
class CExprResolve;
17613
 
namespace Puma {
17614
 
 
17615
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20872
class CMatchSyntax;
 
20873
namespace Puma {
 
20874
 
 
20875
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20876
 
 
20877
#line 20878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20878
} // closed Puma
 
20879
 
 
20880
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20881
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20882
#include "CCExprResolveH.ah"
 
20883
#endif
 
20884
namespace Puma {
 
20885
 
 
20886
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20887
 
 
20888
#line 20889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20889
} // closed Puma
 
20890
 
 
20891
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20892
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20893
#include "CExprResolveH.ah"
 
20894
#endif
 
20895
namespace Puma {
 
20896
 
 
20897
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17616
20898
class CT_Bool : public CT_Expression {
17617
 
#line 17618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20899
#line 20900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20900
  friend class ::CCExprResolve;
 
20901
  friend class ::CExprResolve;
17618
20902
  friend class ::WinIfExists;
17619
20903
  friend class ::WinImportHandler;
17620
20904
  friend class ::WinMacros;
17621
 
  friend class ::CMatchSyntax;
17622
 
  friend class ::ExtGnu;
 
20905
  friend class ::WinAsm;
 
20906
  friend class ::WinDeclSpecs;
 
20907
  friend class ::WinMemberExplSpec;
 
20908
  friend class ::WinTypeKeywords;
 
20909
  friend class ::WinFriend;
17623
20910
  friend class ::ExtAC;
17624
20911
  friend class ::ExtACBuilderCoupling;
17625
20912
  friend class ::ExtACSyntaxCoupling;
17626
20913
  friend class ::ExtACTree;
17627
20914
  friend class ::ExtACKeywords;
17628
 
  friend class ::WinAsm;
17629
 
  friend class ::WinDeclSpecs;
17630
 
  friend class ::WinMemberExplSpec;
17631
 
  friend class ::WinTypeKeywords;
 
20915
  friend class ::ExtGnu;
17632
20916
  friend class ::PragmaOnceUnitState;
17633
20917
  friend class ::PragmaOnce;
17634
 
  friend class ::CCExprResolve;
17635
 
  friend class ::CExprResolve;
 
20918
  friend class ::CMatchSyntax;
17636
20919
 
17637
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20920
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17638
20921
 
17639
20922
  CTree *_value;  // CT_Token
17640
20923
 
17641
20924
public:
17642
 
  CT_Bool (CTree *t) : _value (t) {}
 
20925
  /** Constructor.
 
20926
   *  \param token The token containing the boolean value. */
 
20927
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
20928
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17643
20929
  static const char *NodeId ();
 
20930
  /** Get the name of the node. Can be compared with NodeId(). */
17644
20931
  const char *NodeName () const { return NodeId (); }
 
20932
  /** Get the number of sons. */
17645
20933
  int Sons () const { return 1; }
 
20934
  /** Get the n-th son.
 
20935
   *  \param n The index of the son.
 
20936
   *  \return The n-th son or NULL. */
17646
20937
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
20938
  /** Replace a son.
 
20939
   *  \param old_son The son to replace.
 
20940
   *  \param new_son The new son. */
17647
20941
  void ReplaceSon (CTree *old_son, CTree *new_son) 
17648
 
   { if (old_son == _value) _value = new_son; }
 
20942
   { CTree::ReplaceSon (_value, old_son, new_son); }
17649
20943
   private:
17650
20944
  typedef CT_Bool CCExprResolveExpr;
17651
20945
 
17652
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20946
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17653
20947
 public :
17654
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
20948
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17655
20949
  typedef CT_Bool CExprResolveExpr;
17656
20950
 
17657
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20951
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17658
20952
 public :
17659
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17660
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20953
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20954
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17661
20955
};
17662
20956
 
 
20957
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
20958
 *  Tree node representing a braced expression, e.g. (a+b). */
17663
20959
 
17664
 
#line 17665 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
20960
#line 20961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17665
20961
} // closed Puma
 
20962
class CCExprResolve;
 
20963
class CExprResolve;
17666
20964
class WinIfExists;
17667
20965
class WinImportHandler;
17668
20966
class WinMacros;
17669
 
class CMatchSyntax;
17670
 
class ExtGnu;
 
20967
class WinAsm;
 
20968
class WinDeclSpecs;
 
20969
class WinMemberExplSpec;
 
20970
class WinTypeKeywords;
 
20971
class WinFriend;
17671
20972
class ExtAC;
17672
20973
class ExtACBuilderCoupling;
17673
20974
class ExtACSyntaxCoupling;
17674
20975
class ExtACTree;
17675
20976
class ExtACKeywords;
17676
 
class WinAsm;
17677
 
class WinDeclSpecs;
17678
 
class WinMemberExplSpec;
17679
 
class WinTypeKeywords;
 
20977
class ExtGnu;
17680
20978
class PragmaOnceUnitState;
17681
20979
class PragmaOnce;
17682
 
class CCExprResolve;
17683
 
class CExprResolve;
17684
 
namespace Puma {
17685
 
 
17686
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20980
class CMatchSyntax;
 
20981
namespace Puma {
 
20982
 
 
20983
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20984
 
 
20985
#line 20986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20986
} // closed Puma
 
20987
 
 
20988
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20989
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20990
#include "CCExprResolveH.ah"
 
20991
#endif
 
20992
namespace Puma {
 
20993
 
 
20994
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20995
 
 
20996
#line 20997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
20997
} // closed Puma
 
20998
 
 
20999
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21000
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21001
#include "CExprResolveH.ah"
 
21002
#endif
 
21003
namespace Puma {
 
21004
 
 
21005
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17687
21006
class CT_BracedExpr : public CT_Expression {
17688
 
#line 17689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21007
#line 21008 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21008
  friend class ::CCExprResolve;
 
21009
  friend class ::CExprResolve;
17689
21010
  friend class ::WinIfExists;
17690
21011
  friend class ::WinImportHandler;
17691
21012
  friend class ::WinMacros;
17692
 
  friend class ::CMatchSyntax;
17693
 
  friend class ::ExtGnu;
 
21013
  friend class ::WinAsm;
 
21014
  friend class ::WinDeclSpecs;
 
21015
  friend class ::WinMemberExplSpec;
 
21016
  friend class ::WinTypeKeywords;
 
21017
  friend class ::WinFriend;
17694
21018
  friend class ::ExtAC;
17695
21019
  friend class ::ExtACBuilderCoupling;
17696
21020
  friend class ::ExtACSyntaxCoupling;
17697
21021
  friend class ::ExtACTree;
17698
21022
  friend class ::ExtACKeywords;
17699
 
  friend class ::WinAsm;
17700
 
  friend class ::WinDeclSpecs;
17701
 
  friend class ::WinMemberExplSpec;
17702
 
  friend class ::WinTypeKeywords;
 
21023
  friend class ::ExtGnu;
17703
21024
  friend class ::PragmaOnceUnitState;
17704
21025
  friend class ::PragmaOnce;
17705
 
  friend class ::CCExprResolve;
17706
 
  friend class ::CExprResolve;
 
21026
  friend class ::CMatchSyntax;
17707
21027
 
17708
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21028
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17709
21029
 
17710
21030
  CTree *sons[3]; // open, expr, close
17711
21031
 
17712
21032
public:
 
21033
  /** Constructor.
 
21034
   *  \param o The opening brace.
 
21035
   *  \param e The enclosed expression.
 
21036
   *  \param c The closing brace. */
17713
21037
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
17714
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
21038
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
17715
21039
  }
 
21040
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17716
21041
  static const char *NodeId ();
 
21042
  /** Get the name of the node. Can be compared with NodeId(). */
17717
21043
  const char *NodeName () const { return NodeId (); }
 
21044
  /** Get the number of sons. */
17718
21045
  int Sons () const { return 3; }
 
21046
  /** Get the n-th son.
 
21047
   *  \param n The index of the son.
 
21048
   *  \return The n-th son or NULL. */
17719
21049
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
21050
  /** Get the enclosed expression. */
17720
21051
  CTree *Expr () const { return sons[1]; }
 
21052
  /** Get the type of the enclosed expression. */
17721
21053
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
21054
  /** Get the value of the enclosed expression. */
17722
21055
  CExprValue *Value () const { return Expr ()->Value (); }
 
21056
  /** Get the semantic value object. */
17723
21057
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
21058
  /** Replace a son.
 
21059
   *  \param old_son The son to replace.
 
21060
   *  \param new_son The new son. */
17724
21061
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
17725
21062
    CTree::ReplaceSon (sons, 3, old_son, new_son);
17726
21063
  }
17727
21064
   private:
17728
21065
  typedef CT_BracedExpr CCExprResolveExpr;
17729
21066
 
17730
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21067
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17731
21068
 public :
17732
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21069
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17733
21070
  typedef CT_BracedExpr CExprResolveExpr;
17734
21071
 
17735
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21072
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17736
21073
 public :
17737
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17738
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21074
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21075
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17739
21076
};
17740
21077
 
 
21078
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
21079
 *  Base class for all tree nodes representing a name. */
17741
21080
 
17742
 
#line 17743 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21081
#line 21082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17743
21082
} // closed Puma
 
21083
class CCExprResolve;
 
21084
class CExprResolve;
17744
21085
class WinIfExists;
17745
21086
class WinImportHandler;
17746
21087
class WinMacros;
17747
 
class CMatchSyntax;
17748
 
class ExtGnu;
 
21088
class WinAsm;
 
21089
class WinDeclSpecs;
 
21090
class WinMemberExplSpec;
 
21091
class WinTypeKeywords;
 
21092
class WinFriend;
17749
21093
class ExtAC;
17750
21094
class ExtACBuilderCoupling;
17751
21095
class ExtACSyntaxCoupling;
17752
21096
class ExtACTree;
17753
21097
class ExtACKeywords;
17754
 
class WinAsm;
17755
 
class WinDeclSpecs;
17756
 
class WinMemberExplSpec;
17757
 
class WinTypeKeywords;
 
21098
class ExtGnu;
17758
21099
class PragmaOnceUnitState;
17759
21100
class PragmaOnce;
17760
 
class CCExprResolve;
17761
 
class CExprResolve;
17762
 
namespace Puma {
17763
 
 
17764
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21101
class CMatchSyntax;
 
21102
namespace Puma {
 
21103
 
 
21104
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21105
 
 
21106
#line 21107 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21107
} // closed Puma
 
21108
 
 
21109
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21110
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21111
#include "CCExprResolveH.ah"
 
21112
#endif
 
21113
namespace Puma {
 
21114
 
 
21115
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21116
 
 
21117
#line 21118 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21118
} // closed Puma
 
21119
 
 
21120
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21121
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21122
#include "CExprResolveH.ah"
 
21123
#endif
 
21124
namespace Puma {
 
21125
 
 
21126
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17765
21127
class CT_SimpleName : public CT_List, public Printable, 
17766
21128
                      public CSemValue, public CSemObject {
17767
 
#line 17768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21129
#line 21130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21130
  friend class ::CCExprResolve;
 
21131
  friend class ::CExprResolve;
17768
21132
  friend class ::WinIfExists;
17769
21133
  friend class ::WinImportHandler;
17770
21134
  friend class ::WinMacros;
17771
 
  friend class ::CMatchSyntax;
17772
 
  friend class ::ExtGnu;
 
21135
  friend class ::WinAsm;
 
21136
  friend class ::WinDeclSpecs;
 
21137
  friend class ::WinMemberExplSpec;
 
21138
  friend class ::WinTypeKeywords;
 
21139
  friend class ::WinFriend;
17773
21140
  friend class ::ExtAC;
17774
21141
  friend class ::ExtACBuilderCoupling;
17775
21142
  friend class ::ExtACSyntaxCoupling;
17776
21143
  friend class ::ExtACTree;
17777
21144
  friend class ::ExtACKeywords;
17778
 
  friend class ::WinAsm;
17779
 
  friend class ::WinDeclSpecs;
17780
 
  friend class ::WinMemberExplSpec;
17781
 
  friend class ::WinTypeKeywords;
 
21145
  friend class ::ExtGnu;
17782
21146
  friend class ::PragmaOnceUnitState;
17783
21147
  friend class ::PragmaOnce;
17784
 
  friend class ::CCExprResolve;
17785
 
  friend class ::CExprResolve;
 
21148
  friend class ::CMatchSyntax;
17786
21149
 
17787
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21150
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17788
21151
 
17789
21152
protected:
 
21153
  /** Constructor.
 
21154
   *  \param size The number of sub-names (for qualified names). */
17790
21155
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
21156
  /** Constructor.
 
21157
   *  \param size The number of sub-names (for qualified names). 
 
21158
   *  \param properties Additional name list properties (for root qualified names). */
17791
21159
  CT_SimpleName (int size, int properties) : 
17792
21160
    CT_List (size, 2, properties) {}
17793
21161
  
17794
21162
public:
 
21163
  /** Constructor.
 
21164
   *  \param n The sub-tree containing the name. */
17795
21165
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
21166
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17796
21167
  static const char *NodeId ();
 
21168
  /** Get the name of the node. Can be compared with NodeId(). */
17797
21169
  const char *NodeName () const { return NodeId (); }
 
21170
  /** Get the string containing the name. */
17798
21171
  virtual const char *Text () const 
17799
21172
   { return Son (Sons ()-1)->token ()->text (); }
 
21173
  /** Print the name on the given stream. 
 
21174
   *  \param os The output stream. */
17800
21175
  virtual void print (ostream &os) const { os << Text (); }
 
21176
  /** Get this. */
17801
21177
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
21178
  /** Get the type of the entity represented by the name. */
17802
21179
  CTypeInfo *Type () const { return type; }
 
21180
  /** Get the value of the entity represented by the name. */ 
17803
21181
  CExprValue *Value () const { return value; }
 
21182
  /** Get the sematic value information object. */
17804
21183
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
21184
  /** Get the sematic information object. */
17805
21185
  CSemObject *SemObject () const { return (CSemObject*)this; }
17806
 
  // special new / delete with reusing memory
17807
 
  void *operator new (size_t);
17808
 
  void  operator delete (void *);
17809
 
  // classification function
 
21186
  /** Get this. */
17810
21187
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
21188
 
 
21189
public:
 
21190
  /** Own new operator reusing memory. */
 
21191
  void *operator new (size_t);
 
21192
  /** Own delete operator. */
 
21193
  void operator delete (void *);
17811
21194
   private:
17812
21195
  typedef CT_SimpleName CCExprResolveExpr;
17813
21196
 
17814
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21197
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17815
21198
 public :
17816
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21199
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17817
21200
  typedef CT_SimpleName CExprResolveExpr;
17818
21201
 
17819
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21202
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17820
21203
 public :
17821
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17822
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21204
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21205
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17823
21206
};
17824
21207
 
 
21208
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
21209
 *  Base class for tree nodes representing a special name, like destructor names. */
17825
21210
 
17826
 
#line 17827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21211
#line 21212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17827
21212
} // closed Puma
 
21213
class CCExprResolve;
 
21214
class CExprResolve;
17828
21215
class WinIfExists;
17829
21216
class WinImportHandler;
17830
21217
class WinMacros;
17831
 
class CMatchSyntax;
17832
 
class ExtGnu;
 
21218
class WinAsm;
 
21219
class WinDeclSpecs;
 
21220
class WinMemberExplSpec;
 
21221
class WinTypeKeywords;
 
21222
class WinFriend;
17833
21223
class ExtAC;
17834
21224
class ExtACBuilderCoupling;
17835
21225
class ExtACSyntaxCoupling;
17836
21226
class ExtACTree;
17837
21227
class ExtACKeywords;
17838
 
class WinAsm;
17839
 
class WinDeclSpecs;
17840
 
class WinMemberExplSpec;
17841
 
class WinTypeKeywords;
 
21228
class ExtGnu;
17842
21229
class PragmaOnceUnitState;
17843
21230
class PragmaOnce;
17844
 
class CCExprResolve;
17845
 
class CExprResolve;
17846
 
namespace Puma {
17847
 
 
17848
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21231
class CMatchSyntax;
 
21232
namespace Puma {
 
21233
 
 
21234
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21235
 
 
21236
#line 21237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21237
} // closed Puma
 
21238
 
 
21239
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21240
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21241
#include "CCExprResolveH.ah"
 
21242
#endif
 
21243
namespace Puma {
 
21244
 
 
21245
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21246
 
 
21247
#line 21248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21248
} // closed Puma
 
21249
 
 
21250
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21251
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21252
#include "CExprResolveH.ah"
 
21253
#endif
 
21254
namespace Puma {
 
21255
 
 
21256
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17849
21257
class CT_SpecialName : public CT_SimpleName {
17850
 
#line 17851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21258
#line 21259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21259
  friend class ::CCExprResolve;
 
21260
  friend class ::CExprResolve;
17851
21261
  friend class ::WinIfExists;
17852
21262
  friend class ::WinImportHandler;
17853
21263
  friend class ::WinMacros;
17854
 
  friend class ::CMatchSyntax;
17855
 
  friend class ::ExtGnu;
 
21264
  friend class ::WinAsm;
 
21265
  friend class ::WinDeclSpecs;
 
21266
  friend class ::WinMemberExplSpec;
 
21267
  friend class ::WinTypeKeywords;
 
21268
  friend class ::WinFriend;
17856
21269
  friend class ::ExtAC;
17857
21270
  friend class ::ExtACBuilderCoupling;
17858
21271
  friend class ::ExtACSyntaxCoupling;
17859
21272
  friend class ::ExtACTree;
17860
21273
  friend class ::ExtACKeywords;
17861
 
  friend class ::WinAsm;
17862
 
  friend class ::WinDeclSpecs;
17863
 
  friend class ::WinMemberExplSpec;
17864
 
  friend class ::WinTypeKeywords;
 
21274
  friend class ::ExtGnu;
17865
21275
  friend class ::PragmaOnceUnitState;
17866
21276
  friend class ::PragmaOnce;
17867
 
  friend class ::CCExprResolve;
17868
 
  friend class ::CExprResolve;
 
21277
  friend class ::CMatchSyntax;
17869
21278
 
17870
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21279
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17871
21280
 
17872
21281
  char *_name;
17873
21282
  
17874
21283
protected:
 
21284
  /** Constructor.
 
21285
   *  \param size The number of sub-names (for qualified names). */
17875
21286
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
17876
21287
  
17877
21288
public:
 
21289
  /** Destructor. Deletes the name string. */
17878
21290
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
21291
  /** Get the string containing the name. */
17879
21292
  const char *Text () const { return _name; }
 
21293
  /** Set the name. The name is copied.
 
21294
   *  \param n The name. */
17880
21295
  void Name (const char *n) { 
17881
21296
    if (n) { 
17882
21297
      _name = new char[strlen(n) + 1];
17883
21298
      strcpy (_name,n);
17884
21299
    }
17885
21300
  }
17886
 
  // special new / delete with reusing memory
 
21301
 
 
21302
public:
 
21303
  /** Own new operator reusing memory. */
17887
21304
  void *operator new (size_t);
17888
 
  void  operator delete (void *);
 
21305
  /** Own delete operator. */
 
21306
  void operator delete (void *);
17889
21307
   private:
17890
21308
  typedef CT_SpecialName CCExprResolveExpr;
17891
21309
 
17892
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21310
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17893
21311
 public :
17894
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21312
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17895
21313
  typedef CT_SpecialName CExprResolveExpr;
17896
21314
 
17897
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21315
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17898
21316
 public :
17899
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17900
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21317
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21318
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17901
21319
};
17902
21320
 
 
21321
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
21322
 *  Tree node representing a private name. Private names 
 
21323
 *  are generated names for abstract declarators etc. */
17903
21324
 
17904
 
#line 17905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21325
#line 21326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17905
21326
} // closed Puma
 
21327
class CCExprResolve;
 
21328
class CExprResolve;
17906
21329
class WinIfExists;
17907
21330
class WinImportHandler;
17908
21331
class WinMacros;
17909
 
class CMatchSyntax;
17910
 
class ExtGnu;
 
21332
class WinAsm;
 
21333
class WinDeclSpecs;
 
21334
class WinMemberExplSpec;
 
21335
class WinTypeKeywords;
 
21336
class WinFriend;
17911
21337
class ExtAC;
17912
21338
class ExtACBuilderCoupling;
17913
21339
class ExtACSyntaxCoupling;
17914
21340
class ExtACTree;
17915
21341
class ExtACKeywords;
17916
 
class WinAsm;
17917
 
class WinDeclSpecs;
17918
 
class WinMemberExplSpec;
17919
 
class WinTypeKeywords;
 
21342
class ExtGnu;
17920
21343
class PragmaOnceUnitState;
17921
21344
class PragmaOnce;
17922
 
class CCExprResolve;
17923
 
class CExprResolve;
17924
 
namespace Puma {
17925
 
 
17926
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21345
class CMatchSyntax;
 
21346
namespace Puma {
 
21347
 
 
21348
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21349
 
 
21350
#line 21351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21351
} // closed Puma
 
21352
 
 
21353
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21354
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21355
#include "CCExprResolveH.ah"
 
21356
#endif
 
21357
namespace Puma {
 
21358
 
 
21359
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21360
 
 
21361
#line 21362 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21362
} // closed Puma
 
21363
 
 
21364
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21365
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21366
#include "CExprResolveH.ah"
 
21367
#endif
 
21368
namespace Puma {
 
21369
 
 
21370
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17927
21371
class CT_PrivateName : public CT_SpecialName {
17928
 
#line 17929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21372
#line 21373 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21373
  friend class ::CCExprResolve;
 
21374
  friend class ::CExprResolve;
17929
21375
  friend class ::WinIfExists;
17930
21376
  friend class ::WinImportHandler;
17931
21377
  friend class ::WinMacros;
17932
 
  friend class ::CMatchSyntax;
17933
 
  friend class ::ExtGnu;
 
21378
  friend class ::WinAsm;
 
21379
  friend class ::WinDeclSpecs;
 
21380
  friend class ::WinMemberExplSpec;
 
21381
  friend class ::WinTypeKeywords;
 
21382
  friend class ::WinFriend;
17934
21383
  friend class ::ExtAC;
17935
21384
  friend class ::ExtACBuilderCoupling;
17936
21385
  friend class ::ExtACSyntaxCoupling;
17937
21386
  friend class ::ExtACTree;
17938
21387
  friend class ::ExtACKeywords;
17939
 
  friend class ::WinAsm;
17940
 
  friend class ::WinDeclSpecs;
17941
 
  friend class ::WinMemberExplSpec;
17942
 
  friend class ::WinTypeKeywords;
 
21388
  friend class ::ExtGnu;
17943
21389
  friend class ::PragmaOnceUnitState;
17944
21390
  friend class ::PragmaOnce;
17945
 
  friend class ::CCExprResolve;
17946
 
  friend class ::CExprResolve;
 
21391
  friend class ::CMatchSyntax;
17947
21392
 
17948
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21393
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17949
21394
 
17950
21395
public:
 
21396
  /** Constructor.
 
21397
   *  \param n The private (generated) name. */
17951
21398
  CT_PrivateName (const char *n) { Name (n); }
 
21399
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17952
21400
  static const char *NodeId ();
 
21401
  /** Get the name of the node. Can be compared with NodeId(). */
17953
21402
  const char *NodeName () const { return NodeId (); }
 
21403
  /** Get the number of sons. */
17954
21404
  int Sons () const { return 0; }
 
21405
  /** Get the n-th son.
 
21406
   *  \param n The index of the son.
 
21407
   *  \return The n-th son or NULL. */
17955
21408
  CTree *Son (int n) const { return (CTree*)0; }
17956
 
  // special new / delete with reusing memory
 
21409
 
 
21410
public:
 
21411
  /** Own new operator reusing memory. */
17957
21412
  void *operator new (size_t);
17958
 
  void  operator delete (void *);
 
21413
  /** Own delete operator. */
 
21414
  void operator delete (void *);
17959
21415
   private:
17960
21416
  typedef CT_PrivateName CCExprResolveExpr;
17961
21417
 
17962
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21418
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17963
21419
 public :
17964
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21420
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17965
21421
  typedef CT_PrivateName CExprResolveExpr;
17966
21422
 
17967
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21423
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17968
21424
 public :
17969
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17970
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21425
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21426
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17971
21427
};
17972
21428
 
 
21429
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
21430
 *  Tree node representing a destructor name. */
17973
21431
 
17974
 
#line 17975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21432
#line 21433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
17975
21433
} // closed Puma
 
21434
class CCExprResolve;
 
21435
class CExprResolve;
17976
21436
class WinIfExists;
17977
21437
class WinImportHandler;
17978
21438
class WinMacros;
17979
 
class CMatchSyntax;
17980
 
class ExtGnu;
 
21439
class WinAsm;
 
21440
class WinDeclSpecs;
 
21441
class WinMemberExplSpec;
 
21442
class WinTypeKeywords;
 
21443
class WinFriend;
17981
21444
class ExtAC;
17982
21445
class ExtACBuilderCoupling;
17983
21446
class ExtACSyntaxCoupling;
17984
21447
class ExtACTree;
17985
21448
class ExtACKeywords;
17986
 
class WinAsm;
17987
 
class WinDeclSpecs;
17988
 
class WinMemberExplSpec;
17989
 
class WinTypeKeywords;
 
21449
class ExtGnu;
17990
21450
class PragmaOnceUnitState;
17991
21451
class PragmaOnce;
17992
 
class CCExprResolve;
17993
 
class CExprResolve;
17994
 
namespace Puma {
17995
 
 
17996
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21452
class CMatchSyntax;
 
21453
namespace Puma {
 
21454
 
 
21455
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21456
 
 
21457
#line 21458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21458
} // closed Puma
 
21459
 
 
21460
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21461
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21462
#include "CCExprResolveH.ah"
 
21463
#endif
 
21464
namespace Puma {
 
21465
 
 
21466
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21467
 
 
21468
#line 21469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21469
} // closed Puma
 
21470
 
 
21471
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21472
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21473
#include "CExprResolveH.ah"
 
21474
#endif
 
21475
namespace Puma {
 
21476
 
 
21477
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17997
21478
class CT_DestructorName : public CT_SpecialName {
17998
 
#line 17999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21479
#line 21480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21480
  friend class ::CCExprResolve;
 
21481
  friend class ::CExprResolve;
17999
21482
  friend class ::WinIfExists;
18000
21483
  friend class ::WinImportHandler;
18001
21484
  friend class ::WinMacros;
18002
 
  friend class ::CMatchSyntax;
18003
 
  friend class ::ExtGnu;
 
21485
  friend class ::WinAsm;
 
21486
  friend class ::WinDeclSpecs;
 
21487
  friend class ::WinMemberExplSpec;
 
21488
  friend class ::WinTypeKeywords;
 
21489
  friend class ::WinFriend;
18004
21490
  friend class ::ExtAC;
18005
21491
  friend class ::ExtACBuilderCoupling;
18006
21492
  friend class ::ExtACSyntaxCoupling;
18007
21493
  friend class ::ExtACTree;
18008
21494
  friend class ::ExtACKeywords;
18009
 
  friend class ::WinAsm;
18010
 
  friend class ::WinDeclSpecs;
18011
 
  friend class ::WinMemberExplSpec;
18012
 
  friend class ::WinTypeKeywords;
 
21495
  friend class ::ExtGnu;
18013
21496
  friend class ::PragmaOnceUnitState;
18014
21497
  friend class ::PragmaOnce;
18015
 
  friend class ::CCExprResolve;
18016
 
  friend class ::CExprResolve;
 
21498
  friend class ::CMatchSyntax;
18017
21499
 
18018
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21500
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18019
21501
 
18020
21502
public:
18021
 
  CT_DestructorName (CTree *, CTree *);
 
21503
  /** Constructor.
 
21504
   *  \param t The tilde operator.
 
21505
   *  \param n The class name. */
 
21506
  CT_DestructorName (CTree *t, CTree *n);
 
21507
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18022
21508
  static const char *NodeId ();
 
21509
  /** Get the name of the node. Can be compared with NodeId(). */
18023
21510
  const char *NodeName () const { return NodeId (); }
18024
 
  // special new / delete with reusing memory
 
21511
 
 
21512
public:
 
21513
  /** Own new operator reusing memory. */
18025
21514
  void *operator new (size_t);
18026
 
  void  operator delete (void *);
 
21515
  /** Own delete operator. */
 
21516
  void operator delete (void *);
18027
21517
   private:
18028
21518
  typedef CT_DestructorName CCExprResolveExpr;
18029
21519
 
18030
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21520
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18031
21521
 public :
18032
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21522
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18033
21523
  typedef CT_DestructorName CExprResolveExpr;
18034
21524
 
18035
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21525
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18036
21526
 public :
18037
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18038
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21527
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21528
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18039
21529
};
18040
21530
 
 
21531
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
21532
 *  Tree node representing a template name. */
18041
21533
 
18042
 
#line 18043 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21534
#line 21535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18043
21535
} // closed Puma
 
21536
class CCExprResolve;
 
21537
class CExprResolve;
18044
21538
class WinIfExists;
18045
21539
class WinImportHandler;
18046
21540
class WinMacros;
18047
 
class CMatchSyntax;
18048
 
class ExtGnu;
 
21541
class WinAsm;
 
21542
class WinDeclSpecs;
 
21543
class WinMemberExplSpec;
 
21544
class WinTypeKeywords;
 
21545
class WinFriend;
18049
21546
class ExtAC;
18050
21547
class ExtACBuilderCoupling;
18051
21548
class ExtACSyntaxCoupling;
18052
21549
class ExtACTree;
18053
21550
class ExtACKeywords;
18054
 
class WinAsm;
18055
 
class WinDeclSpecs;
18056
 
class WinMemberExplSpec;
18057
 
class WinTypeKeywords;
 
21551
class ExtGnu;
18058
21552
class PragmaOnceUnitState;
18059
21553
class PragmaOnce;
18060
 
class CCExprResolve;
18061
 
class CExprResolve;
18062
 
namespace Puma {
18063
 
 
18064
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21554
class CMatchSyntax;
 
21555
namespace Puma {
 
21556
 
 
21557
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21558
 
 
21559
#line 21560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21560
} // closed Puma
 
21561
 
 
21562
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21563
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21564
#include "CCExprResolveH.ah"
 
21565
#endif
 
21566
namespace Puma {
 
21567
 
 
21568
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21569
 
 
21570
#line 21571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21571
} // closed Puma
 
21572
 
 
21573
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21574
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21575
#include "CExprResolveH.ah"
 
21576
#endif
 
21577
namespace Puma {
 
21578
 
 
21579
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18065
21580
class CT_TemplateName : public CT_SpecialName {
18066
 
#line 18067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21581
#line 21582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21582
  friend class ::CCExprResolve;
 
21583
  friend class ::CExprResolve;
18067
21584
  friend class ::WinIfExists;
18068
21585
  friend class ::WinImportHandler;
18069
21586
  friend class ::WinMacros;
18070
 
  friend class ::CMatchSyntax;
18071
 
  friend class ::ExtGnu;
 
21587
  friend class ::WinAsm;
 
21588
  friend class ::WinDeclSpecs;
 
21589
  friend class ::WinMemberExplSpec;
 
21590
  friend class ::WinTypeKeywords;
 
21591
  friend class ::WinFriend;
18072
21592
  friend class ::ExtAC;
18073
21593
  friend class ::ExtACBuilderCoupling;
18074
21594
  friend class ::ExtACSyntaxCoupling;
18075
21595
  friend class ::ExtACTree;
18076
21596
  friend class ::ExtACKeywords;
18077
 
  friend class ::WinAsm;
18078
 
  friend class ::WinDeclSpecs;
18079
 
  friend class ::WinMemberExplSpec;
18080
 
  friend class ::WinTypeKeywords;
 
21597
  friend class ::ExtGnu;
18081
21598
  friend class ::PragmaOnceUnitState;
18082
21599
  friend class ::PragmaOnce;
18083
 
  friend class ::CCExprResolve;
18084
 
  friend class ::CExprResolve;
 
21600
  friend class ::CMatchSyntax;
18085
21601
 
18086
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21602
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18087
21603
 
18088
21604
public:
 
21605
  /** Constructor.
 
21606
   *  \param n The template class or function name.
 
21607
   *  \param a The template argument list. */
18089
21608
  CT_TemplateName (CTree *n, CTree *a) 
18090
21609
   { AddSon (n); AddSon (a); }
 
21610
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18091
21611
  static const char *NodeId ();
 
21612
  /** Get the name of the node. Can be compared with NodeId(). */
18092
21613
  const char *NodeName () const { return NodeId (); }
 
21614
  /** Get the template argument list. */
18093
21615
  CT_TemplateArgList *Arguments () const 
18094
21616
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
21617
  /** Get the template class or function name. */
18095
21618
  CT_SimpleName *TemplateName () const 
18096
21619
   { return (CT_SimpleName*)Son (Sons ()-2); }
18097
21620
  // may change in the future
18098
21621
  const char *Text () const { return TemplateName ()->Text (); }
18099
 
  // special new / delete with reusing memory
 
21622
 
 
21623
public:
 
21624
  /** Own new operator reusing memory. */
18100
21625
  void *operator new (size_t);
18101
 
  void  operator delete (void *);
 
21626
  /** Own delete operator. */
 
21627
  void operator delete (void *);
18102
21628
   private:
18103
21629
  typedef CT_TemplateName CCExprResolveExpr;
18104
21630
 
18105
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21631
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18106
21632
 public :
18107
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21633
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18108
21634
  typedef CT_TemplateName CExprResolveExpr;
18109
21635
 
18110
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21636
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18111
21637
 public :
18112
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18113
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21638
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21639
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18114
21640
};
18115
21641
 
 
21642
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
21643
 *  Tree node representing the name of an overloaded operator. */
18116
21644
 
18117
 
#line 18118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21645
#line 21646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18118
21646
} // closed Puma
 
21647
class CCExprResolve;
 
21648
class CExprResolve;
18119
21649
class WinIfExists;
18120
21650
class WinImportHandler;
18121
21651
class WinMacros;
18122
 
class CMatchSyntax;
18123
 
class ExtGnu;
 
21652
class WinAsm;
 
21653
class WinDeclSpecs;
 
21654
class WinMemberExplSpec;
 
21655
class WinTypeKeywords;
 
21656
class WinFriend;
18124
21657
class ExtAC;
18125
21658
class ExtACBuilderCoupling;
18126
21659
class ExtACSyntaxCoupling;
18127
21660
class ExtACTree;
18128
21661
class ExtACKeywords;
18129
 
class WinAsm;
18130
 
class WinDeclSpecs;
18131
 
class WinMemberExplSpec;
18132
 
class WinTypeKeywords;
 
21662
class ExtGnu;
18133
21663
class PragmaOnceUnitState;
18134
21664
class PragmaOnce;
18135
 
class CCExprResolve;
18136
 
class CExprResolve;
18137
 
namespace Puma {
18138
 
 
18139
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21665
class CMatchSyntax;
 
21666
namespace Puma {
 
21667
 
 
21668
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21669
 
 
21670
#line 21671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21671
} // closed Puma
 
21672
 
 
21673
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21674
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21675
#include "CCExprResolveH.ah"
 
21676
#endif
 
21677
namespace Puma {
 
21678
 
 
21679
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21680
 
 
21681
#line 21682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21682
} // closed Puma
 
21683
 
 
21684
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21685
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21686
#include "CExprResolveH.ah"
 
21687
#endif
 
21688
namespace Puma {
 
21689
 
 
21690
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18140
21691
class CT_OperatorName : public CT_SpecialName {
18141
 
#line 18142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21692
#line 21693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21693
  friend class ::CCExprResolve;
 
21694
  friend class ::CExprResolve;
18142
21695
  friend class ::WinIfExists;
18143
21696
  friend class ::WinImportHandler;
18144
21697
  friend class ::WinMacros;
18145
 
  friend class ::CMatchSyntax;
18146
 
  friend class ::ExtGnu;
 
21698
  friend class ::WinAsm;
 
21699
  friend class ::WinDeclSpecs;
 
21700
  friend class ::WinMemberExplSpec;
 
21701
  friend class ::WinTypeKeywords;
 
21702
  friend class ::WinFriend;
18147
21703
  friend class ::ExtAC;
18148
21704
  friend class ::ExtACBuilderCoupling;
18149
21705
  friend class ::ExtACSyntaxCoupling;
18150
21706
  friend class ::ExtACTree;
18151
21707
  friend class ::ExtACKeywords;
18152
 
  friend class ::WinAsm;
18153
 
  friend class ::WinDeclSpecs;
18154
 
  friend class ::WinMemberExplSpec;
18155
 
  friend class ::WinTypeKeywords;
 
21708
  friend class ::ExtGnu;
18156
21709
  friend class ::PragmaOnceUnitState;
18157
21710
  friend class ::PragmaOnce;
18158
 
  friend class ::CCExprResolve;
18159
 
  friend class ::CExprResolve;
 
21711
  friend class ::CMatchSyntax;
18160
21712
 
18161
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21713
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18162
21714
 
18163
21715
  int _oper;
18164
21716
 
18165
21717
public:
18166
 
  enum { // complex operators
18167
 
    FCT_CALL = -100,
18168
 
    SUBSCRIPT,
18169
 
    NEW_ARRAY,
18170
 
    DEL_ARRAY
 
21718
  /** Complex operator types. */
 
21719
  enum { 
 
21720
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
21721
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
21722
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
21723
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
18171
21724
  };
18172
21725
 
18173
21726
public:
18174
 
  CT_OperatorName (CTree *);
18175
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
21727
  /** Constructor.
 
21728
   *  \param op The token containing the operator. */
 
21729
  CT_OperatorName (CTree *op);
 
21730
  /** Constructor.
 
21731
   *  \param f The operator function keyword 'operator'.
 
21732
   *  \param op The token containing the operator. 
 
21733
   *  \param o The token of '[' or '('.
 
21734
   *  \param c The token of ']' or ')'. */
 
21735
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
21736
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18176
21737
  static const char *NodeId ();
 
21738
  /** Get the name of the node. Can be compared with NodeId(). */
18177
21739
  const char *NodeName () const { return NodeId (); }
 
21740
  /** Get the operator type (either the token type or one of 
 
21741
   *  the complex operator types). */
18178
21742
  int Operator () const { return _oper; }
18179
 
  // special new / delete with reusing memory
 
21743
 
 
21744
public:
 
21745
  /** Own new operator reusing memory. */
18180
21746
  void *operator new (size_t);
18181
 
  void  operator delete (void *);
 
21747
  /** Own delete operator. */
 
21748
  void operator delete (void *);
18182
21749
   private:
18183
21750
  typedef CT_OperatorName CCExprResolveExpr;
18184
21751
 
18185
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21752
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18186
21753
 public :
18187
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21754
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18188
21755
  typedef CT_OperatorName CExprResolveExpr;
18189
21756
 
18190
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21757
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18191
21758
 public :
18192
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18193
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21759
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21760
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18194
21761
};
18195
21762
 
 
21763
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
21764
 *  Tree node representing the name of a conversion function. */
18196
21765
 
18197
 
#line 18198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21766
#line 21767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18198
21767
} // closed Puma
 
21768
class CCExprResolve;
 
21769
class CExprResolve;
18199
21770
class WinIfExists;
18200
21771
class WinImportHandler;
18201
21772
class WinMacros;
18202
 
class CMatchSyntax;
18203
 
class ExtGnu;
 
21773
class WinAsm;
 
21774
class WinDeclSpecs;
 
21775
class WinMemberExplSpec;
 
21776
class WinTypeKeywords;
 
21777
class WinFriend;
18204
21778
class ExtAC;
18205
21779
class ExtACBuilderCoupling;
18206
21780
class ExtACSyntaxCoupling;
18207
21781
class ExtACTree;
18208
21782
class ExtACKeywords;
18209
 
class WinAsm;
18210
 
class WinDeclSpecs;
18211
 
class WinMemberExplSpec;
18212
 
class WinTypeKeywords;
 
21783
class ExtGnu;
18213
21784
class PragmaOnceUnitState;
18214
21785
class PragmaOnce;
18215
 
class CCExprResolve;
18216
 
class CExprResolve;
18217
 
namespace Puma {
18218
 
 
18219
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21786
class CMatchSyntax;
 
21787
namespace Puma {
 
21788
 
 
21789
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21790
 
 
21791
#line 21792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21792
} // closed Puma
 
21793
 
 
21794
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21795
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21796
#include "CCExprResolveH.ah"
 
21797
#endif
 
21798
namespace Puma {
 
21799
 
 
21800
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21801
 
 
21802
#line 21803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21803
} // closed Puma
 
21804
 
 
21805
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21806
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21807
#include "CExprResolveH.ah"
 
21808
#endif
 
21809
namespace Puma {
 
21810
 
 
21811
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18220
21812
class CT_ConversionName : public CT_SpecialName {
18221
 
#line 18222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21813
#line 21814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21814
  friend class ::CCExprResolve;
 
21815
  friend class ::CExprResolve;
18222
21816
  friend class ::WinIfExists;
18223
21817
  friend class ::WinImportHandler;
18224
21818
  friend class ::WinMacros;
18225
 
  friend class ::CMatchSyntax;
18226
 
  friend class ::ExtGnu;
 
21819
  friend class ::WinAsm;
 
21820
  friend class ::WinDeclSpecs;
 
21821
  friend class ::WinMemberExplSpec;
 
21822
  friend class ::WinTypeKeywords;
 
21823
  friend class ::WinFriend;
18227
21824
  friend class ::ExtAC;
18228
21825
  friend class ::ExtACBuilderCoupling;
18229
21826
  friend class ::ExtACSyntaxCoupling;
18230
21827
  friend class ::ExtACTree;
18231
21828
  friend class ::ExtACKeywords;
18232
 
  friend class ::WinAsm;
18233
 
  friend class ::WinDeclSpecs;
18234
 
  friend class ::WinMemberExplSpec;
18235
 
  friend class ::WinTypeKeywords;
 
21829
  friend class ::ExtGnu;
18236
21830
  friend class ::PragmaOnceUnitState;
18237
21831
  friend class ::PragmaOnce;
18238
 
  friend class ::CCExprResolve;
18239
 
  friend class ::CExprResolve;
 
21832
  friend class ::CMatchSyntax;
18240
21833
 
18241
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21834
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18242
21835
 
18243
21836
public:
18244
 
  CT_ConversionName (CTree *, CTree *);
 
21837
  /** Constructor.
 
21838
   *  \param f The operator function keyword 'operator'.
 
21839
   *  \param t The sub-tree containing the conversion type. */
 
21840
  CT_ConversionName (CTree *f, CTree *t);
 
21841
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18245
21842
  static const char *NodeId ();
 
21843
  /** Get the name of the node. Can be compared with NodeId(). */
18246
21844
  const char *NodeName () const { return NodeId (); }
 
21845
  /** Get the conversion type. */
18247
21846
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
18248
 
  // special new / delete with reusing memory
 
21847
 
 
21848
public:
 
21849
  /** Own new operator reusing memory. */
18249
21850
  void *operator new (size_t);
18250
 
  void  operator delete (void *);
 
21851
  /** Own delete operator. */
 
21852
  void operator delete (void *);
18251
21853
   private:
18252
21854
  typedef CT_ConversionName CCExprResolveExpr;
18253
21855
 
18254
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21856
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18255
21857
 public :
18256
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21858
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18257
21859
  typedef CT_ConversionName CExprResolveExpr;
18258
21860
 
18259
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21861
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18260
21862
 public :
18261
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18262
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21863
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21864
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18263
21865
};
18264
21866
 
 
21867
/** \class CT_QualName CTree.h Puma/CTree.h
 
21868
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
18265
21869
 
18266
 
#line 18267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21870
#line 21871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18267
21871
} // closed Puma
 
21872
class CCExprResolve;
 
21873
class CExprResolve;
18268
21874
class WinIfExists;
18269
21875
class WinImportHandler;
18270
21876
class WinMacros;
18271
 
class CMatchSyntax;
18272
 
class ExtGnu;
 
21877
class WinAsm;
 
21878
class WinDeclSpecs;
 
21879
class WinMemberExplSpec;
 
21880
class WinTypeKeywords;
 
21881
class WinFriend;
18273
21882
class ExtAC;
18274
21883
class ExtACBuilderCoupling;
18275
21884
class ExtACSyntaxCoupling;
18276
21885
class ExtACTree;
18277
21886
class ExtACKeywords;
18278
 
class WinAsm;
18279
 
class WinDeclSpecs;
18280
 
class WinMemberExplSpec;
18281
 
class WinTypeKeywords;
 
21887
class ExtGnu;
18282
21888
class PragmaOnceUnitState;
18283
21889
class PragmaOnce;
18284
 
class CCExprResolve;
18285
 
class CExprResolve;
18286
 
namespace Puma {
18287
 
 
18288
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21890
class CMatchSyntax;
 
21891
namespace Puma {
 
21892
 
 
21893
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21894
 
 
21895
#line 21896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21896
} // closed Puma
 
21897
 
 
21898
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21899
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21900
#include "CCExprResolveH.ah"
 
21901
#endif
 
21902
namespace Puma {
 
21903
 
 
21904
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21905
 
 
21906
#line 21907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21907
} // closed Puma
 
21908
 
 
21909
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21910
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21911
#include "CExprResolveH.ah"
 
21912
#endif
 
21913
namespace Puma {
 
21914
 
 
21915
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18289
21916
class CT_QualName : public CT_SimpleName {
18290
 
#line 18291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21917
#line 21918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
21918
  friend class ::CCExprResolve;
 
21919
  friend class ::CExprResolve;
18291
21920
  friend class ::WinIfExists;
18292
21921
  friend class ::WinImportHandler;
18293
21922
  friend class ::WinMacros;
18294
 
  friend class ::CMatchSyntax;
18295
 
  friend class ::ExtGnu;
 
21923
  friend class ::WinAsm;
 
21924
  friend class ::WinDeclSpecs;
 
21925
  friend class ::WinMemberExplSpec;
 
21926
  friend class ::WinTypeKeywords;
 
21927
  friend class ::WinFriend;
18296
21928
  friend class ::ExtAC;
18297
21929
  friend class ::ExtACBuilderCoupling;
18298
21930
  friend class ::ExtACSyntaxCoupling;
18299
21931
  friend class ::ExtACTree;
18300
21932
  friend class ::ExtACKeywords;
18301
 
  friend class ::WinAsm;
18302
 
  friend class ::WinDeclSpecs;
18303
 
  friend class ::WinMemberExplSpec;
18304
 
  friend class ::WinTypeKeywords;
 
21933
  friend class ::ExtGnu;
18305
21934
  friend class ::PragmaOnceUnitState;
18306
21935
  friend class ::PragmaOnce;
18307
 
  friend class ::CCExprResolve;
18308
 
  friend class ::CExprResolve;
 
21936
  friend class ::CMatchSyntax;
18309
21937
 
18310
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21938
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18311
21939
 
18312
21940
public:
 
21941
  /** Constructor.
 
21942
   *  \param size The initial number sub-names plus separators. */
18313
21943
  CT_QualName (int size = 3) : 
18314
21944
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
21945
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18315
21946
  static const char *NodeId ();
 
21947
  /** Get the name of the node. Can be compared with NodeId(). */
18316
21948
  const char *NodeName () const { return NodeId (); }
18317
 
  void print (ostream &) const;
 
21949
  /** Print the qualified name on the given stream. 
 
21950
   *  \param os The output stream. */
 
21951
  void print (ostream &os) const;
 
21952
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
18318
21953
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
21954
  /** Get the string containing the last name of the qualified name. */
18319
21955
  const char *Text () const { return Name ()->Text (); }
 
21956
  /** Get the type of the last name. */
18320
21957
  CTypeInfo *Type () const { return Name ()->Type (); }
 
21958
  /** Get the value of the last name. */
18321
21959
  CExprValue *Value () const { return Name ()->Value (); }
 
21960
  /** Get the semantic value object of the last name. */
18322
21961
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
21962
  /** Get the semantic information object of the last name. */
18323
21963
  CSemObject *SemObject () const { return Name ()->SemObject (); }
18324
 
  // special new / delete with reusing memory
 
21964
 
 
21965
public:
 
21966
  /** Own new operator reusing memory. */
18325
21967
  void *operator new (size_t);
18326
 
  void  operator delete (void *);
 
21968
  /** Own delete operator. */
 
21969
  void operator delete (void *);
18327
21970
   private:
18328
21971
  typedef CT_QualName CCExprResolveExpr;
18329
21972
 
18330
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21973
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18331
21974
 public :
18332
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21975
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18333
21976
  typedef CT_QualName CExprResolveExpr;
18334
21977
 
18335
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21978
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18336
21979
 public :
18337
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18338
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21980
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21981
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18339
21982
};
18340
21983
 
 
21984
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
21985
 *  Tree node representing a qualified name with introducing name separator,
 
21986
 *  e.g. ::X::Y::Z. */
18341
21987
 
18342
 
#line 18343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
21988
#line 21989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18343
21989
} // closed Puma
 
21990
class CCExprResolve;
 
21991
class CExprResolve;
18344
21992
class WinIfExists;
18345
21993
class WinImportHandler;
18346
21994
class WinMacros;
18347
 
class CMatchSyntax;
18348
 
class ExtGnu;
 
21995
class WinAsm;
 
21996
class WinDeclSpecs;
 
21997
class WinMemberExplSpec;
 
21998
class WinTypeKeywords;
 
21999
class WinFriend;
18349
22000
class ExtAC;
18350
22001
class ExtACBuilderCoupling;
18351
22002
class ExtACSyntaxCoupling;
18352
22003
class ExtACTree;
18353
22004
class ExtACKeywords;
18354
 
class WinAsm;
18355
 
class WinDeclSpecs;
18356
 
class WinMemberExplSpec;
18357
 
class WinTypeKeywords;
 
22005
class ExtGnu;
18358
22006
class PragmaOnceUnitState;
18359
22007
class PragmaOnce;
18360
 
class CCExprResolve;
18361
 
class CExprResolve;
18362
 
namespace Puma {
18363
 
 
18364
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22008
class CMatchSyntax;
 
22009
namespace Puma {
 
22010
 
 
22011
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22012
 
 
22013
#line 22014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22014
} // closed Puma
 
22015
 
 
22016
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22017
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22018
#include "CCExprResolveH.ah"
 
22019
#endif
 
22020
namespace Puma {
 
22021
 
 
22022
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22023
 
 
22024
#line 22025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22025
} // closed Puma
 
22026
 
 
22027
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22028
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22029
#include "CExprResolveH.ah"
 
22030
#endif
 
22031
namespace Puma {
 
22032
 
 
22033
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18365
22034
class CT_RootQualName : public CT_QualName {
18366
 
#line 18367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22035
#line 22036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22036
  friend class ::CCExprResolve;
 
22037
  friend class ::CExprResolve;
18367
22038
  friend class ::WinIfExists;
18368
22039
  friend class ::WinImportHandler;
18369
22040
  friend class ::WinMacros;
18370
 
  friend class ::CMatchSyntax;
18371
 
  friend class ::ExtGnu;
 
22041
  friend class ::WinAsm;
 
22042
  friend class ::WinDeclSpecs;
 
22043
  friend class ::WinMemberExplSpec;
 
22044
  friend class ::WinTypeKeywords;
 
22045
  friend class ::WinFriend;
18372
22046
  friend class ::ExtAC;
18373
22047
  friend class ::ExtACBuilderCoupling;
18374
22048
  friend class ::ExtACSyntaxCoupling;
18375
22049
  friend class ::ExtACTree;
18376
22050
  friend class ::ExtACKeywords;
18377
 
  friend class ::WinAsm;
18378
 
  friend class ::WinDeclSpecs;
18379
 
  friend class ::WinMemberExplSpec;
18380
 
  friend class ::WinTypeKeywords;
 
22051
  friend class ::ExtGnu;
18381
22052
  friend class ::PragmaOnceUnitState;
18382
22053
  friend class ::PragmaOnce;
18383
 
  friend class ::CCExprResolve;
18384
 
  friend class ::CExprResolve;
 
22054
  friend class ::CMatchSyntax;
18385
22055
 
18386
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22056
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18387
22057
 
18388
22058
public:
 
22059
  /** Constructor.
 
22060
   *  \param size Initial number of sub-name plus separator. */
18389
22061
  CT_RootQualName (int size = 2) : 
18390
22062
    CT_QualName (size) { AddProperties (INTRO); }
 
22063
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18391
22064
  static const char *NodeId ();
 
22065
  /** Get the name of the node. Can be compared with NodeId(). */
18392
22066
  const char *NodeName () const { return NodeId (); }
18393
 
  // special new / delete with reusing memory
 
22067
 
 
22068
public:
 
22069
  /** Own new operator reusing memory. */
18394
22070
  void *operator new (size_t);
18395
 
  void  operator delete (void *);
 
22071
  /** Own delete operator. */
 
22072
  void operator delete (void *);
18396
22073
   private:
18397
22074
  typedef CT_RootQualName CCExprResolveExpr;
18398
22075
 
18399
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22076
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18400
22077
 public :
18401
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22078
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18402
22079
  typedef CT_RootQualName CExprResolveExpr;
18403
22080
 
18404
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22081
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18405
22082
 public :
18406
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18407
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22083
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22084
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18408
22085
};
18409
22086
 
 
22087
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
22088
 *  Tree node representing a binary expression, e.g. a+b. */
18410
22089
 
18411
 
#line 18412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22090
#line 22091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18412
22091
} // closed Puma
 
22092
class CCExprResolve;
 
22093
class CExprResolve;
18413
22094
class WinIfExists;
18414
22095
class WinImportHandler;
18415
22096
class WinMacros;
18416
 
class CMatchSyntax;
18417
 
class ExtGnu;
 
22097
class WinAsm;
 
22098
class WinDeclSpecs;
 
22099
class WinMemberExplSpec;
 
22100
class WinTypeKeywords;
 
22101
class WinFriend;
18418
22102
class ExtAC;
18419
22103
class ExtACBuilderCoupling;
18420
22104
class ExtACSyntaxCoupling;
18421
22105
class ExtACTree;
18422
22106
class ExtACKeywords;
18423
 
class WinAsm;
18424
 
class WinDeclSpecs;
18425
 
class WinMemberExplSpec;
18426
 
class WinTypeKeywords;
 
22107
class ExtGnu;
18427
22108
class PragmaOnceUnitState;
18428
22109
class PragmaOnce;
18429
 
class CCExprResolve;
18430
 
class CExprResolve;
18431
 
namespace Puma {
18432
 
 
18433
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18434
 
class CT_BinaryExpr : public CT_Expression {
18435
 
#line 18436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22110
class CMatchSyntax;
 
22111
namespace Puma {
 
22112
 
 
22113
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22114
 
 
22115
#line 22116 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22116
} // closed Puma
 
22117
 
 
22118
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22119
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22120
#include "CCExprResolveH.ah"
 
22121
#endif
 
22122
namespace Puma {
 
22123
 
 
22124
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22125
 
 
22126
#line 22127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22127
} // closed Puma
 
22128
 
 
22129
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22130
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22131
#include "CExprResolveH.ah"
 
22132
#endif
 
22133
namespace Puma {
 
22134
 
 
22135
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22136
class CT_BinaryExpr : public CT_Call {
 
22137
#line 22138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22138
  friend class ::CCExprResolve;
 
22139
  friend class ::CExprResolve;
18436
22140
  friend class ::WinIfExists;
18437
22141
  friend class ::WinImportHandler;
18438
22142
  friend class ::WinMacros;
18439
 
  friend class ::CMatchSyntax;
18440
 
  friend class ::ExtGnu;
 
22143
  friend class ::WinAsm;
 
22144
  friend class ::WinDeclSpecs;
 
22145
  friend class ::WinMemberExplSpec;
 
22146
  friend class ::WinTypeKeywords;
 
22147
  friend class ::WinFriend;
18441
22148
  friend class ::ExtAC;
18442
22149
  friend class ::ExtACBuilderCoupling;
18443
22150
  friend class ::ExtACSyntaxCoupling;
18444
22151
  friend class ::ExtACTree;
18445
22152
  friend class ::ExtACKeywords;
18446
 
  friend class ::WinAsm;
18447
 
  friend class ::WinDeclSpecs;
18448
 
  friend class ::WinMemberExplSpec;
18449
 
  friend class ::WinTypeKeywords;
 
22153
  friend class ::ExtGnu;
18450
22154
  friend class ::PragmaOnceUnitState;
18451
22155
  friend class ::PragmaOnce;
18452
 
  friend class ::CCExprResolve;
18453
 
  friend class ::CExprResolve;
 
22156
  friend class ::CMatchSyntax;
18454
22157
 
18455
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22158
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18456
22159
 
18457
22160
  CTree *sons[3]; // expr, oper, expr
18458
22161
 
18459
22162
public:
 
22163
  /** Constructor. 
 
22164
   *  \param l Left hand side of the expression. 
 
22165
   *  \param o The operator token. 
 
22166
   *  \param r Right hand side of the expression. */
18460
22167
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
18461
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
22168
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
18462
22169
  }
 
22170
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18463
22171
  static const char *NodeId ();
 
22172
  /** Get the name of the node. Can be compared with NodeId(). */
18464
22173
  const char *NodeName () const { return NodeId (); }
 
22174
  /** Get the number of sons. */
18465
22175
  int Sons () const { return 3; }
 
22176
  /** Get the n-th son.
 
22177
   *  \param n The index of the son.
 
22178
   *  \return The n-th son or NULL. */
18466
22179
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
22180
  /** Replace a son.
 
22181
   *  \param old_son The son to replace.
 
22182
   *  \param new_son The new son. */
18467
22183
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
18468
22184
    CTree::ReplaceSon (sons, 3, old_son, new_son);
18469
22185
  }
18470
22186
   private:
18471
22187
  typedef CT_BinaryExpr CCExprResolveExpr;
18472
22188
 
18473
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22189
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18474
22190
 public :
18475
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22191
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18476
22192
  typedef CT_BinaryExpr CExprResolveExpr;
18477
22193
 
18478
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22194
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18479
22195
 public :
18480
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18481
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22196
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22197
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18482
22198
};
18483
22199
 
 
22200
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
22201
 *  Tree node representing a member pointer expression, e.g. a->b. */
18484
22202
 
18485
 
#line 18486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22203
#line 22204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18486
22204
} // closed Puma
 
22205
class CCExprResolve;
 
22206
class CExprResolve;
18487
22207
class WinIfExists;
18488
22208
class WinImportHandler;
18489
22209
class WinMacros;
18490
 
class CMatchSyntax;
18491
 
class ExtGnu;
 
22210
class WinAsm;
 
22211
class WinDeclSpecs;
 
22212
class WinMemberExplSpec;
 
22213
class WinTypeKeywords;
 
22214
class WinFriend;
18492
22215
class ExtAC;
18493
22216
class ExtACBuilderCoupling;
18494
22217
class ExtACSyntaxCoupling;
18495
22218
class ExtACTree;
18496
22219
class ExtACKeywords;
18497
 
class WinAsm;
18498
 
class WinDeclSpecs;
18499
 
class WinMemberExplSpec;
18500
 
class WinTypeKeywords;
 
22220
class ExtGnu;
18501
22221
class PragmaOnceUnitState;
18502
22222
class PragmaOnce;
18503
 
class CCExprResolve;
18504
 
class CExprResolve;
18505
 
namespace Puma {
18506
 
 
18507
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18508
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
18509
 
#line 18510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22223
class CMatchSyntax;
 
22224
namespace Puma {
 
22225
 
 
22226
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22227
 
 
22228
#line 22229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22229
} // closed Puma
 
22230
 
 
22231
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22232
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22233
#include "CCExprResolveH.ah"
 
22234
#endif
 
22235
namespace Puma {
 
22236
 
 
22237
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22238
 
 
22239
#line 22240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22240
} // closed Puma
 
22241
 
 
22242
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22243
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22244
#include "CExprResolveH.ah"
 
22245
#endif
 
22246
namespace Puma {
 
22247
 
 
22248
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22249
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
22250
#line 22251 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22251
  friend class ::CCExprResolve;
 
22252
  friend class ::CExprResolve;
18510
22253
  friend class ::WinIfExists;
18511
22254
  friend class ::WinImportHandler;
18512
22255
  friend class ::WinMacros;
18513
 
  friend class ::CMatchSyntax;
18514
 
  friend class ::ExtGnu;
 
22256
  friend class ::WinAsm;
 
22257
  friend class ::WinDeclSpecs;
 
22258
  friend class ::WinMemberExplSpec;
 
22259
  friend class ::WinTypeKeywords;
 
22260
  friend class ::WinFriend;
18515
22261
  friend class ::ExtAC;
18516
22262
  friend class ::ExtACBuilderCoupling;
18517
22263
  friend class ::ExtACSyntaxCoupling;
18518
22264
  friend class ::ExtACTree;
18519
22265
  friend class ::ExtACKeywords;
18520
 
  friend class ::WinAsm;
18521
 
  friend class ::WinDeclSpecs;
18522
 
  friend class ::WinMemberExplSpec;
18523
 
  friend class ::WinTypeKeywords;
 
22266
  friend class ::ExtGnu;
18524
22267
  friend class ::PragmaOnceUnitState;
18525
22268
  friend class ::PragmaOnce;
18526
 
  friend class ::CCExprResolve;
18527
 
  friend class ::CExprResolve;
18528
 
 
18529
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18530
 
 
 
22269
  friend class ::CMatchSyntax;
 
22270
 
 
22271
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22272
 
 
22273
  CTree *sons[3]; // expr, oper, expr
 
22274
  
18531
22275
public:
18532
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
18533
 
    CT_BinaryExpr (e, o, i) {}
 
22276
  /** Constructor.
 
22277
   *  \param e Expression on which to call the member.
 
22278
   *  \param o The arrow operator token.
 
22279
   *  \param i The member name. */
 
22280
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
22281
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
22282
  }
 
22283
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18534
22284
  static const char *NodeId ();
 
22285
  /** Get the name of the node. Can be compared with NodeId(). */
18535
22286
  const char *NodeName () const { return NodeId (); }
18536
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
22287
  /** Get the number of sons. */
 
22288
  int Sons () const { return 3; }
 
22289
  /** Get the n-th son.
 
22290
   *  \param n The index of the son.
 
22291
   *  \return The n-th son or NULL. */
 
22292
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
22293
  /** Replace a son.
 
22294
   *  \param old_son The son to replace.
 
22295
   *  \param new_son The new son. */
 
22296
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22297
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
22298
  }
18537
22299
   private:
18538
22300
  typedef CT_MembPtrExpr CCExprResolveExpr;
18539
22301
 
18540
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22302
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18541
22303
 public :
18542
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22304
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18543
22305
  typedef CT_MembPtrExpr CExprResolveExpr;
18544
22306
 
18545
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22307
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18546
22308
 public :
18547
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18548
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22309
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22310
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18549
22311
};
18550
22312
 
 
22313
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
22314
 *  Tree node representing a member reference expression, e.g. a.b. */
18551
22315
 
18552
 
#line 18553 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22316
#line 22317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18553
22317
} // closed Puma
 
22318
class CCExprResolve;
 
22319
class CExprResolve;
18554
22320
class WinIfExists;
18555
22321
class WinImportHandler;
18556
22322
class WinMacros;
18557
 
class CMatchSyntax;
18558
 
class ExtGnu;
 
22323
class WinAsm;
 
22324
class WinDeclSpecs;
 
22325
class WinMemberExplSpec;
 
22326
class WinTypeKeywords;
 
22327
class WinFriend;
18559
22328
class ExtAC;
18560
22329
class ExtACBuilderCoupling;
18561
22330
class ExtACSyntaxCoupling;
18562
22331
class ExtACTree;
18563
22332
class ExtACKeywords;
18564
 
class WinAsm;
18565
 
class WinDeclSpecs;
18566
 
class WinMemberExplSpec;
18567
 
class WinTypeKeywords;
 
22333
class ExtGnu;
18568
22334
class PragmaOnceUnitState;
18569
22335
class PragmaOnce;
18570
 
class CCExprResolve;
18571
 
class CExprResolve;
18572
 
namespace Puma {
18573
 
 
18574
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22336
class CMatchSyntax;
 
22337
namespace Puma {
 
22338
 
 
22339
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22340
 
 
22341
#line 22342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22342
} // closed Puma
 
22343
 
 
22344
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22345
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22346
#include "CCExprResolveH.ah"
 
22347
#endif
 
22348
namespace Puma {
 
22349
 
 
22350
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22351
 
 
22352
#line 22353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22353
} // closed Puma
 
22354
 
 
22355
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22356
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22357
#include "CExprResolveH.ah"
 
22358
#endif
 
22359
namespace Puma {
 
22360
 
 
22361
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18575
22362
class CT_MembRefExpr : public CT_MembPtrExpr {
18576
 
#line 18577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22363
#line 22364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22364
  friend class ::CCExprResolve;
 
22365
  friend class ::CExprResolve;
18577
22366
  friend class ::WinIfExists;
18578
22367
  friend class ::WinImportHandler;
18579
22368
  friend class ::WinMacros;
18580
 
  friend class ::CMatchSyntax;
18581
 
  friend class ::ExtGnu;
 
22369
  friend class ::WinAsm;
 
22370
  friend class ::WinDeclSpecs;
 
22371
  friend class ::WinMemberExplSpec;
 
22372
  friend class ::WinTypeKeywords;
 
22373
  friend class ::WinFriend;
18582
22374
  friend class ::ExtAC;
18583
22375
  friend class ::ExtACBuilderCoupling;
18584
22376
  friend class ::ExtACSyntaxCoupling;
18585
22377
  friend class ::ExtACTree;
18586
22378
  friend class ::ExtACKeywords;
18587
 
  friend class ::WinAsm;
18588
 
  friend class ::WinDeclSpecs;
18589
 
  friend class ::WinMemberExplSpec;
18590
 
  friend class ::WinTypeKeywords;
 
22379
  friend class ::ExtGnu;
18591
22380
  friend class ::PragmaOnceUnitState;
18592
22381
  friend class ::PragmaOnce;
18593
 
  friend class ::CCExprResolve;
18594
 
  friend class ::CExprResolve;
 
22382
  friend class ::CMatchSyntax;
18595
22383
 
18596
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22384
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18597
22385
 
18598
22386
public:
 
22387
  /** Constructor.
 
22388
   *  \param e Expression on which to call the member.
 
22389
   *  \param o The dot operator.
 
22390
   *  \param i The member name. */
18599
22391
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
18600
22392
    CT_MembPtrExpr (e, o, i) {}
 
22393
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18601
22394
  static const char *NodeId ();
 
22395
  /** Get the name of the node. Can be compared with NodeId(). */
18602
22396
  const char *NodeName () const { return NodeId (); }
18603
22397
   private:
18604
22398
  typedef CT_MembRefExpr CCExprResolveExpr;
18605
22399
 
18606
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22400
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18607
22401
 public :
18608
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22402
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18609
22403
  typedef CT_MembRefExpr CExprResolveExpr;
18610
22404
 
18611
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22405
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18612
22406
 public :
18613
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18614
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22407
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22408
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18615
22409
};
18616
22410
 
 
22411
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
22412
 *  Base class for tree nodes representing unary expressions. */
18617
22413
 
18618
 
#line 18619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22414
#line 22415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18619
22415
} // closed Puma
 
22416
class CCExprResolve;
 
22417
class CExprResolve;
18620
22418
class WinIfExists;
18621
22419
class WinImportHandler;
18622
22420
class WinMacros;
18623
 
class CMatchSyntax;
18624
 
class ExtGnu;
 
22421
class WinAsm;
 
22422
class WinDeclSpecs;
 
22423
class WinMemberExplSpec;
 
22424
class WinTypeKeywords;
 
22425
class WinFriend;
18625
22426
class ExtAC;
18626
22427
class ExtACBuilderCoupling;
18627
22428
class ExtACSyntaxCoupling;
18628
22429
class ExtACTree;
18629
22430
class ExtACKeywords;
18630
 
class WinAsm;
18631
 
class WinDeclSpecs;
18632
 
class WinMemberExplSpec;
18633
 
class WinTypeKeywords;
 
22431
class ExtGnu;
18634
22432
class PragmaOnceUnitState;
18635
22433
class PragmaOnce;
18636
 
class CCExprResolve;
18637
 
class CExprResolve;
18638
 
namespace Puma {
18639
 
 
18640
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18641
 
class CT_UnaryExpr : public CT_Expression {
18642
 
#line 18643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22434
class CMatchSyntax;
 
22435
namespace Puma {
 
22436
 
 
22437
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22438
 
 
22439
#line 22440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22440
} // closed Puma
 
22441
 
 
22442
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22443
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22444
#include "CCExprResolveH.ah"
 
22445
#endif
 
22446
namespace Puma {
 
22447
 
 
22448
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22449
 
 
22450
#line 22451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22451
} // closed Puma
 
22452
 
 
22453
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22454
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22455
#include "CExprResolveH.ah"
 
22456
#endif
 
22457
namespace Puma {
 
22458
 
 
22459
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22460
class CT_UnaryExpr : public CT_Call {
 
22461
#line 22462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22462
  friend class ::CCExprResolve;
 
22463
  friend class ::CExprResolve;
18643
22464
  friend class ::WinIfExists;
18644
22465
  friend class ::WinImportHandler;
18645
22466
  friend class ::WinMacros;
18646
 
  friend class ::CMatchSyntax;
18647
 
  friend class ::ExtGnu;
 
22467
  friend class ::WinAsm;
 
22468
  friend class ::WinDeclSpecs;
 
22469
  friend class ::WinMemberExplSpec;
 
22470
  friend class ::WinTypeKeywords;
 
22471
  friend class ::WinFriend;
18648
22472
  friend class ::ExtAC;
18649
22473
  friend class ::ExtACBuilderCoupling;
18650
22474
  friend class ::ExtACSyntaxCoupling;
18651
22475
  friend class ::ExtACTree;
18652
22476
  friend class ::ExtACKeywords;
18653
 
  friend class ::WinAsm;
18654
 
  friend class ::WinDeclSpecs;
18655
 
  friend class ::WinMemberExplSpec;
18656
 
  friend class ::WinTypeKeywords;
 
22477
  friend class ::ExtGnu;
18657
22478
  friend class ::PragmaOnceUnitState;
18658
22479
  friend class ::PragmaOnce;
18659
 
  friend class ::CCExprResolve;
18660
 
  friend class ::CExprResolve;
 
22480
  friend class ::CMatchSyntax;
18661
22481
 
18662
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22482
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18663
22483
 
18664
22484
  CTree *sons[2]; // oper, expr
18665
22485
 
18666
22486
public:
18667
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
22487
  /** Constructor.
 
22488
   *  \param o The unary operator.
 
22489
   *  \param e The expression on which the operator is invoked. */
 
22490
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
22491
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18668
22492
  static const char *NodeId ();
 
22493
  /** Get the name of the node. Can be compared with NodeId(). */
18669
22494
  const char *NodeName () const { return NodeId (); }
 
22495
  /** Get the number of sons. */
18670
22496
  int Sons () const { return 2; }
 
22497
  /** Get the n-th son.
 
22498
   *  \param n The index of the son.
 
22499
   *  \return The n-th son or NULL. */
18671
22500
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
22501
  /** Replace a son.
 
22502
   *  \param old_son The son to replace.
 
22503
   *  \param new_son The new son. */
18672
22504
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
18673
22505
    CTree::ReplaceSon (sons, 2, old_son, new_son);
18674
22506
  }
 
22507
  /** Get the expression node. */
18675
22508
  CTree *Expr () const { return sons[1]; }
18676
22509
   private:
18677
22510
  typedef CT_UnaryExpr CCExprResolveExpr;
18678
22511
 
18679
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22512
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18680
22513
 public :
18681
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22514
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18682
22515
  typedef CT_UnaryExpr CExprResolveExpr;
18683
22516
 
18684
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22517
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18685
22518
 public :
18686
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18687
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22519
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22520
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18688
22521
};
18689
22522
 
 
22523
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
22524
 *  Tree node representing a postfix expression, e.g. a++. */
18690
22525
 
18691
 
#line 18692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22526
#line 22527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18692
22527
} // closed Puma
 
22528
class CCExprResolve;
 
22529
class CExprResolve;
18693
22530
class WinIfExists;
18694
22531
class WinImportHandler;
18695
22532
class WinMacros;
18696
 
class CMatchSyntax;
18697
 
class ExtGnu;
 
22533
class WinAsm;
 
22534
class WinDeclSpecs;
 
22535
class WinMemberExplSpec;
 
22536
class WinTypeKeywords;
 
22537
class WinFriend;
18698
22538
class ExtAC;
18699
22539
class ExtACBuilderCoupling;
18700
22540
class ExtACSyntaxCoupling;
18701
22541
class ExtACTree;
18702
22542
class ExtACKeywords;
18703
 
class WinAsm;
18704
 
class WinDeclSpecs;
18705
 
class WinMemberExplSpec;
18706
 
class WinTypeKeywords;
 
22543
class ExtGnu;
18707
22544
class PragmaOnceUnitState;
18708
22545
class PragmaOnce;
18709
 
class CCExprResolve;
18710
 
class CExprResolve;
18711
 
namespace Puma {
18712
 
 
18713
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22546
class CMatchSyntax;
 
22547
namespace Puma {
 
22548
 
 
22549
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22550
 
 
22551
#line 22552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22552
} // closed Puma
 
22553
 
 
22554
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22555
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22556
#include "CCExprResolveH.ah"
 
22557
#endif
 
22558
namespace Puma {
 
22559
 
 
22560
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22561
 
 
22562
#line 22563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22563
} // closed Puma
 
22564
 
 
22565
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22566
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22567
#include "CExprResolveH.ah"
 
22568
#endif
 
22569
namespace Puma {
 
22570
 
 
22571
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18714
22572
class CT_PostfixExpr : public CT_UnaryExpr {
18715
 
#line 18716 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22573
#line 22574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22574
  friend class ::CCExprResolve;
 
22575
  friend class ::CExprResolve;
18716
22576
  friend class ::WinIfExists;
18717
22577
  friend class ::WinImportHandler;
18718
22578
  friend class ::WinMacros;
18719
 
  friend class ::CMatchSyntax;
18720
 
  friend class ::ExtGnu;
 
22579
  friend class ::WinAsm;
 
22580
  friend class ::WinDeclSpecs;
 
22581
  friend class ::WinMemberExplSpec;
 
22582
  friend class ::WinTypeKeywords;
 
22583
  friend class ::WinFriend;
18721
22584
  friend class ::ExtAC;
18722
22585
  friend class ::ExtACBuilderCoupling;
18723
22586
  friend class ::ExtACSyntaxCoupling;
18724
22587
  friend class ::ExtACTree;
18725
22588
  friend class ::ExtACKeywords;
18726
 
  friend class ::WinAsm;
18727
 
  friend class ::WinDeclSpecs;
18728
 
  friend class ::WinMemberExplSpec;
18729
 
  friend class ::WinTypeKeywords;
 
22589
  friend class ::ExtGnu;
18730
22590
  friend class ::PragmaOnceUnitState;
18731
22591
  friend class ::PragmaOnce;
18732
 
  friend class ::CCExprResolve;
18733
 
  friend class ::CExprResolve;
 
22592
  friend class ::CMatchSyntax;
18734
22593
 
18735
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22594
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18736
22595
 
18737
22596
public:
 
22597
  /** Constructor.
 
22598
   *  \param e The expression on which to invoke the operator. 
 
22599
   *  \param o The postfix operator. */
18738
22600
  CT_PostfixExpr (CTree *e, CTree *o) :
18739
22601
    CT_UnaryExpr (e, o) {}
 
22602
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18740
22603
  static const char *NodeId ();
 
22604
  /** Get the name of the node. Can be compared with NodeId(). */
18741
22605
  const char *NodeName () const { return NodeId (); }
18742
22606
   private:
18743
22607
  typedef CT_PostfixExpr CCExprResolveExpr;
18744
22608
 
18745
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22609
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18746
22610
 public :
18747
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22611
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18748
22612
  typedef CT_PostfixExpr CExprResolveExpr;
18749
22613
 
18750
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22614
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18751
22615
 public :
18752
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18753
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22616
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22617
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18754
22618
};
18755
22619
 
 
22620
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
22621
 *  Tree node representing an address expression, e.g. &a. */
18756
22622
 
18757
 
#line 18758 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22623
#line 22624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18758
22624
} // closed Puma
 
22625
class CCExprResolve;
 
22626
class CExprResolve;
18759
22627
class WinIfExists;
18760
22628
class WinImportHandler;
18761
22629
class WinMacros;
18762
 
class CMatchSyntax;
18763
 
class ExtGnu;
 
22630
class WinAsm;
 
22631
class WinDeclSpecs;
 
22632
class WinMemberExplSpec;
 
22633
class WinTypeKeywords;
 
22634
class WinFriend;
18764
22635
class ExtAC;
18765
22636
class ExtACBuilderCoupling;
18766
22637
class ExtACSyntaxCoupling;
18767
22638
class ExtACTree;
18768
22639
class ExtACKeywords;
18769
 
class WinAsm;
18770
 
class WinDeclSpecs;
18771
 
class WinMemberExplSpec;
18772
 
class WinTypeKeywords;
 
22640
class ExtGnu;
18773
22641
class PragmaOnceUnitState;
18774
22642
class PragmaOnce;
18775
 
class CCExprResolve;
18776
 
class CExprResolve;
18777
 
namespace Puma {
18778
 
 
18779
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22643
class CMatchSyntax;
 
22644
namespace Puma {
 
22645
 
 
22646
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22647
 
 
22648
#line 22649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22649
} // closed Puma
 
22650
 
 
22651
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22652
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22653
#include "CCExprResolveH.ah"
 
22654
#endif
 
22655
namespace Puma {
 
22656
 
 
22657
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22658
 
 
22659
#line 22660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22660
} // closed Puma
 
22661
 
 
22662
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22663
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22664
#include "CExprResolveH.ah"
 
22665
#endif
 
22666
namespace Puma {
 
22667
 
 
22668
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18780
22669
class CT_AddrExpr : public CT_UnaryExpr {
18781
 
#line 18782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22670
#line 22671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22671
  friend class ::CCExprResolve;
 
22672
  friend class ::CExprResolve;
18782
22673
  friend class ::WinIfExists;
18783
22674
  friend class ::WinImportHandler;
18784
22675
  friend class ::WinMacros;
18785
 
  friend class ::CMatchSyntax;
18786
 
  friend class ::ExtGnu;
 
22676
  friend class ::WinAsm;
 
22677
  friend class ::WinDeclSpecs;
 
22678
  friend class ::WinMemberExplSpec;
 
22679
  friend class ::WinTypeKeywords;
 
22680
  friend class ::WinFriend;
18787
22681
  friend class ::ExtAC;
18788
22682
  friend class ::ExtACBuilderCoupling;
18789
22683
  friend class ::ExtACSyntaxCoupling;
18790
22684
  friend class ::ExtACTree;
18791
22685
  friend class ::ExtACKeywords;
18792
 
  friend class ::WinAsm;
18793
 
  friend class ::WinDeclSpecs;
18794
 
  friend class ::WinMemberExplSpec;
18795
 
  friend class ::WinTypeKeywords;
 
22686
  friend class ::ExtGnu;
18796
22687
  friend class ::PragmaOnceUnitState;
18797
22688
  friend class ::PragmaOnce;
18798
 
  friend class ::CCExprResolve;
18799
 
  friend class ::CExprResolve;
 
22689
  friend class ::CMatchSyntax;
18800
22690
 
18801
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22691
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18802
22692
 
18803
22693
public:
 
22694
  /** Constructor.
 
22695
   *  \param o The address operator, i.e. '&'.
 
22696
   *  \param e The expression from which to take the address. */
18804
22697
  CT_AddrExpr (CTree *o, CTree *e) :
18805
22698
    CT_UnaryExpr (o, e) {}
 
22699
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18806
22700
  static const char *NodeId ();
 
22701
  /** Get the name of the node. Can be compared with NodeId(). */
18807
22702
  const char *NodeName () const { return NodeId (); }
18808
22703
   private:
18809
22704
  typedef CT_AddrExpr CCExprResolveExpr;
18810
22705
 
18811
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22706
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18812
22707
 public :
18813
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22708
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18814
22709
  typedef CT_AddrExpr CExprResolveExpr;
18815
22710
 
18816
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22711
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18817
22712
 public :
18818
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18819
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22713
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22714
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18820
22715
};
18821
22716
 
 
22717
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
22718
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
18822
22719
 
18823
 
#line 18824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22720
#line 22721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18824
22721
} // closed Puma
 
22722
class CCExprResolve;
 
22723
class CExprResolve;
18825
22724
class WinIfExists;
18826
22725
class WinImportHandler;
18827
22726
class WinMacros;
18828
 
class CMatchSyntax;
18829
 
class ExtGnu;
 
22727
class WinAsm;
 
22728
class WinDeclSpecs;
 
22729
class WinMemberExplSpec;
 
22730
class WinTypeKeywords;
 
22731
class WinFriend;
18830
22732
class ExtAC;
18831
22733
class ExtACBuilderCoupling;
18832
22734
class ExtACSyntaxCoupling;
18833
22735
class ExtACTree;
18834
22736
class ExtACKeywords;
18835
 
class WinAsm;
18836
 
class WinDeclSpecs;
18837
 
class WinMemberExplSpec;
18838
 
class WinTypeKeywords;
 
22737
class ExtGnu;
18839
22738
class PragmaOnceUnitState;
18840
22739
class PragmaOnce;
18841
 
class CCExprResolve;
18842
 
class CExprResolve;
18843
 
namespace Puma {
18844
 
 
18845
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22740
class CMatchSyntax;
 
22741
namespace Puma {
 
22742
 
 
22743
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22744
 
 
22745
#line 22746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22746
} // closed Puma
 
22747
 
 
22748
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22749
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22750
#include "CCExprResolveH.ah"
 
22751
#endif
 
22752
namespace Puma {
 
22753
 
 
22754
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22755
 
 
22756
#line 22757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22757
} // closed Puma
 
22758
 
 
22759
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22760
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22761
#include "CExprResolveH.ah"
 
22762
#endif
 
22763
namespace Puma {
 
22764
 
 
22765
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18846
22766
class CT_DerefExpr : public CT_UnaryExpr {
18847
 
#line 18848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22767
#line 22768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22768
  friend class ::CCExprResolve;
 
22769
  friend class ::CExprResolve;
18848
22770
  friend class ::WinIfExists;
18849
22771
  friend class ::WinImportHandler;
18850
22772
  friend class ::WinMacros;
18851
 
  friend class ::CMatchSyntax;
18852
 
  friend class ::ExtGnu;
 
22773
  friend class ::WinAsm;
 
22774
  friend class ::WinDeclSpecs;
 
22775
  friend class ::WinMemberExplSpec;
 
22776
  friend class ::WinTypeKeywords;
 
22777
  friend class ::WinFriend;
18853
22778
  friend class ::ExtAC;
18854
22779
  friend class ::ExtACBuilderCoupling;
18855
22780
  friend class ::ExtACSyntaxCoupling;
18856
22781
  friend class ::ExtACTree;
18857
22782
  friend class ::ExtACKeywords;
18858
 
  friend class ::WinAsm;
18859
 
  friend class ::WinDeclSpecs;
18860
 
  friend class ::WinMemberExplSpec;
18861
 
  friend class ::WinTypeKeywords;
 
22783
  friend class ::ExtGnu;
18862
22784
  friend class ::PragmaOnceUnitState;
18863
22785
  friend class ::PragmaOnce;
18864
 
  friend class ::CCExprResolve;
18865
 
  friend class ::CExprResolve;
 
22786
  friend class ::CMatchSyntax;
18866
22787
 
18867
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22788
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18868
22789
 
18869
22790
public:
 
22791
  /** Constructor.
 
22792
   *  \param o The dereferencing operator, i.e. '*'.
 
22793
   *  \param e The expression to dereference. */
18870
22794
  CT_DerefExpr (CTree *o, CTree *e) :
18871
22795
    CT_UnaryExpr (o, e) {}
 
22796
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18872
22797
  static const char *NodeId ();
 
22798
  /** Get the name of the node. Can be compared with NodeId(). */
18873
22799
  const char *NodeName () const { return NodeId (); }
18874
22800
   private:
18875
22801
  typedef CT_DerefExpr CCExprResolveExpr;
18876
22802
 
18877
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22803
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18878
22804
 public :
18879
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22805
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18880
22806
  typedef CT_DerefExpr CExprResolveExpr;
18881
22807
 
18882
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22808
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18883
22809
 public :
18884
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18885
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22810
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22811
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18886
22812
};
18887
22813
 
 
22814
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
22815
 *  Tree node representing a delete expression, e.g. delete a. */
18888
22816
 
18889
 
#line 18890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22817
#line 22818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18890
22818
} // closed Puma
 
22819
class CCExprResolve;
 
22820
class CExprResolve;
18891
22821
class WinIfExists;
18892
22822
class WinImportHandler;
18893
22823
class WinMacros;
18894
 
class CMatchSyntax;
18895
 
class ExtGnu;
 
22824
class WinAsm;
 
22825
class WinDeclSpecs;
 
22826
class WinMemberExplSpec;
 
22827
class WinTypeKeywords;
 
22828
class WinFriend;
18896
22829
class ExtAC;
18897
22830
class ExtACBuilderCoupling;
18898
22831
class ExtACSyntaxCoupling;
18899
22832
class ExtACTree;
18900
22833
class ExtACKeywords;
18901
 
class WinAsm;
18902
 
class WinDeclSpecs;
18903
 
class WinMemberExplSpec;
18904
 
class WinTypeKeywords;
 
22834
class ExtGnu;
18905
22835
class PragmaOnceUnitState;
18906
22836
class PragmaOnce;
18907
 
class CCExprResolve;
18908
 
class CExprResolve;
18909
 
namespace Puma {
18910
 
 
18911
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22837
class CMatchSyntax;
 
22838
namespace Puma {
 
22839
 
 
22840
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22841
 
 
22842
#line 22843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22843
} // closed Puma
 
22844
 
 
22845
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22846
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22847
#include "CCExprResolveH.ah"
 
22848
#endif
 
22849
namespace Puma {
 
22850
 
 
22851
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22852
 
 
22853
#line 22854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22854
} // closed Puma
 
22855
 
 
22856
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22857
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22858
#include "CExprResolveH.ah"
 
22859
#endif
 
22860
namespace Puma {
 
22861
 
 
22862
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18912
22863
class CT_DeleteExpr : public CT_Expression, public CSemObject {
18913
 
#line 18914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22864
#line 22865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22865
  friend class ::CCExprResolve;
 
22866
  friend class ::CExprResolve;
18914
22867
  friend class ::WinIfExists;
18915
22868
  friend class ::WinImportHandler;
18916
22869
  friend class ::WinMacros;
18917
 
  friend class ::CMatchSyntax;
18918
 
  friend class ::ExtGnu;
 
22870
  friend class ::WinAsm;
 
22871
  friend class ::WinDeclSpecs;
 
22872
  friend class ::WinMemberExplSpec;
 
22873
  friend class ::WinTypeKeywords;
 
22874
  friend class ::WinFriend;
18919
22875
  friend class ::ExtAC;
18920
22876
  friend class ::ExtACBuilderCoupling;
18921
22877
  friend class ::ExtACSyntaxCoupling;
18922
22878
  friend class ::ExtACTree;
18923
22879
  friend class ::ExtACKeywords;
18924
 
  friend class ::WinAsm;
18925
 
  friend class ::WinDeclSpecs;
18926
 
  friend class ::WinMemberExplSpec;
18927
 
  friend class ::WinTypeKeywords;
 
22880
  friend class ::ExtGnu;
18928
22881
  friend class ::PragmaOnceUnitState;
18929
22882
  friend class ::PragmaOnce;
18930
 
  friend class ::CCExprResolve;
18931
 
  friend class ::CExprResolve;
 
22883
  friend class ::CMatchSyntax;
18932
22884
 
18933
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22885
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18934
22886
 
18935
22887
  CTree *sons[2]; // oper, expr
18936
22888
 
18937
22889
public:
18938
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
22890
  /** Constructor.
 
22891
   *  \param op The delete operator.
 
22892
   *  \param e The expression representing the object to delete. */
 
22893
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
22894
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18939
22895
  static const char *NodeId ();
 
22896
  /** Get the name of the node. Can be compared with NodeId(). */
18940
22897
  const char *NodeName () const { return NodeId (); }
 
22898
  /** Get the number of sons. */
18941
22899
  int Sons () const { return 2; }
 
22900
  /** Get the n-th son.
 
22901
   *  \param n The index of the son.
 
22902
   *  \return The n-th son or NULL. */
18942
22903
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
22904
  /** Replace a son.
 
22905
   *  \param old_son The son to replace.
 
22906
   *  \param new_son The new son. */
18943
22907
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
18944
22908
    CTree::ReplaceSon (sons, 2, old_son, new_son);
18945
22909
  }
 
22910
  /** Get the expression. */
18946
22911
  CTree *Expr () const { return sons[1]; }
 
22912
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
18947
22913
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
22914
  /** Get the semantic information object. */
18948
22915
  CSemObject *SemObject () const { return (CSemObject*)this; }
18949
22916
   private:
18950
22917
  typedef CT_DeleteExpr CCExprResolveExpr;
18951
22918
 
18952
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22919
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18953
22920
 public :
18954
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
22921
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18955
22922
  typedef CT_DeleteExpr CExprResolveExpr;
18956
22923
 
18957
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22924
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18958
22925
 public :
18959
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18960
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22926
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22927
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18961
22928
};
18962
22929
 
 
22930
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
22931
 *  Tree node representing a new expression, e.g. new A(). */
18963
22932
 
18964
 
#line 18965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22933
#line 22934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
18965
22934
} // closed Puma
 
22935
class CCExprResolve;
 
22936
class CExprResolve;
18966
22937
class WinIfExists;
18967
22938
class WinImportHandler;
18968
22939
class WinMacros;
18969
 
class CMatchSyntax;
18970
 
class ExtGnu;
 
22940
class WinAsm;
 
22941
class WinDeclSpecs;
 
22942
class WinMemberExplSpec;
 
22943
class WinTypeKeywords;
 
22944
class WinFriend;
18971
22945
class ExtAC;
18972
22946
class ExtACBuilderCoupling;
18973
22947
class ExtACSyntaxCoupling;
18974
22948
class ExtACTree;
18975
22949
class ExtACKeywords;
18976
 
class WinAsm;
18977
 
class WinDeclSpecs;
18978
 
class WinMemberExplSpec;
18979
 
class WinTypeKeywords;
 
22950
class ExtGnu;
18980
22951
class PragmaOnceUnitState;
18981
22952
class PragmaOnce;
18982
 
class CCExprResolve;
18983
 
class CExprResolve;
18984
 
namespace Puma {
18985
 
 
18986
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22953
class CMatchSyntax;
 
22954
namespace Puma {
 
22955
 
 
22956
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22957
 
 
22958
#line 22959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22959
} // closed Puma
 
22960
 
 
22961
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22962
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22963
#include "CCExprResolveH.ah"
 
22964
#endif
 
22965
namespace Puma {
 
22966
 
 
22967
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22968
 
 
22969
#line 22970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22970
} // closed Puma
 
22971
 
 
22972
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22973
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22974
#include "CExprResolveH.ah"
 
22975
#endif
 
22976
namespace Puma {
 
22977
 
 
22978
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18987
22979
class CT_NewExpr : public CT_Expression, public CSemObject {
18988
 
#line 18989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
22980
#line 22981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
22981
  friend class ::CCExprResolve;
 
22982
  friend class ::CExprResolve;
18989
22983
  friend class ::WinIfExists;
18990
22984
  friend class ::WinImportHandler;
18991
22985
  friend class ::WinMacros;
18992
 
  friend class ::CMatchSyntax;
18993
 
  friend class ::ExtGnu;
 
22986
  friend class ::WinAsm;
 
22987
  friend class ::WinDeclSpecs;
 
22988
  friend class ::WinMemberExplSpec;
 
22989
  friend class ::WinTypeKeywords;
 
22990
  friend class ::WinFriend;
18994
22991
  friend class ::ExtAC;
18995
22992
  friend class ::ExtACBuilderCoupling;
18996
22993
  friend class ::ExtACSyntaxCoupling;
18997
22994
  friend class ::ExtACTree;
18998
22995
  friend class ::ExtACKeywords;
18999
 
  friend class ::WinAsm;
19000
 
  friend class ::WinDeclSpecs;
19001
 
  friend class ::WinMemberExplSpec;
19002
 
  friend class ::WinTypeKeywords;
 
22996
  friend class ::ExtGnu;
19003
22997
  friend class ::PragmaOnceUnitState;
19004
22998
  friend class ::PragmaOnce;
19005
 
  friend class ::CCExprResolve;
19006
 
  friend class ::CExprResolve;
 
22999
  friend class ::CMatchSyntax;
19007
23000
 
19008
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23001
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19009
23002
 
19010
23003
  CTree *sons[6]; // oper, placement, open, type, close, init
19011
23004
 
19012
23005
public:
 
23006
  /** Constructor.
 
23007
   *  \param op The new operator.
 
23008
   *  \param p The optional placement expression.
 
23009
   *  \param o The optional left parenthesis around the type identifier.
 
23010
   *  \param t The type identifier specifying the type of the object to create.
 
23011
   *  \param c The optional right parenthesis around the type identifier.
 
23012
   *  \param i The optional initializer. */
19013
23013
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
19014
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
23014
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
23015
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
19015
23016
  }
 
23017
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19016
23018
  static const char *NodeId ();
 
23019
  /** Get the name of the node. Can be compared with NodeId(). */
19017
23020
  const char *NodeName () const { return NodeId (); }
 
23021
  /** Get the number of sons. */
19018
23022
  int Sons () const { return CTree::Sons (sons, 6); }
 
23023
  /** Get the n-th son.
 
23024
   *  \param n The index of the son.
 
23025
   *  \return The n-th son or NULL. */
19019
23026
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
23027
  /** Replace a son.
 
23028
   *  \param old_son The son to replace.
 
23029
   *  \param new_son The new son. */
19020
23030
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19021
23031
    CTree::ReplaceSon (sons, 6, old_son, new_son);
19022
23032
  }
 
23033
  /** Get the operator name. */
19023
23034
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
23035
  /** Get the placement expression. */
19024
23036
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
23037
  /** Get the initializer. */
19025
23038
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
23039
  /** Get the type of the object to create. */
19026
23040
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
23041
  /** Get the semantic information object. */
19027
23042
  CSemObject *SemObject () const { return (CSemObject*)this; }
19028
23043
   private:
19029
23044
  typedef CT_NewExpr CCExprResolveExpr;
19030
23045
 
19031
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23046
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19032
23047
 public :
19033
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23048
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19034
23049
  typedef CT_NewExpr CExprResolveExpr;
19035
23050
 
19036
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23051
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19037
23052
 public :
19038
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19039
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23053
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23054
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19040
23055
};
19041
23056
 
 
23057
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
23058
 *  Tree node representing an if-then expression, 
 
23059
 *  e.g. a>0?a:b or a?:b. */
19042
23060
 
19043
 
#line 19044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23061
#line 23062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19044
23062
} // closed Puma
 
23063
class CCExprResolve;
 
23064
class CExprResolve;
19045
23065
class WinIfExists;
19046
23066
class WinImportHandler;
19047
23067
class WinMacros;
19048
 
class CMatchSyntax;
19049
 
class ExtGnu;
 
23068
class WinAsm;
 
23069
class WinDeclSpecs;
 
23070
class WinMemberExplSpec;
 
23071
class WinTypeKeywords;
 
23072
class WinFriend;
19050
23073
class ExtAC;
19051
23074
class ExtACBuilderCoupling;
19052
23075
class ExtACSyntaxCoupling;
19053
23076
class ExtACTree;
19054
23077
class ExtACKeywords;
19055
 
class WinAsm;
19056
 
class WinDeclSpecs;
19057
 
class WinMemberExplSpec;
19058
 
class WinTypeKeywords;
 
23078
class ExtGnu;
19059
23079
class PragmaOnceUnitState;
19060
23080
class PragmaOnce;
19061
 
class CCExprResolve;
19062
 
class CExprResolve;
19063
 
namespace Puma {
19064
 
 
19065
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23081
class CMatchSyntax;
 
23082
namespace Puma {
 
23083
 
 
23084
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23085
 
 
23086
#line 23087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23087
} // closed Puma
 
23088
 
 
23089
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23090
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23091
#include "CCExprResolveH.ah"
 
23092
#endif
 
23093
namespace Puma {
 
23094
 
 
23095
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23096
 
 
23097
#line 23098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23098
} // closed Puma
 
23099
 
 
23100
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23101
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23102
#include "CExprResolveH.ah"
 
23103
#endif
 
23104
namespace Puma {
 
23105
 
 
23106
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19066
23107
class CT_IfThenExpr : public CT_Expression {
19067
 
#line 19068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23108
#line 23109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23109
  friend class ::CCExprResolve;
 
23110
  friend class ::CExprResolve;
19068
23111
  friend class ::WinIfExists;
19069
23112
  friend class ::WinImportHandler;
19070
23113
  friend class ::WinMacros;
19071
 
  friend class ::CMatchSyntax;
19072
 
  friend class ::ExtGnu;
 
23114
  friend class ::WinAsm;
 
23115
  friend class ::WinDeclSpecs;
 
23116
  friend class ::WinMemberExplSpec;
 
23117
  friend class ::WinTypeKeywords;
 
23118
  friend class ::WinFriend;
19073
23119
  friend class ::ExtAC;
19074
23120
  friend class ::ExtACBuilderCoupling;
19075
23121
  friend class ::ExtACSyntaxCoupling;
19076
23122
  friend class ::ExtACTree;
19077
23123
  friend class ::ExtACKeywords;
19078
 
  friend class ::WinAsm;
19079
 
  friend class ::WinDeclSpecs;
19080
 
  friend class ::WinMemberExplSpec;
19081
 
  friend class ::WinTypeKeywords;
 
23124
  friend class ::ExtGnu;
19082
23125
  friend class ::PragmaOnceUnitState;
19083
23126
  friend class ::PragmaOnce;
19084
 
  friend class ::CCExprResolve;
19085
 
  friend class ::CExprResolve;
 
23127
  friend class ::CMatchSyntax;
19086
23128
 
19087
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23129
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19088
23130
 
19089
23131
  CTree *sons[5]; // cond, oper, left, colon, right
19090
23132
 
19091
23133
public:
 
23134
  /** Constructor.
 
23135
   *  \param c1 The condition expression.
 
23136
   *  \param o The question mark operator. 
 
23137
   *  \param l The expression to the left of the colon.
 
23138
   *  \param c2 The colon operator.
 
23139
   *  \param r The expression to the right of the colon. */ 
19092
23140
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
19093
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
23141
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
23142
    AddSon (sons[3], c2); AddSon (sons[4], r);
19094
23143
  }
 
23144
  /** Constructor.
 
23145
   *  \param c1 The condition expression.
 
23146
   *  \param o The question mark operator. 
 
23147
   *  \param c2 The colon operator.
 
23148
   *  \param r The expression to the right of the colon. */ 
19095
23149
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
19096
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
23150
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
23151
    AddSon (sons[3], c2); AddSon (sons[4], r);
19097
23152
  }
 
23153
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19098
23154
  static const char *NodeId ();
 
23155
  /** Get the name of the node. Can be compared with NodeId(). */
19099
23156
  const char *NodeName () const { return NodeId (); }
 
23157
  /** Get the number of sons. */
19100
23158
  int Sons () const { return CTree::Sons (sons, 5); }
 
23159
  /** Get the n-th son.
 
23160
   *  \param n The index of the son.
 
23161
   *  \return The n-th son or NULL. */
19101
23162
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
23163
  /** Get the condition expression. */
19102
23164
  CTree *Condition () const { return sons[0]; }
 
23165
  /** Get the left expression (condition=true). */
19103
23166
  CTree *LeftOperand () const { return sons[2]; }
 
23167
  /** Get the right expression (condition=false). */
19104
23168
  CTree *RightOperand () const { return sons[4]; }
 
23169
  /** Replace a son.
 
23170
   *  \param old_son The son to replace.
 
23171
   *  \param new_son The new son. */
19105
23172
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19106
23173
    CTree::ReplaceSon (sons, 5, old_son, new_son);
19107
23174
  }
19108
23175
   private:
19109
23176
  typedef CT_IfThenExpr CCExprResolveExpr;
19110
23177
 
19111
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23178
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19112
23179
 public :
19113
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23180
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19114
23181
  typedef CT_IfThenExpr CExprResolveExpr;
19115
23182
 
19116
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23183
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19117
23184
 public :
19118
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19119
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23185
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23186
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19120
23187
};
19121
23188
 
 
23189
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
23190
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
19122
23191
 
19123
 
#line 19124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23192
#line 23193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19124
23193
} // closed Puma
 
23194
class CCExprResolve;
 
23195
class CExprResolve;
19125
23196
class WinIfExists;
19126
23197
class WinImportHandler;
19127
23198
class WinMacros;
19128
 
class CMatchSyntax;
19129
 
class ExtGnu;
 
23199
class WinAsm;
 
23200
class WinDeclSpecs;
 
23201
class WinMemberExplSpec;
 
23202
class WinTypeKeywords;
 
23203
class WinFriend;
19130
23204
class ExtAC;
19131
23205
class ExtACBuilderCoupling;
19132
23206
class ExtACSyntaxCoupling;
19133
23207
class ExtACTree;
19134
23208
class ExtACKeywords;
19135
 
class WinAsm;
19136
 
class WinDeclSpecs;
19137
 
class WinMemberExplSpec;
19138
 
class WinTypeKeywords;
 
23209
class ExtGnu;
19139
23210
class PragmaOnceUnitState;
19140
23211
class PragmaOnce;
19141
 
class CCExprResolve;
19142
 
class CExprResolve;
19143
 
namespace Puma {
19144
 
 
19145
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23212
class CMatchSyntax;
 
23213
namespace Puma {
 
23214
 
 
23215
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23216
 
 
23217
#line 23218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23218
} // closed Puma
 
23219
 
 
23220
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23221
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23222
#include "CCExprResolveH.ah"
 
23223
#endif
 
23224
namespace Puma {
 
23225
 
 
23226
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23227
 
 
23228
#line 23229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23229
} // closed Puma
 
23230
 
 
23231
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23232
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23233
#include "CExprResolveH.ah"
 
23234
#endif
 
23235
namespace Puma {
 
23236
 
 
23237
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19146
23238
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
19147
 
#line 19148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23239
#line 23240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23240
  friend class ::CCExprResolve;
 
23241
  friend class ::CExprResolve;
19148
23242
  friend class ::WinIfExists;
19149
23243
  friend class ::WinImportHandler;
19150
23244
  friend class ::WinMacros;
19151
 
  friend class ::CMatchSyntax;
19152
 
  friend class ::ExtGnu;
 
23245
  friend class ::WinAsm;
 
23246
  friend class ::WinDeclSpecs;
 
23247
  friend class ::WinMemberExplSpec;
 
23248
  friend class ::WinTypeKeywords;
 
23249
  friend class ::WinFriend;
19153
23250
  friend class ::ExtAC;
19154
23251
  friend class ::ExtACBuilderCoupling;
19155
23252
  friend class ::ExtACSyntaxCoupling;
19156
23253
  friend class ::ExtACTree;
19157
23254
  friend class ::ExtACKeywords;
19158
 
  friend class ::WinAsm;
19159
 
  friend class ::WinDeclSpecs;
19160
 
  friend class ::WinMemberExplSpec;
19161
 
  friend class ::WinTypeKeywords;
 
23255
  friend class ::ExtGnu;
19162
23256
  friend class ::PragmaOnceUnitState;
19163
23257
  friend class ::PragmaOnce;
19164
 
  friend class ::CCExprResolve;
19165
 
  friend class ::CExprResolve;
 
23258
  friend class ::CMatchSyntax;
19166
23259
 
19167
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23260
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19168
23261
 
19169
23262
  CTree *sons[4]; // open, type, close, init
19170
23263
 
19171
23264
public:
 
23265
  /** Constructor.
 
23266
   *  \param r Left parenthesis of the type name.
 
23267
   *  \param t The type name.
 
23268
   *  \param cr Right parenthesis of the type name.
 
23269
   *  \param i The initializer list. */
19172
23270
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
19173
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
23271
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
23272
    AddSon (sons[2], cr); AddSon (sons[3], i);
19174
23273
  }
 
23274
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19175
23275
  static const char *NodeId ();
 
23276
  /** Get the name of the node. Can be compared with NodeId(). */
19176
23277
  const char *NodeName () const { return NodeId (); }
 
23278
  /** Get the number of sons. */
19177
23279
  int Sons () const { return 4; }
 
23280
  /** Get the n-th son.
 
23281
   *  \param n The index of the son.
 
23282
   *  \return The n-th son or NULL. */
19178
23283
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
23284
  /** Replace a son.
 
23285
   *  \param old_son The son to replace.
 
23286
   *  \param new_son The new son. */
19179
23287
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19180
23288
    CTree::ReplaceSon (sons, 4, old_son, new_son);
19181
23289
  }
 
23290
  /** Get the type name. */
19182
23291
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
23292
  /** Get the initializer list. */
19183
23293
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
23294
  /** Get the semantic information object. */
19184
23295
  CSemObject *SemObject () const { return (CSemObject*)this; }
19185
23296
   private:
19186
23297
  typedef CT_CmpdLiteral CCExprResolveExpr;
19187
23298
 
19188
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23299
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19189
23300
 public :
19190
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23301
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19191
23302
  typedef CT_CmpdLiteral CExprResolveExpr;
19192
23303
 
19193
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23304
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19194
23305
 public :
19195
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19196
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23306
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23307
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19197
23308
};
19198
23309
 
 
23310
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
23311
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
19199
23312
 
19200
 
#line 19201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23313
#line 23314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19201
23314
} // closed Puma
 
23315
class CCExprResolve;
 
23316
class CExprResolve;
19202
23317
class WinIfExists;
19203
23318
class WinImportHandler;
19204
23319
class WinMacros;
19205
 
class CMatchSyntax;
19206
 
class ExtGnu;
 
23320
class WinAsm;
 
23321
class WinDeclSpecs;
 
23322
class WinMemberExplSpec;
 
23323
class WinTypeKeywords;
 
23324
class WinFriend;
19207
23325
class ExtAC;
19208
23326
class ExtACBuilderCoupling;
19209
23327
class ExtACSyntaxCoupling;
19210
23328
class ExtACTree;
19211
23329
class ExtACKeywords;
19212
 
class WinAsm;
19213
 
class WinDeclSpecs;
19214
 
class WinMemberExplSpec;
19215
 
class WinTypeKeywords;
 
23330
class ExtGnu;
19216
23331
class PragmaOnceUnitState;
19217
23332
class PragmaOnce;
19218
 
class CCExprResolve;
19219
 
class CExprResolve;
19220
 
namespace Puma {
19221
 
 
19222
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23333
class CMatchSyntax;
 
23334
namespace Puma {
 
23335
 
 
23336
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23337
 
 
23338
#line 23339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23339
} // closed Puma
 
23340
 
 
23341
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23342
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23343
#include "CCExprResolveH.ah"
 
23344
#endif
 
23345
namespace Puma {
 
23346
 
 
23347
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23348
 
 
23349
#line 23350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23350
} // closed Puma
 
23351
 
 
23352
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23353
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23354
#include "CExprResolveH.ah"
 
23355
#endif
 
23356
namespace Puma {
 
23357
 
 
23358
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19223
23359
class CT_ConstructExpr : public CT_Expression, public CSemObject {
19224
 
#line 19225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23360
#line 23361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23361
  friend class ::CCExprResolve;
 
23362
  friend class ::CExprResolve;
19225
23363
  friend class ::WinIfExists;
19226
23364
  friend class ::WinImportHandler;
19227
23365
  friend class ::WinMacros;
19228
 
  friend class ::CMatchSyntax;
19229
 
  friend class ::ExtGnu;
 
23366
  friend class ::WinAsm;
 
23367
  friend class ::WinDeclSpecs;
 
23368
  friend class ::WinMemberExplSpec;
 
23369
  friend class ::WinTypeKeywords;
 
23370
  friend class ::WinFriend;
19230
23371
  friend class ::ExtAC;
19231
23372
  friend class ::ExtACBuilderCoupling;
19232
23373
  friend class ::ExtACSyntaxCoupling;
19233
23374
  friend class ::ExtACTree;
19234
23375
  friend class ::ExtACKeywords;
19235
 
  friend class ::WinAsm;
19236
 
  friend class ::WinDeclSpecs;
19237
 
  friend class ::WinMemberExplSpec;
19238
 
  friend class ::WinTypeKeywords;
 
23376
  friend class ::ExtGnu;
19239
23377
  friend class ::PragmaOnceUnitState;
19240
23378
  friend class ::PragmaOnce;
19241
 
  friend class ::CCExprResolve;
19242
 
  friend class ::CExprResolve;
 
23379
  friend class ::CMatchSyntax;
19243
23380
 
19244
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23381
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19245
23382
 
19246
23383
  CTree *sons[2]; // type, init
19247
23384
 
19248
23385
public:
19249
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
23386
  /** Constructor.
 
23387
   *  \param t The type name.
 
23388
   *  \param i The initializer list. */
 
23389
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
23390
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19250
23391
  static const char *NodeId ();
 
23392
  /** Get the name of the node. Can be compared with NodeId(). */
19251
23393
  const char *NodeName () const { return NodeId (); }
 
23394
  /** Get the number of sons. */
19252
23395
  int Sons () const { return 2; }
 
23396
  /** Get the n-th son.
 
23397
   *  \param n The index of the son.
 
23398
   *  \return The n-th son or NULL. */
19253
23399
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
23400
  /** Replace a son.
 
23401
   *  \param old_son The son to replace.
 
23402
   *  \param new_son The new son. */
19254
23403
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19255
23404
    CTree::ReplaceSon (sons, 2, old_son, new_son);
19256
23405
  }
 
23406
  /** Get the type name. */
19257
23407
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
23408
  /** Get the initializer. */
19258
23409
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
23410
  /** Get the semantic information object. */
19259
23411
  CSemObject *SemObject () const { return (CSemObject*)this; }
19260
23412
   private:
19261
23413
  typedef CT_ConstructExpr CCExprResolveExpr;
19262
23414
 
19263
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23415
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19264
23416
 public :
19265
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23417
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19266
23418
  typedef CT_ConstructExpr CExprResolveExpr;
19267
23419
 
19268
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23420
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19269
23421
 public :
19270
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19271
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23422
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23423
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19272
23424
};
19273
23425
 
 
23426
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
23427
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
19274
23428
 
19275
 
#line 19276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23429
#line 23430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19276
23430
} // closed Puma
 
23431
class CCExprResolve;
 
23432
class CExprResolve;
19277
23433
class WinIfExists;
19278
23434
class WinImportHandler;
19279
23435
class WinMacros;
19280
 
class CMatchSyntax;
19281
 
class ExtGnu;
 
23436
class WinAsm;
 
23437
class WinDeclSpecs;
 
23438
class WinMemberExplSpec;
 
23439
class WinTypeKeywords;
 
23440
class WinFriend;
19282
23441
class ExtAC;
19283
23442
class ExtACBuilderCoupling;
19284
23443
class ExtACSyntaxCoupling;
19285
23444
class ExtACTree;
19286
23445
class ExtACKeywords;
19287
 
class WinAsm;
19288
 
class WinDeclSpecs;
19289
 
class WinMemberExplSpec;
19290
 
class WinTypeKeywords;
 
23446
class ExtGnu;
19291
23447
class PragmaOnceUnitState;
19292
23448
class PragmaOnce;
19293
 
class CCExprResolve;
19294
 
class CExprResolve;
19295
 
namespace Puma {
19296
 
 
19297
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23449
class CMatchSyntax;
 
23450
namespace Puma {
 
23451
 
 
23452
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23453
 
 
23454
#line 23455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23455
} // closed Puma
 
23456
 
 
23457
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23458
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23459
#include "CCExprResolveH.ah"
 
23460
#endif
 
23461
namespace Puma {
 
23462
 
 
23463
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23464
 
 
23465
#line 23466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23466
} // closed Puma
 
23467
 
 
23468
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23469
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23470
#include "CExprResolveH.ah"
 
23471
#endif
 
23472
namespace Puma {
 
23473
 
 
23474
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19298
23475
class CT_ThrowExpr : public CT_Expression {
19299
 
#line 19300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23476
#line 23477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23477
  friend class ::CCExprResolve;
 
23478
  friend class ::CExprResolve;
19300
23479
  friend class ::WinIfExists;
19301
23480
  friend class ::WinImportHandler;
19302
23481
  friend class ::WinMacros;
19303
 
  friend class ::CMatchSyntax;
19304
 
  friend class ::ExtGnu;
 
23482
  friend class ::WinAsm;
 
23483
  friend class ::WinDeclSpecs;
 
23484
  friend class ::WinMemberExplSpec;
 
23485
  friend class ::WinTypeKeywords;
 
23486
  friend class ::WinFriend;
19305
23487
  friend class ::ExtAC;
19306
23488
  friend class ::ExtACBuilderCoupling;
19307
23489
  friend class ::ExtACSyntaxCoupling;
19308
23490
  friend class ::ExtACTree;
19309
23491
  friend class ::ExtACKeywords;
19310
 
  friend class ::WinAsm;
19311
 
  friend class ::WinDeclSpecs;
19312
 
  friend class ::WinMemberExplSpec;
19313
 
  friend class ::WinTypeKeywords;
 
23492
  friend class ::ExtGnu;
19314
23493
  friend class ::PragmaOnceUnitState;
19315
23494
  friend class ::PragmaOnce;
19316
 
  friend class ::CCExprResolve;
19317
 
  friend class ::CExprResolve;
 
23495
  friend class ::CMatchSyntax;
19318
23496
 
19319
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23497
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19320
23498
 
19321
23499
  CTree *sons[2]; // throw, expr
19322
23500
 
19323
23501
public:
19324
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
23502
  /** Constructor.
 
23503
   *  \param t The 'throw' keyword.
 
23504
   *  \param e The expression. */
 
23505
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
23506
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19325
23507
  static const char *NodeId ();
 
23508
  /** Get the name of the node. Can be compared with NodeId(). */
19326
23509
  const char *NodeName () const { return NodeId (); }
 
23510
  /** Get the number of sons. */
19327
23511
  int Sons () const { return CTree::Sons (sons, 2); }
 
23512
  /** Get the n-th son.
 
23513
   *  \param n The index of the son.
 
23514
   *  \return The n-th son or NULL. */
19328
23515
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
23516
  /** Replace a son.
 
23517
   *  \param old_son The son to replace.
 
23518
   *  \param new_son The new son. */
19329
23519
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19330
23520
    CTree::ReplaceSon (sons, 2, old_son, new_son);
19331
23521
  }
 
23522
  /** Get the expression. */
19332
23523
  CTree *Expr () const { return sons[1]; }
19333
23524
   private:
19334
23525
  typedef CT_ThrowExpr CCExprResolveExpr;
19335
23526
 
19336
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23527
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19337
23528
 public :
19338
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23529
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19339
23530
  typedef CT_ThrowExpr CExprResolveExpr;
19340
23531
 
19341
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23532
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19342
23533
 public :
19343
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19344
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23534
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23535
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19345
23536
};
19346
23537
 
 
23538
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
23539
 *  Tree node representing an index expression. */
19347
23540
 
19348
 
#line 19349 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23541
#line 23542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19349
23542
} // closed Puma
 
23543
class CCExprResolve;
 
23544
class CExprResolve;
19350
23545
class WinIfExists;
19351
23546
class WinImportHandler;
19352
23547
class WinMacros;
19353
 
class CMatchSyntax;
19354
 
class ExtGnu;
 
23548
class WinAsm;
 
23549
class WinDeclSpecs;
 
23550
class WinMemberExplSpec;
 
23551
class WinTypeKeywords;
 
23552
class WinFriend;
19355
23553
class ExtAC;
19356
23554
class ExtACBuilderCoupling;
19357
23555
class ExtACSyntaxCoupling;
19358
23556
class ExtACTree;
19359
23557
class ExtACKeywords;
19360
 
class WinAsm;
19361
 
class WinDeclSpecs;
19362
 
class WinMemberExplSpec;
19363
 
class WinTypeKeywords;
 
23558
class ExtGnu;
19364
23559
class PragmaOnceUnitState;
19365
23560
class PragmaOnce;
19366
 
class CCExprResolve;
19367
 
class CExprResolve;
19368
 
namespace Puma {
19369
 
 
19370
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19371
 
class CT_IndexExpr : public CT_Expression {
19372
 
#line 19373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23561
class CMatchSyntax;
 
23562
namespace Puma {
 
23563
 
 
23564
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23565
 
 
23566
#line 23567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23567
} // closed Puma
 
23568
 
 
23569
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23570
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23571
#include "CCExprResolveH.ah"
 
23572
#endif
 
23573
namespace Puma {
 
23574
 
 
23575
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23576
 
 
23577
#line 23578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23578
} // closed Puma
 
23579
 
 
23580
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23581
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23582
#include "CExprResolveH.ah"
 
23583
#endif
 
23584
namespace Puma {
 
23585
 
 
23586
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23587
class CT_IndexExpr : public CT_Call {
 
23588
#line 23589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23589
  friend class ::CCExprResolve;
 
23590
  friend class ::CExprResolve;
19373
23591
  friend class ::WinIfExists;
19374
23592
  friend class ::WinImportHandler;
19375
23593
  friend class ::WinMacros;
19376
 
  friend class ::CMatchSyntax;
19377
 
  friend class ::ExtGnu;
 
23594
  friend class ::WinAsm;
 
23595
  friend class ::WinDeclSpecs;
 
23596
  friend class ::WinMemberExplSpec;
 
23597
  friend class ::WinTypeKeywords;
 
23598
  friend class ::WinFriend;
19378
23599
  friend class ::ExtAC;
19379
23600
  friend class ::ExtACBuilderCoupling;
19380
23601
  friend class ::ExtACSyntaxCoupling;
19381
23602
  friend class ::ExtACTree;
19382
23603
  friend class ::ExtACKeywords;
19383
 
  friend class ::WinAsm;
19384
 
  friend class ::WinDeclSpecs;
19385
 
  friend class ::WinMemberExplSpec;
19386
 
  friend class ::WinTypeKeywords;
 
23604
  friend class ::ExtGnu;
19387
23605
  friend class ::PragmaOnceUnitState;
19388
23606
  friend class ::PragmaOnce;
19389
 
  friend class ::CCExprResolve;
19390
 
  friend class ::CExprResolve;
 
23607
  friend class ::CMatchSyntax;
19391
23608
 
19392
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23609
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19393
23610
 
19394
23611
  CTree *sons[4]; // expr, open, index, close
19395
23612
 
19396
23613
public:
 
23614
  /** Constructor.
 
23615
   *  \param e The expression on which to invoke the index operator.
 
23616
   *  \param o Left parenthesis of the index expression.
 
23617
   *  \param i The index expression. 
 
23618
   *  \param c Right parenthesis of the index expression. */
19397
23619
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
19398
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
23620
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
23621
    AddSon (sons[2], i); AddSon (sons[3], c);
19399
23622
  }
 
23623
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19400
23624
  static const char *NodeId ();
 
23625
  /** Get the name of the node. Can be compared with NodeId(). */
19401
23626
  const char *NodeName () const { return NodeId (); }
 
23627
  /** Get the number of sons. */
19402
23628
  int Sons () const { return 4; }
 
23629
  /** Get the n-th son.
 
23630
   *  \param n The index of the son.
 
23631
   *  \return The n-th son or NULL. */
19403
23632
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
23633
  /** Replace a son.
 
23634
   *  \param old_son The son to replace.
 
23635
   *  \param new_son The new son. */
19404
23636
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19405
23637
    CTree::ReplaceSon (sons, 4, old_son, new_son);
19406
23638
  }
19407
23639
   private:
19408
23640
  typedef CT_IndexExpr CCExprResolveExpr;
19409
23641
 
19410
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23642
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19411
23643
 public :
19412
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23644
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19413
23645
  typedef CT_IndexExpr CExprResolveExpr;
19414
23646
 
19415
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23647
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19416
23648
 public :
19417
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19418
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23649
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23650
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19419
23651
};
19420
23652
 
 
23653
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
23654
 *  Tree node representing a function call expression, e.g. f(i). */
19421
23655
 
19422
 
#line 19423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23656
#line 23657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19423
23657
} // closed Puma
 
23658
class CCExprResolve;
 
23659
class CExprResolve;
19424
23660
class WinIfExists;
19425
23661
class WinImportHandler;
19426
23662
class WinMacros;
19427
 
class CMatchSyntax;
19428
 
class ExtGnu;
 
23663
class WinAsm;
 
23664
class WinDeclSpecs;
 
23665
class WinMemberExplSpec;
 
23666
class WinTypeKeywords;
 
23667
class WinFriend;
19429
23668
class ExtAC;
19430
23669
class ExtACBuilderCoupling;
19431
23670
class ExtACSyntaxCoupling;
19432
23671
class ExtACTree;
19433
23672
class ExtACKeywords;
19434
 
class WinAsm;
19435
 
class WinDeclSpecs;
19436
 
class WinMemberExplSpec;
19437
 
class WinTypeKeywords;
 
23673
class ExtGnu;
19438
23674
class PragmaOnceUnitState;
19439
23675
class PragmaOnce;
19440
 
class CCExprResolve;
19441
 
class CExprResolve;
19442
 
namespace Puma {
19443
 
 
19444
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19445
 
class CT_CallExpr : public CT_Expression, public CSemObject {
19446
 
#line 19447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23676
class CMatchSyntax;
 
23677
namespace Puma {
 
23678
 
 
23679
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23680
 
 
23681
#line 23682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23682
} // closed Puma
 
23683
 
 
23684
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23685
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23686
#include "CCExprResolveH.ah"
 
23687
#endif
 
23688
namespace Puma {
 
23689
 
 
23690
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23691
 
 
23692
#line 23693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23693
} // closed Puma
 
23694
 
 
23695
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23696
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23697
#include "CExprResolveH.ah"
 
23698
#endif
 
23699
namespace Puma {
 
23700
 
 
23701
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23702
class CT_CallExpr : public CT_Call {
 
23703
#line 23704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23704
  friend class ::CCExprResolve;
 
23705
  friend class ::CExprResolve;
19447
23706
  friend class ::WinIfExists;
19448
23707
  friend class ::WinImportHandler;
19449
23708
  friend class ::WinMacros;
19450
 
  friend class ::CMatchSyntax;
19451
 
  friend class ::ExtGnu;
 
23709
  friend class ::WinAsm;
 
23710
  friend class ::WinDeclSpecs;
 
23711
  friend class ::WinMemberExplSpec;
 
23712
  friend class ::WinTypeKeywords;
 
23713
  friend class ::WinFriend;
19452
23714
  friend class ::ExtAC;
19453
23715
  friend class ::ExtACBuilderCoupling;
19454
23716
  friend class ::ExtACSyntaxCoupling;
19455
23717
  friend class ::ExtACTree;
19456
23718
  friend class ::ExtACKeywords;
19457
 
  friend class ::WinAsm;
19458
 
  friend class ::WinDeclSpecs;
19459
 
  friend class ::WinMemberExplSpec;
19460
 
  friend class ::WinTypeKeywords;
 
23719
  friend class ::ExtGnu;
19461
23720
  friend class ::PragmaOnceUnitState;
19462
23721
  friend class ::PragmaOnce;
19463
 
  friend class ::CCExprResolve;
19464
 
  friend class ::CExprResolve;
 
23722
  friend class ::CMatchSyntax;
19465
23723
 
19466
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23724
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19467
23725
 
19468
23726
  CTree *sons[2]; // expr, args
19469
23727
 
19470
23728
public:
19471
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
19472
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
23729
  /** Constructor.
 
23730
   *  \param e The expression on which the call is invoked. */
 
23731
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
23732
  /** Constructor.
 
23733
   *  \param e The expression on which the call is invoked.
 
23734
   *  \param l The argument list of the call. */
 
23735
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
23736
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19473
23737
  static const char *NodeId ();
 
23738
  /** Get the name of the node. Can be compared with NodeId(). */
19474
23739
  const char *NodeName () const { return NodeId (); }
 
23740
  /** Get the number of sons. */
19475
23741
  int Sons () const { return CTree::Sons (sons, 2); }
 
23742
  /** Get the n-th son.
 
23743
   *  \param n The index of the son.
 
23744
   *  \return The n-th son or NULL. */
19476
23745
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
23746
  /** Replace a son.
 
23747
   *  \param old_son The son to replace.
 
23748
   *  \param new_son The new son. */
19477
23749
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19478
23750
    CTree::ReplaceSon (sons, 2, old_son, new_son);
19479
23751
  }
19480
23752
  CTree *Expr () const { return sons[0]; }
19481
23753
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
19482
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
19483
23754
   private:
19484
23755
  typedef CT_CallExpr CCExprResolveExpr;
19485
23756
 
19486
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23757
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19487
23758
 public :
19488
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23759
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19489
23760
  typedef CT_CallExpr CExprResolveExpr;
19490
23761
 
19491
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23762
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19492
23763
 public :
19493
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19494
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23764
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23765
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19495
23766
};
19496
23767
 
 
23768
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
23769
 *  Tree node representing a cast expression, e.g. (int)a. */
19497
23770
 
19498
 
#line 19499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23771
#line 23772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19499
23772
} // closed Puma
 
23773
class CCExprResolve;
 
23774
class CExprResolve;
19500
23775
class WinIfExists;
19501
23776
class WinImportHandler;
19502
23777
class WinMacros;
19503
 
class CMatchSyntax;
19504
 
class ExtGnu;
 
23778
class WinAsm;
 
23779
class WinDeclSpecs;
 
23780
class WinMemberExplSpec;
 
23781
class WinTypeKeywords;
 
23782
class WinFriend;
19505
23783
class ExtAC;
19506
23784
class ExtACBuilderCoupling;
19507
23785
class ExtACSyntaxCoupling;
19508
23786
class ExtACTree;
19509
23787
class ExtACKeywords;
19510
 
class WinAsm;
19511
 
class WinDeclSpecs;
19512
 
class WinMemberExplSpec;
19513
 
class WinTypeKeywords;
 
23788
class ExtGnu;
19514
23789
class PragmaOnceUnitState;
19515
23790
class PragmaOnce;
19516
 
class CCExprResolve;
19517
 
class CExprResolve;
19518
 
namespace Puma {
19519
 
 
19520
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23791
class CMatchSyntax;
 
23792
namespace Puma {
 
23793
 
 
23794
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23795
 
 
23796
#line 23797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23797
} // closed Puma
 
23798
 
 
23799
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23800
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23801
#include "CCExprResolveH.ah"
 
23802
#endif
 
23803
namespace Puma {
 
23804
 
 
23805
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23806
 
 
23807
#line 23808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23808
} // closed Puma
 
23809
 
 
23810
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23811
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23812
#include "CExprResolveH.ah"
 
23813
#endif
 
23814
namespace Puma {
 
23815
 
 
23816
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19521
23817
class CT_CastExpr : public CT_Expression {
19522
 
#line 19523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23818
#line 23819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23819
  friend class ::CCExprResolve;
 
23820
  friend class ::CExprResolve;
19523
23821
  friend class ::WinIfExists;
19524
23822
  friend class ::WinImportHandler;
19525
23823
  friend class ::WinMacros;
19526
 
  friend class ::CMatchSyntax;
19527
 
  friend class ::ExtGnu;
 
23824
  friend class ::WinAsm;
 
23825
  friend class ::WinDeclSpecs;
 
23826
  friend class ::WinMemberExplSpec;
 
23827
  friend class ::WinTypeKeywords;
 
23828
  friend class ::WinFriend;
19528
23829
  friend class ::ExtAC;
19529
23830
  friend class ::ExtACBuilderCoupling;
19530
23831
  friend class ::ExtACSyntaxCoupling;
19531
23832
  friend class ::ExtACTree;
19532
23833
  friend class ::ExtACKeywords;
19533
 
  friend class ::WinAsm;
19534
 
  friend class ::WinDeclSpecs;
19535
 
  friend class ::WinMemberExplSpec;
19536
 
  friend class ::WinTypeKeywords;
 
23834
  friend class ::ExtGnu;
19537
23835
  friend class ::PragmaOnceUnitState;
19538
23836
  friend class ::PragmaOnce;
19539
 
  friend class ::CCExprResolve;
19540
 
  friend class ::CExprResolve;
 
23837
  friend class ::CMatchSyntax;
19541
23838
 
19542
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23839
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19543
23840
 
19544
23841
  CTree *sons[4]; // open, type, close, expr
19545
23842
 
19546
23843
public:
 
23844
  /** Constructor.
 
23845
   *  \param o Left parenthesis of the type name.
 
23846
   *  \param t The type to cast to.
 
23847
   *  \param c Right parenthesis of the type name. 
 
23848
   *  \param e The expression to cast. */
19547
23849
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
19548
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
23850
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
23851
    AddSon (sons[2], c); AddSon (sons[3], e);
19549
23852
  }
 
23853
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19550
23854
  static const char *NodeId ();
 
23855
  /** Get the name of the node. Can be compared with NodeId(). */
19551
23856
  const char *NodeName () const { return NodeId (); }
 
23857
  /** Get the number of sons. */
19552
23858
  int Sons () const { return 4; }
 
23859
  /** Get the n-th son.
 
23860
   *  \param n The index of the son.
 
23861
   *  \return The n-th son or NULL. */
19553
23862
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
23863
  /** Replace a son.
 
23864
   *  \param old_son The son to replace.
 
23865
   *  \param new_son The new son. */
19554
23866
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19555
23867
    CTree::ReplaceSon (sons, 4, old_son, new_son);
19556
23868
  }
 
23869
  /** Get the casted expression. */
19557
23870
  CTree *Expr () const { return sons[3]; }
 
23871
  /** Get the type to cast to. */
19558
23872
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
19559
23873
   private:
19560
23874
  typedef CT_CastExpr CCExprResolveExpr;
19561
23875
 
19562
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23876
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19563
23877
 public :
19564
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23878
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19565
23879
  typedef CT_CastExpr CExprResolveExpr;
19566
23880
 
19567
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23881
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19568
23882
 public :
19569
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19570
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23883
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23884
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19571
23885
};
19572
23886
 
 
23887
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
23888
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
19573
23889
 
19574
 
#line 19575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23890
#line 23891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19575
23891
} // closed Puma
 
23892
class CCExprResolve;
 
23893
class CExprResolve;
19576
23894
class WinIfExists;
19577
23895
class WinImportHandler;
19578
23896
class WinMacros;
19579
 
class CMatchSyntax;
19580
 
class ExtGnu;
 
23897
class WinAsm;
 
23898
class WinDeclSpecs;
 
23899
class WinMemberExplSpec;
 
23900
class WinTypeKeywords;
 
23901
class WinFriend;
19581
23902
class ExtAC;
19582
23903
class ExtACBuilderCoupling;
19583
23904
class ExtACSyntaxCoupling;
19584
23905
class ExtACTree;
19585
23906
class ExtACKeywords;
19586
 
class WinAsm;
19587
 
class WinDeclSpecs;
19588
 
class WinMemberExplSpec;
19589
 
class WinTypeKeywords;
 
23907
class ExtGnu;
19590
23908
class PragmaOnceUnitState;
19591
23909
class PragmaOnce;
19592
 
class CCExprResolve;
19593
 
class CExprResolve;
19594
 
namespace Puma {
19595
 
 
19596
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23910
class CMatchSyntax;
 
23911
namespace Puma {
 
23912
 
 
23913
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23914
 
 
23915
#line 23916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23916
} // closed Puma
 
23917
 
 
23918
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23919
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23920
#include "CCExprResolveH.ah"
 
23921
#endif
 
23922
namespace Puma {
 
23923
 
 
23924
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23925
 
 
23926
#line 23927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23927
} // closed Puma
 
23928
 
 
23929
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23930
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23931
#include "CExprResolveH.ah"
 
23932
#endif
 
23933
namespace Puma {
 
23934
 
 
23935
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19597
23936
class CT_StaticCast : public CT_Expression {
19598
 
#line 19599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
23937
#line 23938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
23938
  friend class ::CCExprResolve;
 
23939
  friend class ::CExprResolve;
19599
23940
  friend class ::WinIfExists;
19600
23941
  friend class ::WinImportHandler;
19601
23942
  friend class ::WinMacros;
19602
 
  friend class ::CMatchSyntax;
19603
 
  friend class ::ExtGnu;
 
23943
  friend class ::WinAsm;
 
23944
  friend class ::WinDeclSpecs;
 
23945
  friend class ::WinMemberExplSpec;
 
23946
  friend class ::WinTypeKeywords;
 
23947
  friend class ::WinFriend;
19604
23948
  friend class ::ExtAC;
19605
23949
  friend class ::ExtACBuilderCoupling;
19606
23950
  friend class ::ExtACSyntaxCoupling;
19607
23951
  friend class ::ExtACTree;
19608
23952
  friend class ::ExtACKeywords;
19609
 
  friend class ::WinAsm;
19610
 
  friend class ::WinDeclSpecs;
19611
 
  friend class ::WinMemberExplSpec;
19612
 
  friend class ::WinTypeKeywords;
 
23953
  friend class ::ExtGnu;
19613
23954
  friend class ::PragmaOnceUnitState;
19614
23955
  friend class ::PragmaOnce;
19615
 
  friend class ::CCExprResolve;
19616
 
  friend class ::CExprResolve;
 
23956
  friend class ::CMatchSyntax;
19617
23957
 
19618
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23958
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19619
23959
 
19620
23960
  CTree *sons[5]; // cast, open, type, close, expr
19621
23961
 
19622
23962
public:
 
23963
  /** Constructor.
 
23964
   *  \param cst The cast operator, i.e. 'static_cast'.
 
23965
   *  \param o Left arrow bracket of the type name.
 
23966
   *  \param t The type to cast to.
 
23967
   *  \param c Right array bracket of the type name.
 
23968
   *  \param e The expression to cast. */
19623
23969
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
19624
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
23970
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
23971
    AddSon (sons[3], c); AddSon (sons[4], e);
19625
23972
  }
 
23973
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19626
23974
  static const char *NodeId ();
 
23975
  /** Get the name of the node. Can be compared with NodeId(). */
19627
23976
  const char *NodeName () const { return NodeId (); }
 
23977
  /** Get the number of sons. */
19628
23978
  int Sons () const { return 5; }
 
23979
  /** Get the n-th son.
 
23980
   *  \param n The index of the son.
 
23981
   *  \return The n-th son or NULL. */
19629
23982
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
23983
  /** Replace a son.
 
23984
   *  \param old_son The son to replace.
 
23985
   *  \param new_son The new son. */
19630
23986
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19631
23987
    CTree::ReplaceSon (sons, 5, old_son, new_son);
19632
23988
  }
 
23989
  /** Get the casted expression. */
19633
23990
  CTree *Expr () const { return sons[4]; }
 
23991
  /** Get the type to cast to. */
19634
23992
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
19635
23993
   private:
19636
23994
  typedef CT_StaticCast CCExprResolveExpr;
19637
23995
 
19638
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23996
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19639
23997
 public :
19640
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
23998
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19641
23999
  typedef CT_StaticCast CExprResolveExpr;
19642
24000
 
19643
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24001
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19644
24002
 public :
19645
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19646
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24003
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24004
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19647
24005
};
19648
24006
 
 
24007
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
24008
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
19649
24009
 
19650
 
#line 19651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24010
#line 24011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19651
24011
} // closed Puma
 
24012
class CCExprResolve;
 
24013
class CExprResolve;
19652
24014
class WinIfExists;
19653
24015
class WinImportHandler;
19654
24016
class WinMacros;
19655
 
class CMatchSyntax;
19656
 
class ExtGnu;
 
24017
class WinAsm;
 
24018
class WinDeclSpecs;
 
24019
class WinMemberExplSpec;
 
24020
class WinTypeKeywords;
 
24021
class WinFriend;
19657
24022
class ExtAC;
19658
24023
class ExtACBuilderCoupling;
19659
24024
class ExtACSyntaxCoupling;
19660
24025
class ExtACTree;
19661
24026
class ExtACKeywords;
19662
 
class WinAsm;
19663
 
class WinDeclSpecs;
19664
 
class WinMemberExplSpec;
19665
 
class WinTypeKeywords;
 
24027
class ExtGnu;
19666
24028
class PragmaOnceUnitState;
19667
24029
class PragmaOnce;
19668
 
class CCExprResolve;
19669
 
class CExprResolve;
19670
 
namespace Puma {
19671
 
 
19672
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24030
class CMatchSyntax;
 
24031
namespace Puma {
 
24032
 
 
24033
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24034
 
 
24035
#line 24036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24036
} // closed Puma
 
24037
 
 
24038
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24039
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24040
#include "CCExprResolveH.ah"
 
24041
#endif
 
24042
namespace Puma {
 
24043
 
 
24044
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24045
 
 
24046
#line 24047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24047
} // closed Puma
 
24048
 
 
24049
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24050
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24051
#include "CExprResolveH.ah"
 
24052
#endif
 
24053
namespace Puma {
 
24054
 
 
24055
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19673
24056
class CT_ConstCast : public CT_StaticCast {
19674
 
#line 19675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24057
#line 24058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24058
  friend class ::CCExprResolve;
 
24059
  friend class ::CExprResolve;
19675
24060
  friend class ::WinIfExists;
19676
24061
  friend class ::WinImportHandler;
19677
24062
  friend class ::WinMacros;
19678
 
  friend class ::CMatchSyntax;
19679
 
  friend class ::ExtGnu;
 
24063
  friend class ::WinAsm;
 
24064
  friend class ::WinDeclSpecs;
 
24065
  friend class ::WinMemberExplSpec;
 
24066
  friend class ::WinTypeKeywords;
 
24067
  friend class ::WinFriend;
19680
24068
  friend class ::ExtAC;
19681
24069
  friend class ::ExtACBuilderCoupling;
19682
24070
  friend class ::ExtACSyntaxCoupling;
19683
24071
  friend class ::ExtACTree;
19684
24072
  friend class ::ExtACKeywords;
19685
 
  friend class ::WinAsm;
19686
 
  friend class ::WinDeclSpecs;
19687
 
  friend class ::WinMemberExplSpec;
19688
 
  friend class ::WinTypeKeywords;
 
24073
  friend class ::ExtGnu;
19689
24074
  friend class ::PragmaOnceUnitState;
19690
24075
  friend class ::PragmaOnce;
19691
 
  friend class ::CCExprResolve;
19692
 
  friend class ::CExprResolve;
 
24076
  friend class ::CMatchSyntax;
19693
24077
 
19694
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24078
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19695
24079
 
19696
24080
public:
 
24081
  /** Constructor.
 
24082
   *  \param cst The cast operator, i.e. 'const_cast'.
 
24083
   *  \param o Left arrow bracket of the type name.
 
24084
   *  \param t The type to cast to.
 
24085
   *  \param c Right array bracket of the type name.
 
24086
   *  \param e The expression to cast. */
19697
24087
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
19698
24088
    CT_StaticCast (cst, o, t, c, e) {}
 
24089
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19699
24090
  static const char *NodeId ();
 
24091
  /** Get the name of the node. Can be compared with NodeId(). */
19700
24092
  const char *NodeName () const { return NodeId (); }
19701
24093
   private:
19702
24094
  typedef CT_ConstCast CCExprResolveExpr;
19703
24095
 
19704
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24096
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19705
24097
 public :
19706
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
24098
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19707
24099
  typedef CT_ConstCast CExprResolveExpr;
19708
24100
 
19709
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24101
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19710
24102
 public :
19711
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19712
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24103
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24104
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19713
24105
};
19714
24106
 
 
24107
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
24108
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
19715
24109
 
19716
 
#line 19717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24110
#line 24111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19717
24111
} // closed Puma
 
24112
class CCExprResolve;
 
24113
class CExprResolve;
19718
24114
class WinIfExists;
19719
24115
class WinImportHandler;
19720
24116
class WinMacros;
19721
 
class CMatchSyntax;
19722
 
class ExtGnu;
 
24117
class WinAsm;
 
24118
class WinDeclSpecs;
 
24119
class WinMemberExplSpec;
 
24120
class WinTypeKeywords;
 
24121
class WinFriend;
19723
24122
class ExtAC;
19724
24123
class ExtACBuilderCoupling;
19725
24124
class ExtACSyntaxCoupling;
19726
24125
class ExtACTree;
19727
24126
class ExtACKeywords;
19728
 
class WinAsm;
19729
 
class WinDeclSpecs;
19730
 
class WinMemberExplSpec;
19731
 
class WinTypeKeywords;
 
24127
class ExtGnu;
19732
24128
class PragmaOnceUnitState;
19733
24129
class PragmaOnce;
19734
 
class CCExprResolve;
19735
 
class CExprResolve;
19736
 
namespace Puma {
19737
 
 
19738
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24130
class CMatchSyntax;
 
24131
namespace Puma {
 
24132
 
 
24133
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24134
 
 
24135
#line 24136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24136
} // closed Puma
 
24137
 
 
24138
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24139
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24140
#include "CCExprResolveH.ah"
 
24141
#endif
 
24142
namespace Puma {
 
24143
 
 
24144
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24145
 
 
24146
#line 24147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24147
} // closed Puma
 
24148
 
 
24149
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24150
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24151
#include "CExprResolveH.ah"
 
24152
#endif
 
24153
namespace Puma {
 
24154
 
 
24155
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19739
24156
class CT_ReintCast : public CT_StaticCast {
19740
 
#line 19741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24157
#line 24158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24158
  friend class ::CCExprResolve;
 
24159
  friend class ::CExprResolve;
19741
24160
  friend class ::WinIfExists;
19742
24161
  friend class ::WinImportHandler;
19743
24162
  friend class ::WinMacros;
19744
 
  friend class ::CMatchSyntax;
19745
 
  friend class ::ExtGnu;
 
24163
  friend class ::WinAsm;
 
24164
  friend class ::WinDeclSpecs;
 
24165
  friend class ::WinMemberExplSpec;
 
24166
  friend class ::WinTypeKeywords;
 
24167
  friend class ::WinFriend;
19746
24168
  friend class ::ExtAC;
19747
24169
  friend class ::ExtACBuilderCoupling;
19748
24170
  friend class ::ExtACSyntaxCoupling;
19749
24171
  friend class ::ExtACTree;
19750
24172
  friend class ::ExtACKeywords;
19751
 
  friend class ::WinAsm;
19752
 
  friend class ::WinDeclSpecs;
19753
 
  friend class ::WinMemberExplSpec;
19754
 
  friend class ::WinTypeKeywords;
 
24173
  friend class ::ExtGnu;
19755
24174
  friend class ::PragmaOnceUnitState;
19756
24175
  friend class ::PragmaOnce;
19757
 
  friend class ::CCExprResolve;
19758
 
  friend class ::CExprResolve;
 
24176
  friend class ::CMatchSyntax;
19759
24177
 
19760
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24178
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19761
24179
 
19762
24180
public:
 
24181
  /** Constructor.
 
24182
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
24183
   *  \param o Left arrow bracket of the type name.
 
24184
   *  \param t The type to cast to.
 
24185
   *  \param c Right array bracket of the type name.
 
24186
   *  \param e The expression to cast. */
19763
24187
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
19764
24188
    CT_StaticCast (cst, o, t, c, e) {}
 
24189
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19765
24190
  static const char *NodeId ();
 
24191
  /** Get the name of the node. Can be compared with NodeId(). */
19766
24192
  const char *NodeName () const { return NodeId (); }
19767
24193
   private:
19768
24194
  typedef CT_ReintCast CCExprResolveExpr;
19769
24195
 
19770
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24196
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19771
24197
 public :
19772
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
24198
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19773
24199
  typedef CT_ReintCast CExprResolveExpr;
19774
24200
 
19775
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24201
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19776
24202
 public :
19777
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19778
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24203
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24204
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19779
24205
};
19780
24206
 
 
24207
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
24208
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
19781
24209
 
19782
 
#line 19783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24210
#line 24211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19783
24211
} // closed Puma
 
24212
class CCExprResolve;
 
24213
class CExprResolve;
19784
24214
class WinIfExists;
19785
24215
class WinImportHandler;
19786
24216
class WinMacros;
19787
 
class CMatchSyntax;
19788
 
class ExtGnu;
 
24217
class WinAsm;
 
24218
class WinDeclSpecs;
 
24219
class WinMemberExplSpec;
 
24220
class WinTypeKeywords;
 
24221
class WinFriend;
19789
24222
class ExtAC;
19790
24223
class ExtACBuilderCoupling;
19791
24224
class ExtACSyntaxCoupling;
19792
24225
class ExtACTree;
19793
24226
class ExtACKeywords;
19794
 
class WinAsm;
19795
 
class WinDeclSpecs;
19796
 
class WinMemberExplSpec;
19797
 
class WinTypeKeywords;
 
24227
class ExtGnu;
19798
24228
class PragmaOnceUnitState;
19799
24229
class PragmaOnce;
19800
 
class CCExprResolve;
19801
 
class CExprResolve;
19802
 
namespace Puma {
19803
 
 
19804
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24230
class CMatchSyntax;
 
24231
namespace Puma {
 
24232
 
 
24233
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24234
 
 
24235
#line 24236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24236
} // closed Puma
 
24237
 
 
24238
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24239
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24240
#include "CCExprResolveH.ah"
 
24241
#endif
 
24242
namespace Puma {
 
24243
 
 
24244
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24245
 
 
24246
#line 24247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24247
} // closed Puma
 
24248
 
 
24249
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24250
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24251
#include "CExprResolveH.ah"
 
24252
#endif
 
24253
namespace Puma {
 
24254
 
 
24255
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19805
24256
class CT_DynamicCast : public CT_StaticCast {
19806
 
#line 19807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24257
#line 24258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24258
  friend class ::CCExprResolve;
 
24259
  friend class ::CExprResolve;
19807
24260
  friend class ::WinIfExists;
19808
24261
  friend class ::WinImportHandler;
19809
24262
  friend class ::WinMacros;
19810
 
  friend class ::CMatchSyntax;
19811
 
  friend class ::ExtGnu;
 
24263
  friend class ::WinAsm;
 
24264
  friend class ::WinDeclSpecs;
 
24265
  friend class ::WinMemberExplSpec;
 
24266
  friend class ::WinTypeKeywords;
 
24267
  friend class ::WinFriend;
19812
24268
  friend class ::ExtAC;
19813
24269
  friend class ::ExtACBuilderCoupling;
19814
24270
  friend class ::ExtACSyntaxCoupling;
19815
24271
  friend class ::ExtACTree;
19816
24272
  friend class ::ExtACKeywords;
19817
 
  friend class ::WinAsm;
19818
 
  friend class ::WinDeclSpecs;
19819
 
  friend class ::WinMemberExplSpec;
19820
 
  friend class ::WinTypeKeywords;
 
24273
  friend class ::ExtGnu;
19821
24274
  friend class ::PragmaOnceUnitState;
19822
24275
  friend class ::PragmaOnce;
19823
 
  friend class ::CCExprResolve;
19824
 
  friend class ::CExprResolve;
 
24276
  friend class ::CMatchSyntax;
19825
24277
 
19826
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24278
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19827
24279
 
19828
24280
public:
 
24281
  /** Constructor.
 
24282
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
24283
   *  \param o Left arrow bracket of the type name.
 
24284
   *  \param t The type to cast to.
 
24285
   *  \param c Right array bracket of the type name.
 
24286
   *  \param e The expression to cast. */
19829
24287
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
19830
24288
    CT_StaticCast (cst, o, t, c, e) {}
 
24289
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19831
24290
  static const char *NodeId ();
 
24291
  /** Get the name of the node. Can be compared with NodeId(). */
19832
24292
  const char *NodeName () const { return NodeId (); }
19833
24293
   private:
19834
24294
  typedef CT_DynamicCast CCExprResolveExpr;
19835
24295
 
19836
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24296
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19837
24297
 public :
19838
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
24298
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19839
24299
  typedef CT_DynamicCast CExprResolveExpr;
19840
24300
 
19841
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24301
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19842
24302
 public :
19843
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19844
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24303
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24304
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19845
24305
};
19846
24306
 
 
24307
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
24308
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
24309
 *  where 1.2 is implicitely casted from float to int. */
19847
24310
 
19848
 
#line 19849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24311
#line 24312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19849
24312
} // closed Puma
 
24313
class CCExprResolve;
 
24314
class CExprResolve;
19850
24315
class WinIfExists;
19851
24316
class WinImportHandler;
19852
24317
class WinMacros;
19853
 
class CMatchSyntax;
19854
 
class ExtGnu;
 
24318
class WinAsm;
 
24319
class WinDeclSpecs;
 
24320
class WinMemberExplSpec;
 
24321
class WinTypeKeywords;
 
24322
class WinFriend;
19855
24323
class ExtAC;
19856
24324
class ExtACBuilderCoupling;
19857
24325
class ExtACSyntaxCoupling;
19858
24326
class ExtACTree;
19859
24327
class ExtACKeywords;
19860
 
class WinAsm;
19861
 
class WinDeclSpecs;
19862
 
class WinMemberExplSpec;
19863
 
class WinTypeKeywords;
 
24328
class ExtGnu;
19864
24329
class PragmaOnceUnitState;
19865
24330
class PragmaOnce;
19866
 
class CCExprResolve;
19867
 
class CExprResolve;
19868
 
namespace Puma {
19869
 
 
19870
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24331
class CMatchSyntax;
 
24332
namespace Puma {
 
24333
 
 
24334
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24335
 
 
24336
#line 24337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24337
} // closed Puma
 
24338
 
 
24339
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24340
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24341
#include "CCExprResolveH.ah"
 
24342
#endif
 
24343
namespace Puma {
 
24344
 
 
24345
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24346
 
 
24347
#line 24348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24348
} // closed Puma
 
24349
 
 
24350
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24351
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24352
#include "CExprResolveH.ah"
 
24353
#endif
 
24354
namespace Puma {
 
24355
 
 
24356
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19871
24357
class CT_ImplicitCast : public CT_Expression {
19872
 
#line 19873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24358
#line 24359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24359
  friend class ::CCExprResolve;
 
24360
  friend class ::CExprResolve;
19873
24361
  friend class ::WinIfExists;
19874
24362
  friend class ::WinImportHandler;
19875
24363
  friend class ::WinMacros;
19876
 
  friend class ::CMatchSyntax;
19877
 
  friend class ::ExtGnu;
 
24364
  friend class ::WinAsm;
 
24365
  friend class ::WinDeclSpecs;
 
24366
  friend class ::WinMemberExplSpec;
 
24367
  friend class ::WinTypeKeywords;
 
24368
  friend class ::WinFriend;
19878
24369
  friend class ::ExtAC;
19879
24370
  friend class ::ExtACBuilderCoupling;
19880
24371
  friend class ::ExtACSyntaxCoupling;
19881
24372
  friend class ::ExtACTree;
19882
24373
  friend class ::ExtACKeywords;
19883
 
  friend class ::WinAsm;
19884
 
  friend class ::WinDeclSpecs;
19885
 
  friend class ::WinMemberExplSpec;
19886
 
  friend class ::WinTypeKeywords;
 
24374
  friend class ::ExtGnu;
19887
24375
  friend class ::PragmaOnceUnitState;
19888
24376
  friend class ::PragmaOnce;
19889
 
  friend class ::CCExprResolve;
19890
 
  friend class ::CExprResolve;
 
24377
  friend class ::CMatchSyntax;
19891
24378
 
19892
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24379
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19893
24380
 
19894
24381
  CTree *_expr; // casted expression
19895
24382
 
19896
24383
public:
19897
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
24384
  /** Constructor.
 
24385
   *  \param e The expression that is implicitely casted. */
 
24386
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
24387
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19898
24388
  static const char *NodeId ();
 
24389
  /** Get the name of the node. Can be compared with NodeId(). */
19899
24390
  const char *NodeName () const { return NodeId (); }
 
24391
  /** Get the number of sons. */
19900
24392
  int Sons () const { return 1; }
 
24393
  /** Get the n-th son.
 
24394
   *  \param n The index of the son.
 
24395
   *  \return The n-th son or NULL. */
19901
24396
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
24397
  /** Get the casted expression. */
19902
24398
  CTree *Expr () const { return _expr; }
 
24399
  /** Replace a son.
 
24400
   *  \param old_son The son to replace.
 
24401
   *  \param new_son The new son. */
19903
24402
  void ReplaceSon (CTree *old_son, CTree *new_son) 
19904
 
   { if (old_son == _expr) _expr = new_son; }
 
24403
   { CTree::ReplaceSon (_expr, old_son, new_son); }
19905
24404
   private:
19906
24405
  typedef CT_ImplicitCast CCExprResolveExpr;
19907
24406
 
19908
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24407
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19909
24408
 public :
19910
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
24409
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19911
24410
  typedef CT_ImplicitCast CExprResolveExpr;
19912
24411
 
19913
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24412
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19914
24413
 public :
19915
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19916
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24414
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24415
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19917
24416
};
19918
24417
 
 
24418
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
24419
 *  Tree node representing a typeid expression, e.g. typeid(X). */
19919
24420
 
19920
 
#line 19921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24421
#line 24422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19921
24422
} // closed Puma
 
24423
class CCExprResolve;
 
24424
class CExprResolve;
19922
24425
class WinIfExists;
19923
24426
class WinImportHandler;
19924
24427
class WinMacros;
19925
 
class CMatchSyntax;
19926
 
class ExtGnu;
 
24428
class WinAsm;
 
24429
class WinDeclSpecs;
 
24430
class WinMemberExplSpec;
 
24431
class WinTypeKeywords;
 
24432
class WinFriend;
19927
24433
class ExtAC;
19928
24434
class ExtACBuilderCoupling;
19929
24435
class ExtACSyntaxCoupling;
19930
24436
class ExtACTree;
19931
24437
class ExtACKeywords;
19932
 
class WinAsm;
19933
 
class WinDeclSpecs;
19934
 
class WinMemberExplSpec;
19935
 
class WinTypeKeywords;
 
24438
class ExtGnu;
19936
24439
class PragmaOnceUnitState;
19937
24440
class PragmaOnce;
19938
 
class CCExprResolve;
19939
 
class CExprResolve;
19940
 
namespace Puma {
19941
 
 
19942
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24441
class CMatchSyntax;
 
24442
namespace Puma {
 
24443
 
 
24444
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24445
 
 
24446
#line 24447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24447
} // closed Puma
 
24448
 
 
24449
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24450
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24451
#include "CCExprResolveH.ah"
 
24452
#endif
 
24453
namespace Puma {
 
24454
 
 
24455
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24456
 
 
24457
#line 24458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24458
} // closed Puma
 
24459
 
 
24460
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24461
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24462
#include "CExprResolveH.ah"
 
24463
#endif
 
24464
namespace Puma {
 
24465
 
 
24466
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19943
24467
class CT_TypeidExpr : public CT_Expression {
19944
 
#line 19945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24468
#line 24469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24469
  friend class ::CCExprResolve;
 
24470
  friend class ::CExprResolve;
19945
24471
  friend class ::WinIfExists;
19946
24472
  friend class ::WinImportHandler;
19947
24473
  friend class ::WinMacros;
19948
 
  friend class ::CMatchSyntax;
19949
 
  friend class ::ExtGnu;
 
24474
  friend class ::WinAsm;
 
24475
  friend class ::WinDeclSpecs;
 
24476
  friend class ::WinMemberExplSpec;
 
24477
  friend class ::WinTypeKeywords;
 
24478
  friend class ::WinFriend;
19950
24479
  friend class ::ExtAC;
19951
24480
  friend class ::ExtACBuilderCoupling;
19952
24481
  friend class ::ExtACSyntaxCoupling;
19953
24482
  friend class ::ExtACTree;
19954
24483
  friend class ::ExtACKeywords;
19955
 
  friend class ::WinAsm;
19956
 
  friend class ::WinDeclSpecs;
19957
 
  friend class ::WinMemberExplSpec;
19958
 
  friend class ::WinTypeKeywords;
 
24484
  friend class ::ExtGnu;
19959
24485
  friend class ::PragmaOnceUnitState;
19960
24486
  friend class ::PragmaOnce;
19961
 
  friend class ::CCExprResolve;
19962
 
  friend class ::CExprResolve;
 
24487
  friend class ::CMatchSyntax;
19963
24488
 
19964
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24489
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19965
24490
 
19966
24491
  CTree *sons[4]; // typeid, open, type_id/expr, close
19967
24492
 
19968
24493
public:
 
24494
  /** Constructor.
 
24495
   *  \param tid The 'typeid' operator.
 
24496
   *  \param o The left parenthesis of the type name or expression.
 
24497
   *  \param e The expression or type name for which to get the type identifier.
 
24498
   *  \param c The right parenthesis of the type name or expression. */
19969
24499
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
19970
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
24500
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
24501
    AddSon (sons[2], e); AddSon (sons[3], c);
19971
24502
  }
 
24503
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19972
24504
  static const char *NodeId ();
 
24505
  /** Get the name of the node. Can be compared with NodeId(). */
19973
24506
  const char *NodeName () const { return NodeId (); }
 
24507
  /** Get the number of sons. */
19974
24508
  int Sons () const { return 4; }
 
24509
  /** Get the n-th son.
 
24510
   *  \param n The index of the son.
 
24511
   *  \return The n-th son or NULL. */
19975
24512
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
24513
  /** Replace a son.
 
24514
   *  \param old_son The son to replace.
 
24515
   *  \param new_son The new son. */
19976
24516
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19977
24517
    CTree::ReplaceSon (sons, 4, old_son, new_son);
19978
24518
  }
 
24519
  /** Get the typeid argument, i.e. the expression or type name for
 
24520
   *  which to get the type identifier. */
19979
24521
  CTree *Arg () const { return sons[2]; }
19980
24522
   private:
19981
24523
  typedef CT_TypeidExpr CCExprResolveExpr;
19982
24524
 
19983
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24525
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19984
24526
 public :
19985
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
24527
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19986
24528
  typedef CT_TypeidExpr CExprResolveExpr;
19987
24529
 
19988
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24530
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19989
24531
 public :
19990
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19991
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24532
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24533
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19992
24534
};
19993
24535
 
 
24536
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
24537
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
19994
24538
 
19995
 
#line 19996 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24539
#line 24540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
19996
24540
} // closed Puma
 
24541
class CCExprResolve;
 
24542
class CExprResolve;
19997
24543
class WinIfExists;
19998
24544
class WinImportHandler;
19999
24545
class WinMacros;
20000
 
class CMatchSyntax;
20001
 
class ExtGnu;
 
24546
class WinAsm;
 
24547
class WinDeclSpecs;
 
24548
class WinMemberExplSpec;
 
24549
class WinTypeKeywords;
 
24550
class WinFriend;
20002
24551
class ExtAC;
20003
24552
class ExtACBuilderCoupling;
20004
24553
class ExtACSyntaxCoupling;
20005
24554
class ExtACTree;
20006
24555
class ExtACKeywords;
20007
 
class WinAsm;
20008
 
class WinDeclSpecs;
20009
 
class WinMemberExplSpec;
20010
 
class WinTypeKeywords;
 
24556
class ExtGnu;
20011
24557
class PragmaOnceUnitState;
20012
24558
class PragmaOnce;
20013
 
class CCExprResolve;
20014
 
class CExprResolve;
20015
 
namespace Puma {
20016
 
 
20017
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24559
class CMatchSyntax;
 
24560
namespace Puma {
 
24561
 
 
24562
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24563
 
 
24564
#line 24565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24565
} // closed Puma
 
24566
 
 
24567
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24568
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24569
#include "CCExprResolveH.ah"
 
24570
#endif
 
24571
namespace Puma {
 
24572
 
 
24573
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24574
 
 
24575
#line 24576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24576
} // closed Puma
 
24577
 
 
24578
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24579
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24580
#include "CExprResolveH.ah"
 
24581
#endif
 
24582
namespace Puma {
 
24583
 
 
24584
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20018
24585
class CT_SizeofExpr : public CT_Expression {
20019
 
#line 20020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24586
#line 24587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24587
  friend class ::CCExprResolve;
 
24588
  friend class ::CExprResolve;
20020
24589
  friend class ::WinIfExists;
20021
24590
  friend class ::WinImportHandler;
20022
24591
  friend class ::WinMacros;
20023
 
  friend class ::CMatchSyntax;
20024
 
  friend class ::ExtGnu;
 
24592
  friend class ::WinAsm;
 
24593
  friend class ::WinDeclSpecs;
 
24594
  friend class ::WinMemberExplSpec;
 
24595
  friend class ::WinTypeKeywords;
 
24596
  friend class ::WinFriend;
20025
24597
  friend class ::ExtAC;
20026
24598
  friend class ::ExtACBuilderCoupling;
20027
24599
  friend class ::ExtACSyntaxCoupling;
20028
24600
  friend class ::ExtACTree;
20029
24601
  friend class ::ExtACKeywords;
20030
 
  friend class ::WinAsm;
20031
 
  friend class ::WinDeclSpecs;
20032
 
  friend class ::WinMemberExplSpec;
20033
 
  friend class ::WinTypeKeywords;
 
24602
  friend class ::ExtGnu;
20034
24603
  friend class ::PragmaOnceUnitState;
20035
24604
  friend class ::PragmaOnce;
20036
 
  friend class ::CCExprResolve;
20037
 
  friend class ::CExprResolve;
 
24605
  friend class ::CMatchSyntax;
20038
24606
 
20039
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24607
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20040
24608
 
20041
24609
  CTree *sons[5]; // key, open, type, close, expr
20042
24610
 
20043
24611
public:
 
24612
  /** Constructor.
 
24613
   *  \param k The 'sizeof' keyword.
 
24614
   *  \param o Left parenthesis around the type name.
 
24615
   *  \param t The type from which to get the size.
 
24616
   *  \param c Right parenthesis around the type name. */
20044
24617
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
20045
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
24618
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
24619
    AddSon (sons[3], c); AddSon (sons[4], 0);
20046
24620
  }
 
24621
  /** Constructor.
 
24622
   *  \param k The 'sizeof' keyword.
 
24623
   *  \param e The expression from which to get the size. */
20047
24624
  CT_SizeofExpr (CTree *k, CTree *e) {
20048
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
24625
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
24626
    AddSon (sons[3], 0); AddSon (sons[4], e);
20049
24627
  }
 
24628
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20050
24629
  static const char *NodeId ();
 
24630
  /** Get the name of the node. Can be compared with NodeId(). */
20051
24631
  const char *NodeName () const { return NodeId (); }
 
24632
  /** Get the number of sons. */
20052
24633
  int Sons () const { return CTree::Sons (sons, 5); }
 
24634
  /** Get the n-th son.
 
24635
   *  \param n The index of the son.
 
24636
   *  \return The n-th son or NULL. */
20053
24637
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
24638
  /** Replace a son.
 
24639
   *  \param old_son The son to replace.
 
24640
   *  \param new_son The new son. */
20054
24641
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20055
24642
    CTree::ReplaceSon (sons, 5, old_son, new_son);
20056
24643
  }
 
24644
  /** Get the expression. */
20057
24645
  CTree *Expr () const { return sons[4]; }
 
24646
  /** Get the type name. */
20058
24647
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
20059
24648
   private:
20060
24649
  typedef CT_SizeofExpr CCExprResolveExpr;
20061
24650
 
20062
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24651
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20063
24652
 public :
20064
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
24653
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20065
24654
  typedef CT_SizeofExpr CExprResolveExpr;
20066
24655
 
20067
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24656
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20068
24657
 public :
20069
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20070
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24658
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24659
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20071
24660
};
20072
24661
 
 
24662
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
24663
 *  Tree node representing an index designator, i.e. [1]. */
20073
24664
 
20074
 
#line 20075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24665
#line 24666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20075
24666
} // closed Puma
 
24667
class CCExprResolve;
 
24668
class CExprResolve;
20076
24669
class WinIfExists;
20077
24670
class WinImportHandler;
20078
24671
class WinMacros;
20079
 
class CMatchSyntax;
20080
 
class ExtGnu;
 
24672
class WinAsm;
 
24673
class WinDeclSpecs;
 
24674
class WinMemberExplSpec;
 
24675
class WinTypeKeywords;
 
24676
class WinFriend;
20081
24677
class ExtAC;
20082
24678
class ExtACBuilderCoupling;
20083
24679
class ExtACSyntaxCoupling;
20084
24680
class ExtACTree;
20085
24681
class ExtACKeywords;
20086
 
class WinAsm;
20087
 
class WinDeclSpecs;
20088
 
class WinMemberExplSpec;
20089
 
class WinTypeKeywords;
 
24682
class ExtGnu;
20090
24683
class PragmaOnceUnitState;
20091
24684
class PragmaOnce;
20092
 
class CCExprResolve;
20093
 
class CExprResolve;
20094
 
namespace Puma {
20095
 
 
20096
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24685
class CMatchSyntax;
 
24686
namespace Puma {
 
24687
 
 
24688
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24689
 
 
24690
#line 24691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24691
} // closed Puma
 
24692
 
 
24693
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24694
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24695
#include "CCExprResolveH.ah"
 
24696
#endif
 
24697
namespace Puma {
 
24698
 
 
24699
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24700
 
 
24701
#line 24702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24702
} // closed Puma
 
24703
 
 
24704
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24705
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24706
#include "CExprResolveH.ah"
 
24707
#endif
 
24708
namespace Puma {
 
24709
 
 
24710
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20097
24711
class CT_IndexDesignator : public CT_Expression {
20098
 
#line 20099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24712
#line 24713 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24713
  friend class ::CCExprResolve;
 
24714
  friend class ::CExprResolve;
20099
24715
  friend class ::WinIfExists;
20100
24716
  friend class ::WinImportHandler;
20101
24717
  friend class ::WinMacros;
20102
 
  friend class ::CMatchSyntax;
20103
 
  friend class ::ExtGnu;
 
24718
  friend class ::WinAsm;
 
24719
  friend class ::WinDeclSpecs;
 
24720
  friend class ::WinMemberExplSpec;
 
24721
  friend class ::WinTypeKeywords;
 
24722
  friend class ::WinFriend;
20104
24723
  friend class ::ExtAC;
20105
24724
  friend class ::ExtACBuilderCoupling;
20106
24725
  friend class ::ExtACSyntaxCoupling;
20107
24726
  friend class ::ExtACTree;
20108
24727
  friend class ::ExtACKeywords;
20109
 
  friend class ::WinAsm;
20110
 
  friend class ::WinDeclSpecs;
20111
 
  friend class ::WinMemberExplSpec;
20112
 
  friend class ::WinTypeKeywords;
 
24728
  friend class ::ExtGnu;
20113
24729
  friend class ::PragmaOnceUnitState;
20114
24730
  friend class ::PragmaOnce;
20115
 
  friend class ::CCExprResolve;
20116
 
  friend class ::CExprResolve;
 
24731
  friend class ::CMatchSyntax;
20117
24732
 
20118
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24733
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20119
24734
 
20120
24735
  CTree *sons[3]; // open, index, close
20121
24736
 
20122
24737
public:
 
24738
  /** Constructor.
 
24739
   *  \param o Left bracket of the index designator.
 
24740
   *  \param i The index expression.
 
24741
   *  \param c Right bracket of the index designator. */
20123
24742
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
20124
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
24743
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
20125
24744
  }
 
24745
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20126
24746
  static const char *NodeId ();
 
24747
  /** Get the name of the node. Can be compared with NodeId(). */
20127
24748
  const char *NodeName () const { return NodeId (); }
 
24749
  /** Get the number of sons. */
20128
24750
  int Sons () const { return 3; }
 
24751
  /** Get the n-th son.
 
24752
   *  \param n The index of the son.
 
24753
   *  \return The n-th son or NULL. */
20129
24754
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24755
  /** Replace a son.
 
24756
   *  \param old_son The son to replace.
 
24757
   *  \param new_son The new son. */
20130
24758
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20131
24759
    CTree::ReplaceSon (sons, 3, old_son, new_son);
20132
24760
  }
20133
24761
   private:
20134
24762
  typedef CT_IndexDesignator CCExprResolveExpr;
20135
24763
 
20136
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24764
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20137
24765
 public :
20138
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
24766
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20139
24767
  typedef CT_IndexDesignator CExprResolveExpr;
20140
24768
 
20141
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24769
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20142
24770
 public :
20143
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20144
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24771
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24772
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20145
24773
};
20146
24774
 
 
24775
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
24776
 *  Tree node representing a member designator, e.g. .a. */
20147
24777
 
20148
 
#line 20149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24778
#line 24779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20149
24779
} // closed Puma
 
24780
class CCExprResolve;
 
24781
class CExprResolve;
20150
24782
class WinIfExists;
20151
24783
class WinImportHandler;
20152
24784
class WinMacros;
20153
 
class CMatchSyntax;
20154
 
class ExtGnu;
 
24785
class WinAsm;
 
24786
class WinDeclSpecs;
 
24787
class WinMemberExplSpec;
 
24788
class WinTypeKeywords;
 
24789
class WinFriend;
20155
24790
class ExtAC;
20156
24791
class ExtACBuilderCoupling;
20157
24792
class ExtACSyntaxCoupling;
20158
24793
class ExtACTree;
20159
24794
class ExtACKeywords;
20160
 
class WinAsm;
20161
 
class WinDeclSpecs;
20162
 
class WinMemberExplSpec;
20163
 
class WinTypeKeywords;
 
24795
class ExtGnu;
20164
24796
class PragmaOnceUnitState;
20165
24797
class PragmaOnce;
20166
 
class CCExprResolve;
20167
 
class CExprResolve;
20168
 
namespace Puma {
20169
 
 
20170
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24798
class CMatchSyntax;
 
24799
namespace Puma {
 
24800
 
 
24801
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24802
 
 
24803
#line 24804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24804
} // closed Puma
 
24805
 
 
24806
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24807
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24808
#include "CCExprResolveH.ah"
 
24809
#endif
 
24810
namespace Puma {
 
24811
 
 
24812
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24813
 
 
24814
#line 24815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24815
} // closed Puma
 
24816
 
 
24817
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24818
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24819
#include "CExprResolveH.ah"
 
24820
#endif
 
24821
namespace Puma {
 
24822
 
 
24823
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20171
24824
class CT_MembDesignator : public CT_Expression {
20172
 
#line 20173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24825
#line 24826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24826
  friend class ::CCExprResolve;
 
24827
  friend class ::CExprResolve;
20173
24828
  friend class ::WinIfExists;
20174
24829
  friend class ::WinImportHandler;
20175
24830
  friend class ::WinMacros;
20176
 
  friend class ::CMatchSyntax;
20177
 
  friend class ::ExtGnu;
 
24831
  friend class ::WinAsm;
 
24832
  friend class ::WinDeclSpecs;
 
24833
  friend class ::WinMemberExplSpec;
 
24834
  friend class ::WinTypeKeywords;
 
24835
  friend class ::WinFriend;
20178
24836
  friend class ::ExtAC;
20179
24837
  friend class ::ExtACBuilderCoupling;
20180
24838
  friend class ::ExtACSyntaxCoupling;
20181
24839
  friend class ::ExtACTree;
20182
24840
  friend class ::ExtACKeywords;
20183
 
  friend class ::WinAsm;
20184
 
  friend class ::WinDeclSpecs;
20185
 
  friend class ::WinMemberExplSpec;
20186
 
  friend class ::WinTypeKeywords;
 
24841
  friend class ::ExtGnu;
20187
24842
  friend class ::PragmaOnceUnitState;
20188
24843
  friend class ::PragmaOnce;
20189
 
  friend class ::CCExprResolve;
20190
 
  friend class ::CExprResolve;
 
24844
  friend class ::CMatchSyntax;
20191
24845
 
20192
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24846
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20193
24847
 
20194
24848
  CTree *sons[2]; // dot, member
20195
24849
 
20196
24850
public:
20197
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
24851
  /** Constructor.
 
24852
   *  \param d The dot before the member name.
 
24853
   *  \param m The member name. */
 
24854
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
24855
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20198
24856
  static const char *NodeId ();
 
24857
  /** Get the name of the node. Can be compared with NodeId(). */
20199
24858
  const char *NodeName () const { return NodeId (); }
 
24859
  /** Get the number of sons. */
20200
24860
  int Sons () const { return 2; }
 
24861
  /** Get the n-th son.
 
24862
   *  \param n The index of the son.
 
24863
   *  \return The n-th son or NULL. */
20201
24864
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
24865
  /** Replace a son.
 
24866
   *  \param old_son The son to replace.
 
24867
   *  \param new_son The new son. */
20202
24868
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20203
24869
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20204
24870
  }
20205
24871
   private:
20206
24872
  typedef CT_MembDesignator CCExprResolveExpr;
20207
24873
 
20208
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24874
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20209
24875
 public :
20210
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
24876
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20211
24877
  typedef CT_MembDesignator CExprResolveExpr;
20212
24878
 
20213
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24879
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20214
24880
 public :
20215
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20216
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24881
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24882
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20217
24883
};
20218
24884
 
 
24885
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
24886
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
20219
24887
 
20220
 
#line 20221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24888
#line 24889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20221
24889
} // closed Puma
 
24890
class CCExprResolve;
 
24891
class CExprResolve;
20222
24892
class WinIfExists;
20223
24893
class WinImportHandler;
20224
24894
class WinMacros;
20225
 
class CMatchSyntax;
20226
 
class ExtGnu;
 
24895
class WinAsm;
 
24896
class WinDeclSpecs;
 
24897
class WinMemberExplSpec;
 
24898
class WinTypeKeywords;
 
24899
class WinFriend;
20227
24900
class ExtAC;
20228
24901
class ExtACBuilderCoupling;
20229
24902
class ExtACSyntaxCoupling;
20230
24903
class ExtACTree;
20231
24904
class ExtACKeywords;
20232
 
class WinAsm;
20233
 
class WinDeclSpecs;
20234
 
class WinMemberExplSpec;
20235
 
class WinTypeKeywords;
 
24905
class ExtGnu;
20236
24906
class PragmaOnceUnitState;
20237
24907
class PragmaOnce;
20238
 
class CCExprResolve;
20239
 
class CExprResolve;
 
24908
class CMatchSyntax;
20240
24909
namespace Puma {
20241
24910
 
20242
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24911
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20243
24912
class CT_DesignatorSeq : public CT_List, public CSemValue {
20244
 
#line 20245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24913
#line 24914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24914
  friend class ::CCExprResolve;
 
24915
  friend class ::CExprResolve;
20245
24916
  friend class ::WinIfExists;
20246
24917
  friend class ::WinImportHandler;
20247
24918
  friend class ::WinMacros;
20248
 
  friend class ::CMatchSyntax;
20249
 
  friend class ::ExtGnu;
 
24919
  friend class ::WinAsm;
 
24920
  friend class ::WinDeclSpecs;
 
24921
  friend class ::WinMemberExplSpec;
 
24922
  friend class ::WinTypeKeywords;
 
24923
  friend class ::WinFriend;
20250
24924
  friend class ::ExtAC;
20251
24925
  friend class ::ExtACBuilderCoupling;
20252
24926
  friend class ::ExtACSyntaxCoupling;
20253
24927
  friend class ::ExtACTree;
20254
24928
  friend class ::ExtACKeywords;
20255
 
  friend class ::WinAsm;
20256
 
  friend class ::WinDeclSpecs;
20257
 
  friend class ::WinMemberExplSpec;
20258
 
  friend class ::WinTypeKeywords;
 
24929
  friend class ::ExtGnu;
20259
24930
  friend class ::PragmaOnceUnitState;
20260
24931
  friend class ::PragmaOnce;
20261
 
  friend class ::CCExprResolve;
20262
 
  friend class ::CExprResolve;
 
24932
  friend class ::CMatchSyntax;
20263
24933
 
20264
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24934
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20265
24935
 
20266
24936
public:
 
24937
  /** Constructor.
 
24938
   *  \param size Initial number of designators. */
20267
24939
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
24940
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20268
24941
  static const char *NodeId ();
 
24942
  /** Get the name of the node. Can be compared with NodeId(). */
20269
24943
  const char *NodeName () const { return NodeId (); }
20270
24944
 
 
24945
  /** Get the type of the entity to initialize. */
20271
24946
  CTypeInfo *Type () const { return type; }
 
24947
  /** Get the value of the entity to initialize. */
20272
24948
  CExprValue *Value () const { return value; }
 
24949
  /** Get the semantic value object. */
20273
24950
  CSemValue *SemValue () const { return (CSemValue*)this; }
20274
24951
};
20275
24952
 
20279
24956
/*                                                                           */
20280
24957
/*****************************************************************************/
20281
24958
 
 
24959
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
24960
 *  Base class for all tree nodes representing declaration specifiers. */
20282
24961
 
20283
 
#line 20284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24962
#line 24963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20284
24963
} // closed Puma
 
24964
class CCExprResolve;
 
24965
class CExprResolve;
20285
24966
class WinIfExists;
20286
24967
class WinImportHandler;
20287
24968
class WinMacros;
20288
 
class CMatchSyntax;
20289
 
class ExtGnu;
 
24969
class WinAsm;
 
24970
class WinDeclSpecs;
 
24971
class WinMemberExplSpec;
 
24972
class WinTypeKeywords;
 
24973
class WinFriend;
20290
24974
class ExtAC;
20291
24975
class ExtACBuilderCoupling;
20292
24976
class ExtACSyntaxCoupling;
20293
24977
class ExtACTree;
20294
24978
class ExtACKeywords;
20295
 
class WinAsm;
20296
 
class WinDeclSpecs;
20297
 
class WinMemberExplSpec;
20298
 
class WinTypeKeywords;
 
24979
class ExtGnu;
20299
24980
class PragmaOnceUnitState;
20300
24981
class PragmaOnce;
20301
 
class CCExprResolve;
20302
 
class CExprResolve;
 
24982
class CMatchSyntax;
20303
24983
namespace Puma {
20304
24984
 
20305
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24985
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20306
24986
class CT_DeclSpec : public CTree {
20307
 
#line 20308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
24987
#line 24988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
24988
  friend class ::CCExprResolve;
 
24989
  friend class ::CExprResolve;
20308
24990
  friend class ::WinIfExists;
20309
24991
  friend class ::WinImportHandler;
20310
24992
  friend class ::WinMacros;
20311
 
  friend class ::CMatchSyntax;
20312
 
  friend class ::ExtGnu;
 
24993
  friend class ::WinAsm;
 
24994
  friend class ::WinDeclSpecs;
 
24995
  friend class ::WinMemberExplSpec;
 
24996
  friend class ::WinTypeKeywords;
 
24997
  friend class ::WinFriend;
20313
24998
  friend class ::ExtAC;
20314
24999
  friend class ::ExtACBuilderCoupling;
20315
25000
  friend class ::ExtACSyntaxCoupling;
20316
25001
  friend class ::ExtACTree;
20317
25002
  friend class ::ExtACKeywords;
20318
 
  friend class ::WinAsm;
20319
 
  friend class ::WinDeclSpecs;
20320
 
  friend class ::WinMemberExplSpec;
20321
 
  friend class ::WinTypeKeywords;
 
25003
  friend class ::ExtGnu;
20322
25004
  friend class ::PragmaOnceUnitState;
20323
25005
  friend class ::PragmaOnce;
20324
 
  friend class ::CCExprResolve;
20325
 
  friend class ::CExprResolve;
 
25006
  friend class ::CMatchSyntax;
20326
25007
 
20327
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25008
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20328
25009
 
20329
25010
protected:
 
25011
  /** Constructor. */
20330
25012
  CT_DeclSpec () {}
20331
25013
};
20332
25014
 
 
25015
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
25016
 *  Tree node representing a primitive declaration specifier. */
20333
25017
 
20334
 
#line 20335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25018
#line 25019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20335
25019
} // closed Puma
 
25020
class CCExprResolve;
 
25021
class CExprResolve;
20336
25022
class WinIfExists;
20337
25023
class WinImportHandler;
20338
25024
class WinMacros;
20339
 
class CMatchSyntax;
20340
 
class ExtGnu;
 
25025
class WinAsm;
 
25026
class WinDeclSpecs;
 
25027
class WinMemberExplSpec;
 
25028
class WinTypeKeywords;
 
25029
class WinFriend;
20341
25030
class ExtAC;
20342
25031
class ExtACBuilderCoupling;
20343
25032
class ExtACSyntaxCoupling;
20344
25033
class ExtACTree;
20345
25034
class ExtACKeywords;
20346
 
class WinAsm;
20347
 
class WinDeclSpecs;
20348
 
class WinMemberExplSpec;
20349
 
class WinTypeKeywords;
 
25035
class ExtGnu;
20350
25036
class PragmaOnceUnitState;
20351
25037
class PragmaOnce;
20352
 
class CCExprResolve;
20353
 
class CExprResolve;
 
25038
class CMatchSyntax;
20354
25039
namespace Puma {
20355
25040
 
20356
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25041
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20357
25042
class CT_PrimDeclSpec : public CT_DeclSpec {
20358
 
#line 20359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25043
#line 25044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25044
  friend class ::CCExprResolve;
 
25045
  friend class ::CExprResolve;
20359
25046
  friend class ::WinIfExists;
20360
25047
  friend class ::WinImportHandler;
20361
25048
  friend class ::WinMacros;
20362
 
  friend class ::CMatchSyntax;
20363
 
  friend class ::ExtGnu;
 
25049
  friend class ::WinAsm;
 
25050
  friend class ::WinDeclSpecs;
 
25051
  friend class ::WinMemberExplSpec;
 
25052
  friend class ::WinTypeKeywords;
 
25053
  friend class ::WinFriend;
20364
25054
  friend class ::ExtAC;
20365
25055
  friend class ::ExtACBuilderCoupling;
20366
25056
  friend class ::ExtACSyntaxCoupling;
20367
25057
  friend class ::ExtACTree;
20368
25058
  friend class ::ExtACKeywords;
20369
 
  friend class ::WinAsm;
20370
 
  friend class ::WinDeclSpecs;
20371
 
  friend class ::WinMemberExplSpec;
20372
 
  friend class ::WinTypeKeywords;
 
25059
  friend class ::ExtGnu;
20373
25060
  friend class ::PragmaOnceUnitState;
20374
25061
  friend class ::PragmaOnce;
20375
 
  friend class ::CCExprResolve;
20376
 
  friend class ::CExprResolve;
 
25062
  friend class ::CMatchSyntax;
20377
25063
 
20378
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25064
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20379
25065
 
20380
25066
public:
20381
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
20382
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
20383
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
20384
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
20385
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
20386
 
              // AspectC++ specific type specifier
20387
 
              PDS_UNKNOWN_T,
20388
 
              // Win specific declaration specifiers
20389
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
20390
 
              PDS_UNKNOWN, PDS_NUM };
 
25067
  /** Declaration specifier types. */
 
25068
  enum Type { 
 
25069
    PDS_FRIEND,    /** friend */
 
25070
    PDS_TYPEDEF,   /** typedef */
 
25071
    PDS_AUTO,      /** auto */
 
25072
    PDS_REGISTER,  /** register */
 
25073
    PDS_STATIC,    /** static */
 
25074
    PDS_EXTERN,    /** extern */
 
25075
    PDS_MUTABLE,   /** mutable */
 
25076
    PDS_INLINE,    /** inline */
 
25077
    PDS_VIRTUAL,   /** virtual */
 
25078
    PDS_EXPLICIT,  /** explicit */
 
25079
    PDS_CONST,     /** const */
 
25080
    PDS_VOLATILE,  /** volatile */
 
25081
    PDS_RESTRICT,  /** restrict */
 
25082
    PDS_CHAR,      /** char */
 
25083
    PDS_WCHAR_T,   /** wchar_t */
 
25084
    PDS_BOOL,      /** bool */
 
25085
    PDS_SHORT,     /** short */
 
25086
    PDS_INT,       /** int */
 
25087
    PDS_LONG,      /** long */
 
25088
    PDS_SIGNED,    /** signed */
 
25089
    PDS_UNSIGNED,  /** unsigned */
 
25090
    PDS_FLOAT,     /** float */
 
25091
    PDS_DOUBLE,    /** double */
 
25092
    PDS_VOID,      /** void */
 
25093
    // AspectC++ specific type specifier
 
25094
    PDS_UNKNOWN_T, /** unknown_t */
 
25095
    // Win specific declaration specifiers
 
25096
    PDS_CDECL,     /** __cdecl */
 
25097
    PDS_STDCALL,   /** __stdcall */
 
25098
    PDS_FASTCALL,  /** __fastcall */
 
25099
    PDS_INT64,     /** __int64 */
 
25100
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
25101
    PDS_NUM        /** Number of declaration specifier types. */
 
25102
  };
20391
25103
 
20392
25104
private:
20393
25105
  Type _type;
20394
 
  CT_Token *_token;
 
25106
  CTree *_token; // has to be a CT_Token
20395
25107
 
20396
25108
  void determine_type ();
20397
25109
 
20398
25110
public:
20399
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
25111
  /** Constructor.
 
25112
   *  \param t The token containing the declaration specifier. */
 
25113
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
25114
  /** Constructor.
 
25115
   *  \param t The declaration specifier type. */
20400
25116
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
25117
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20401
25118
  static const char *NodeId ();
 
25119
  /** Get the name of the node. Can be compared with NodeId(). */
20402
25120
  const char *NodeName () const { return NodeId (); }
 
25121
  /** Get the number of sons. */
20403
25122
  int Sons () const { return _token ? 1 : 0; }
 
25123
  /** Get the n-th son.
 
25124
   *  \param n The index of the son.
 
25125
   *  \return The n-th son or NULL. */
20404
25126
  CTree *Son (int n) const 
20405
25127
   { return (n == 0) ? _token : (CTree*)0; }
 
25128
  /** Get the textual representation of the declaration specifier.
 
25129
   *  \return The string representation or " ". */
20406
25130
  const char *SpecText () const 
20407
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
25131
   { return _token ? _token->token ()->text () : " "; }
 
25132
  /** Get the declaration specifier type. */
20408
25133
  Type SpecType () const { return _type; }
 
25134
  /** Number of declaration specifier types. */
20409
25135
  static const int NumTypes = PDS_NUM;
 
25136
  /** Replace a son.
 
25137
   *  \param old_son The son to replace.
 
25138
   *  \param new_son The new son. */
 
25139
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25140
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
25141
    determine_type ();
 
25142
  }
20410
25143
};
20411
25144
 
 
25145
/** \class CT_NamedType CTree.h Puma/CTree.h
 
25146
 *  Tree node representing a named type, e.g. (int*)a. 
 
25147
 *  where int* is a type with a generated name. */
20412
25148
 
20413
 
#line 20414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25149
#line 25150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20414
25150
} // closed Puma
 
25151
class CCExprResolve;
 
25152
class CExprResolve;
20415
25153
class WinIfExists;
20416
25154
class WinImportHandler;
20417
25155
class WinMacros;
20418
 
class CMatchSyntax;
20419
 
class ExtGnu;
 
25156
class WinAsm;
 
25157
class WinDeclSpecs;
 
25158
class WinMemberExplSpec;
 
25159
class WinTypeKeywords;
 
25160
class WinFriend;
20420
25161
class ExtAC;
20421
25162
class ExtACBuilderCoupling;
20422
25163
class ExtACSyntaxCoupling;
20423
25164
class ExtACTree;
20424
25165
class ExtACKeywords;
20425
 
class WinAsm;
20426
 
class WinDeclSpecs;
20427
 
class WinMemberExplSpec;
20428
 
class WinTypeKeywords;
 
25166
class ExtGnu;
20429
25167
class PragmaOnceUnitState;
20430
25168
class PragmaOnce;
20431
 
class CCExprResolve;
20432
 
class CExprResolve;
 
25169
class CMatchSyntax;
20433
25170
namespace Puma {
20434
25171
 
20435
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25172
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20436
25173
class CT_NamedType : public CT_DeclSpec, public CSemObject {
20437
 
#line 20438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25174
#line 25175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25175
  friend class ::CCExprResolve;
 
25176
  friend class ::CExprResolve;
20438
25177
  friend class ::WinIfExists;
20439
25178
  friend class ::WinImportHandler;
20440
25179
  friend class ::WinMacros;
20441
 
  friend class ::CMatchSyntax;
20442
 
  friend class ::ExtGnu;
 
25180
  friend class ::WinAsm;
 
25181
  friend class ::WinDeclSpecs;
 
25182
  friend class ::WinMemberExplSpec;
 
25183
  friend class ::WinTypeKeywords;
 
25184
  friend class ::WinFriend;
20443
25185
  friend class ::ExtAC;
20444
25186
  friend class ::ExtACBuilderCoupling;
20445
25187
  friend class ::ExtACSyntaxCoupling;
20446
25188
  friend class ::ExtACTree;
20447
25189
  friend class ::ExtACKeywords;
20448
 
  friend class ::WinAsm;
20449
 
  friend class ::WinDeclSpecs;
20450
 
  friend class ::WinMemberExplSpec;
20451
 
  friend class ::WinTypeKeywords;
 
25190
  friend class ::ExtGnu;
20452
25191
  friend class ::PragmaOnceUnitState;
20453
25192
  friend class ::PragmaOnce;
20454
 
  friend class ::CCExprResolve;
20455
 
  friend class ::CExprResolve;
 
25193
  friend class ::CMatchSyntax;
20456
25194
 
20457
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25195
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20458
25196
 
20459
25197
  CTree *sons[2]; // declspecs, declarator
20460
25198
 
20461
25199
public:
20462
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
25200
  /** Constructor.
 
25201
   *  \param dss The declaration specifier sequence of the type.
 
25202
   *  \param d The type declarator. */
 
25203
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
25204
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20463
25205
  static const char *NodeId ();
 
25206
  /** Get the name of the node. Can be compared with NodeId(). */
20464
25207
  const char *NodeName () const { return NodeId (); }
 
25208
  /** Get the number of sons. */
20465
25209
  int Sons () const { return CTree::Sons (sons, 2); }
 
25210
  /** Get the n-th son.
 
25211
   *  \param n The index of the son.
 
25212
   *  \return The n-th son or NULL. */
20466
25213
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
25214
  /** Get the declarator. */
20467
25215
  CTree *Declarator () const { return sons[1]; }
 
25216
  /** Replace a son.
 
25217
   *  \param old_son The son to replace.
 
25218
   *  \param new_son The new son. */
20468
25219
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20469
25220
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20470
25221
  }
 
25222
  /** Get the semantic information object. */
20471
25223
  CSemObject *SemObject () const { return (CSemObject*)this; }
20472
25224
};
20473
25225
      
 
25226
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
25227
 *  Tree node representing a class specifier, e.g. class X. */
20474
25228
 
20475
 
#line 20476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25229
#line 25230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20476
25230
} // closed Puma
 
25231
class CCExprResolve;
 
25232
class CExprResolve;
20477
25233
class WinIfExists;
20478
25234
class WinImportHandler;
20479
25235
class WinMacros;
20480
 
class CMatchSyntax;
20481
 
class ExtGnu;
 
25236
class WinAsm;
 
25237
class WinDeclSpecs;
 
25238
class WinMemberExplSpec;
 
25239
class WinTypeKeywords;
 
25240
class WinFriend;
20482
25241
class ExtAC;
20483
25242
class ExtACBuilderCoupling;
20484
25243
class ExtACSyntaxCoupling;
20485
25244
class ExtACTree;
20486
25245
class ExtACKeywords;
20487
 
class WinAsm;
20488
 
class WinDeclSpecs;
20489
 
class WinMemberExplSpec;
20490
 
class WinTypeKeywords;
 
25246
class ExtGnu;
20491
25247
class PragmaOnceUnitState;
20492
25248
class PragmaOnce;
20493
 
class CCExprResolve;
20494
 
class CExprResolve;
 
25249
class CMatchSyntax;
20495
25250
namespace Puma {
20496
25251
 
20497
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25252
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20498
25253
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
20499
 
#line 20500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25254
#line 25255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25255
  friend class ::CCExprResolve;
 
25256
  friend class ::CExprResolve;
20500
25257
  friend class ::WinIfExists;
20501
25258
  friend class ::WinImportHandler;
20502
25259
  friend class ::WinMacros;
20503
 
  friend class ::CMatchSyntax;
20504
 
  friend class ::ExtGnu;
 
25260
  friend class ::WinAsm;
 
25261
  friend class ::WinDeclSpecs;
 
25262
  friend class ::WinMemberExplSpec;
 
25263
  friend class ::WinTypeKeywords;
 
25264
  friend class ::WinFriend;
20505
25265
  friend class ::ExtAC;
20506
25266
  friend class ::ExtACBuilderCoupling;
20507
25267
  friend class ::ExtACSyntaxCoupling;
20508
25268
  friend class ::ExtACTree;
20509
25269
  friend class ::ExtACKeywords;
20510
 
  friend class ::WinAsm;
20511
 
  friend class ::WinDeclSpecs;
20512
 
  friend class ::WinMemberExplSpec;
20513
 
  friend class ::WinTypeKeywords;
 
25270
  friend class ::ExtGnu;
20514
25271
  friend class ::PragmaOnceUnitState;
20515
25272
  friend class ::PragmaOnce;
20516
 
  friend class ::CCExprResolve;
20517
 
  friend class ::CExprResolve;
 
25273
  friend class ::CMatchSyntax;
20518
25274
 
20519
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25275
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20520
25276
 
20521
25277
  CTree *sons[2]; // key, name
20522
25278
  
20523
25279
public:
20524
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
25280
  /** Constructor.
 
25281
   *  \param k The 'class' or 'struct' keyword.
 
25282
   *  \param n The class name. */
 
25283
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
25284
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20525
25285
  static const char *NodeId ();
 
25286
  /** Get the name of the node. Can be compared with NodeId(). */
20526
25287
  const char *NodeName () const { return NodeId (); }
 
25288
  /** Get the number of sons. */
20527
25289
  int Sons () const { return 2; }
 
25290
  /** Get the n-th son.
 
25291
   *  \param n The index of the son.
 
25292
   *  \return The n-th son or NULL. */
20528
25293
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
25294
  /** Get the class name. */
20529
25295
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
25296
  /** Get the semantic information object. */
20530
25297
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25298
  /** Replace a son.
 
25299
   *  \param old_son The son to replace.
 
25300
   *  \param new_son The new son. */
20531
25301
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20532
25302
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20533
25303
  }
20534
25304
};
20535
25305
 
 
25306
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
25307
 *  Tree node representing a union specifier, e.g. union X. */
20536
25308
 
20537
 
#line 20538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25309
#line 25310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20538
25310
} // closed Puma
 
25311
class CCExprResolve;
 
25312
class CExprResolve;
20539
25313
class WinIfExists;
20540
25314
class WinImportHandler;
20541
25315
class WinMacros;
20542
 
class CMatchSyntax;
20543
 
class ExtGnu;
 
25316
class WinAsm;
 
25317
class WinDeclSpecs;
 
25318
class WinMemberExplSpec;
 
25319
class WinTypeKeywords;
 
25320
class WinFriend;
20544
25321
class ExtAC;
20545
25322
class ExtACBuilderCoupling;
20546
25323
class ExtACSyntaxCoupling;
20547
25324
class ExtACTree;
20548
25325
class ExtACKeywords;
20549
 
class WinAsm;
20550
 
class WinDeclSpecs;
20551
 
class WinMemberExplSpec;
20552
 
class WinTypeKeywords;
 
25326
class ExtGnu;
20553
25327
class PragmaOnceUnitState;
20554
25328
class PragmaOnce;
20555
 
class CCExprResolve;
20556
 
class CExprResolve;
 
25329
class CMatchSyntax;
20557
25330
namespace Puma {
20558
25331
 
20559
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25332
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20560
25333
class CT_UnionSpec : public CT_ClassSpec {
20561
 
#line 20562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25334
#line 25335 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25335
  friend class ::CCExprResolve;
 
25336
  friend class ::CExprResolve;
20562
25337
  friend class ::WinIfExists;
20563
25338
  friend class ::WinImportHandler;
20564
25339
  friend class ::WinMacros;
20565
 
  friend class ::CMatchSyntax;
20566
 
  friend class ::ExtGnu;
 
25340
  friend class ::WinAsm;
 
25341
  friend class ::WinDeclSpecs;
 
25342
  friend class ::WinMemberExplSpec;
 
25343
  friend class ::WinTypeKeywords;
 
25344
  friend class ::WinFriend;
20567
25345
  friend class ::ExtAC;
20568
25346
  friend class ::ExtACBuilderCoupling;
20569
25347
  friend class ::ExtACSyntaxCoupling;
20570
25348
  friend class ::ExtACTree;
20571
25349
  friend class ::ExtACKeywords;
20572
 
  friend class ::WinAsm;
20573
 
  friend class ::WinDeclSpecs;
20574
 
  friend class ::WinMemberExplSpec;
20575
 
  friend class ::WinTypeKeywords;
 
25350
  friend class ::ExtGnu;
20576
25351
  friend class ::PragmaOnceUnitState;
20577
25352
  friend class ::PragmaOnce;
20578
 
  friend class ::CCExprResolve;
20579
 
  friend class ::CExprResolve;
 
25353
  friend class ::CMatchSyntax;
20580
25354
 
20581
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25355
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20582
25356
 
20583
25357
public:
 
25358
  /** Constructor.
 
25359
   *  \param k The 'union' keyword.
 
25360
   *  \param n The name of the union. */
20584
25361
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
25362
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20585
25363
  static const char *NodeId ();
 
25364
  /** Get the name of the node. Can be compared with NodeId(). */
20586
25365
  const char *NodeName () const { return NodeId (); }
20587
25366
};
20588
25367
 
 
25368
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
25369
 *  Tree node representing an enumeration specifier, e.g. enum X. */
20589
25370
 
20590
 
#line 20591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25371
#line 25372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20591
25372
} // closed Puma
 
25373
class CCExprResolve;
 
25374
class CExprResolve;
20592
25375
class WinIfExists;
20593
25376
class WinImportHandler;
20594
25377
class WinMacros;
20595
 
class CMatchSyntax;
20596
 
class ExtGnu;
 
25378
class WinAsm;
 
25379
class WinDeclSpecs;
 
25380
class WinMemberExplSpec;
 
25381
class WinTypeKeywords;
 
25382
class WinFriend;
20597
25383
class ExtAC;
20598
25384
class ExtACBuilderCoupling;
20599
25385
class ExtACSyntaxCoupling;
20600
25386
class ExtACTree;
20601
25387
class ExtACKeywords;
20602
 
class WinAsm;
20603
 
class WinDeclSpecs;
20604
 
class WinMemberExplSpec;
20605
 
class WinTypeKeywords;
 
25388
class ExtGnu;
20606
25389
class PragmaOnceUnitState;
20607
25390
class PragmaOnce;
20608
 
class CCExprResolve;
20609
 
class CExprResolve;
 
25391
class CMatchSyntax;
20610
25392
namespace Puma {
20611
25393
 
20612
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25394
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20613
25395
class CT_EnumSpec : public CT_ClassSpec {
20614
 
#line 20615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25396
#line 25397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25397
  friend class ::CCExprResolve;
 
25398
  friend class ::CExprResolve;
20615
25399
  friend class ::WinIfExists;
20616
25400
  friend class ::WinImportHandler;
20617
25401
  friend class ::WinMacros;
20618
 
  friend class ::CMatchSyntax;
20619
 
  friend class ::ExtGnu;
 
25402
  friend class ::WinAsm;
 
25403
  friend class ::WinDeclSpecs;
 
25404
  friend class ::WinMemberExplSpec;
 
25405
  friend class ::WinTypeKeywords;
 
25406
  friend class ::WinFriend;
20620
25407
  friend class ::ExtAC;
20621
25408
  friend class ::ExtACBuilderCoupling;
20622
25409
  friend class ::ExtACSyntaxCoupling;
20623
25410
  friend class ::ExtACTree;
20624
25411
  friend class ::ExtACKeywords;
20625
 
  friend class ::WinAsm;
20626
 
  friend class ::WinDeclSpecs;
20627
 
  friend class ::WinMemberExplSpec;
20628
 
  friend class ::WinTypeKeywords;
 
25412
  friend class ::ExtGnu;
20629
25413
  friend class ::PragmaOnceUnitState;
20630
25414
  friend class ::PragmaOnce;
20631
 
  friend class ::CCExprResolve;
20632
 
  friend class ::CExprResolve;
 
25415
  friend class ::CMatchSyntax;
20633
25416
 
20634
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25417
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20635
25418
 
20636
25419
public:
 
25420
  /** Constructor.
 
25421
   *  \param k The 'enum' keyword. 
 
25422
   *  \param n The name of the enumeration. */
20637
25423
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
25424
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20638
25425
  static const char *NodeId ();
 
25426
  /** Get the name of the node. Can be compared with NodeId(). */
20639
25427
  const char *NodeName () const { return NodeId (); }
20640
25428
};
20641
25429
 
 
25430
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
25431
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
20642
25432
 
20643
 
#line 20644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25433
#line 25434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20644
25434
} // closed Puma
 
25435
class CCExprResolve;
 
25436
class CExprResolve;
20645
25437
class WinIfExists;
20646
25438
class WinImportHandler;
20647
25439
class WinMacros;
20648
 
class CMatchSyntax;
20649
 
class ExtGnu;
 
25440
class WinAsm;
 
25441
class WinDeclSpecs;
 
25442
class WinMemberExplSpec;
 
25443
class WinTypeKeywords;
 
25444
class WinFriend;
20650
25445
class ExtAC;
20651
25446
class ExtACBuilderCoupling;
20652
25447
class ExtACSyntaxCoupling;
20653
25448
class ExtACTree;
20654
25449
class ExtACKeywords;
20655
 
class WinAsm;
20656
 
class WinDeclSpecs;
20657
 
class WinMemberExplSpec;
20658
 
class WinTypeKeywords;
 
25450
class ExtGnu;
20659
25451
class PragmaOnceUnitState;
20660
25452
class PragmaOnce;
20661
 
class CCExprResolve;
20662
 
class CExprResolve;
 
25453
class CMatchSyntax;
20663
25454
namespace Puma {
20664
25455
 
20665
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25456
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20666
25457
class CT_ExceptionSpec : public CT_DeclSpec {
20667
 
#line 20668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25458
#line 25459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25459
  friend class ::CCExprResolve;
 
25460
  friend class ::CExprResolve;
20668
25461
  friend class ::WinIfExists;
20669
25462
  friend class ::WinImportHandler;
20670
25463
  friend class ::WinMacros;
20671
 
  friend class ::CMatchSyntax;
20672
 
  friend class ::ExtGnu;
 
25464
  friend class ::WinAsm;
 
25465
  friend class ::WinDeclSpecs;
 
25466
  friend class ::WinMemberExplSpec;
 
25467
  friend class ::WinTypeKeywords;
 
25468
  friend class ::WinFriend;
20673
25469
  friend class ::ExtAC;
20674
25470
  friend class ::ExtACBuilderCoupling;
20675
25471
  friend class ::ExtACSyntaxCoupling;
20676
25472
  friend class ::ExtACTree;
20677
25473
  friend class ::ExtACKeywords;
20678
 
  friend class ::WinAsm;
20679
 
  friend class ::WinDeclSpecs;
20680
 
  friend class ::WinMemberExplSpec;
20681
 
  friend class ::WinTypeKeywords;
 
25474
  friend class ::ExtGnu;
20682
25475
  friend class ::PragmaOnceUnitState;
20683
25476
  friend class ::PragmaOnce;
20684
 
  friend class ::CCExprResolve;
20685
 
  friend class ::CExprResolve;
 
25477
  friend class ::CMatchSyntax;
20686
25478
 
20687
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25479
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20688
25480
 
20689
25481
  CTree *sons[2]; // throw, type_id_list
20690
25482
  
20691
25483
public:
20692
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
25484
  /** Constructor.
 
25485
   *  \param k The 'throw' keyword.
 
25486
   *  \param l The type list for the exception type to throw. */
 
25487
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
25488
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20693
25489
  static const char *NodeId ();
 
25490
  /** Get the name of the node. Can be compared with NodeId(). */
20694
25491
  const char *NodeName () const { return NodeId (); }
 
25492
  /** Get the number of sons. */
20695
25493
  int Sons () const { return 2; }
 
25494
  /** Get the n-th son.
 
25495
   *  \param n The index of the son.
 
25496
   *  \return The n-th son or NULL. */
20696
25497
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
25498
  /** Get the exception type list. */
20697
25499
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
25500
  /** Replace a son.
 
25501
   *  \param old_son The son to replace.
 
25502
   *  \param new_son The new son. */
20698
25503
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20699
25504
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20700
25505
  }
20706
25511
/*                                                                           */
20707
25512
/*****************************************************************************/
20708
25513
 
 
25514
/** \class CT_Decl CTree.h Puma/CTree.h
 
25515
 *  Base class for all tree nodes representing declarations. */
20709
25516
 
20710
 
#line 20711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25517
#line 25518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20711
25518
} // closed Puma
 
25519
class CCExprResolve;
 
25520
class CExprResolve;
20712
25521
class WinIfExists;
20713
25522
class WinImportHandler;
20714
25523
class WinMacros;
20715
 
class CMatchSyntax;
20716
 
class ExtGnu;
 
25524
class WinAsm;
 
25525
class WinDeclSpecs;
 
25526
class WinMemberExplSpec;
 
25527
class WinTypeKeywords;
 
25528
class WinFriend;
20717
25529
class ExtAC;
20718
25530
class ExtACBuilderCoupling;
20719
25531
class ExtACSyntaxCoupling;
20720
25532
class ExtACTree;
20721
25533
class ExtACKeywords;
20722
 
class WinAsm;
20723
 
class WinDeclSpecs;
20724
 
class WinMemberExplSpec;
20725
 
class WinTypeKeywords;
 
25534
class ExtGnu;
20726
25535
class PragmaOnceUnitState;
20727
25536
class PragmaOnce;
20728
 
class CCExprResolve;
20729
 
class CExprResolve;
 
25537
class CMatchSyntax;
20730
25538
namespace Puma {
20731
25539
 
20732
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25540
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20733
25541
class CT_Decl : public CTree {
20734
 
#line 20735 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25542
#line 25543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25543
  friend class ::CCExprResolve;
 
25544
  friend class ::CExprResolve;
20735
25545
  friend class ::WinIfExists;
20736
25546
  friend class ::WinImportHandler;
20737
25547
  friend class ::WinMacros;
20738
 
  friend class ::CMatchSyntax;
20739
 
  friend class ::ExtGnu;
 
25548
  friend class ::WinAsm;
 
25549
  friend class ::WinDeclSpecs;
 
25550
  friend class ::WinMemberExplSpec;
 
25551
  friend class ::WinTypeKeywords;
 
25552
  friend class ::WinFriend;
20740
25553
  friend class ::ExtAC;
20741
25554
  friend class ::ExtACBuilderCoupling;
20742
25555
  friend class ::ExtACSyntaxCoupling;
20743
25556
  friend class ::ExtACTree;
20744
25557
  friend class ::ExtACKeywords;
20745
 
  friend class ::WinAsm;
20746
 
  friend class ::WinDeclSpecs;
20747
 
  friend class ::WinMemberExplSpec;
20748
 
  friend class ::WinTypeKeywords;
 
25558
  friend class ::ExtGnu;
20749
25559
  friend class ::PragmaOnceUnitState;
20750
25560
  friend class ::PragmaOnce;
20751
 
  friend class ::CCExprResolve;
20752
 
  friend class ::CExprResolve;
 
25561
  friend class ::CMatchSyntax;
20753
25562
 
20754
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25563
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20755
25564
 
20756
25565
  CT_LinkageSpec *_linkage;
 
25566
  
20757
25567
protected:
 
25568
  /** Constructor. */
20758
25569
  CT_Decl () : _linkage (0) {}
 
25570
  
20759
25571
public:
 
25572
  /** Set the linkage of the declared entity.
 
25573
   *  \param l The linkage specifiers. */
20760
25574
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
25575
  /** Get the linkage specifiers. */
20761
25576
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
25577
  /** Get this. */
 
25578
  virtual CT_Decl *IsDeclaration () { return this; }
20762
25579
};
20763
25580
 
 
25581
/** \class CT_Program CTree.h Puma/CTree.h
 
25582
 *  Root node of C/C++ syntax tree. */
20764
25583
 
20765
 
#line 20766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25584
#line 25585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20766
25585
} // closed Puma
 
25586
class CCExprResolve;
 
25587
class CExprResolve;
20767
25588
class WinIfExists;
20768
25589
class WinImportHandler;
20769
25590
class WinMacros;
20770
 
class CMatchSyntax;
20771
 
class ExtGnu;
 
25591
class WinAsm;
 
25592
class WinDeclSpecs;
 
25593
class WinMemberExplSpec;
 
25594
class WinTypeKeywords;
 
25595
class WinFriend;
20772
25596
class ExtAC;
20773
25597
class ExtACBuilderCoupling;
20774
25598
class ExtACSyntaxCoupling;
20775
25599
class ExtACTree;
20776
25600
class ExtACKeywords;
20777
 
class WinAsm;
20778
 
class WinDeclSpecs;
20779
 
class WinMemberExplSpec;
20780
 
class WinTypeKeywords;
 
25601
class ExtGnu;
20781
25602
class PragmaOnceUnitState;
20782
25603
class PragmaOnce;
20783
 
class CCExprResolve;
20784
 
class CExprResolve;
 
25604
class CMatchSyntax;
20785
25605
namespace Puma {
20786
25606
 
20787
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25607
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20788
25608
class CT_Program : public CT_DeclList, public CSemScope {
20789
 
#line 20790 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25609
#line 25610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25610
  friend class ::CCExprResolve;
 
25611
  friend class ::CExprResolve;
20790
25612
  friend class ::WinIfExists;
20791
25613
  friend class ::WinImportHandler;
20792
25614
  friend class ::WinMacros;
20793
 
  friend class ::CMatchSyntax;
20794
 
  friend class ::ExtGnu;
 
25615
  friend class ::WinAsm;
 
25616
  friend class ::WinDeclSpecs;
 
25617
  friend class ::WinMemberExplSpec;
 
25618
  friend class ::WinTypeKeywords;
 
25619
  friend class ::WinFriend;
20795
25620
  friend class ::ExtAC;
20796
25621
  friend class ::ExtACBuilderCoupling;
20797
25622
  friend class ::ExtACSyntaxCoupling;
20798
25623
  friend class ::ExtACTree;
20799
25624
  friend class ::ExtACKeywords;
20800
 
  friend class ::WinAsm;
20801
 
  friend class ::WinDeclSpecs;
20802
 
  friend class ::WinMemberExplSpec;
20803
 
  friend class ::WinTypeKeywords;
 
25625
  friend class ::ExtGnu;
20804
25626
  friend class ::PragmaOnceUnitState;
20805
25627
  friend class ::PragmaOnce;
20806
 
  friend class ::CCExprResolve;
20807
 
  friend class ::CExprResolve;
 
25628
  friend class ::CMatchSyntax;
20808
25629
 
20809
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25630
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20810
25631
 
20811
25632
public:
 
25633
  /** Constructor.
 
25634
   *  \param size The initial number of declarations in the program.
 
25635
   *  \param incr The initial increment count. */
20812
25636
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
25637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20813
25638
  static const char *NodeId ();
 
25639
  /** Get the name of the node. Can be compared with NodeId(). */
20814
25640
  const char *NodeName () const { return NodeId (); }
 
25641
  /** Get the semantic scope object. */
 
25642
  CSemScope *SemScope () const { return (CSemScope*)this; }
20815
25643
};
20816
25644
   
 
25645
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
25646
 *  Tree node representing an object declaration, e.g. int *i. */
20817
25647
 
20818
 
#line 20819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25648
#line 25649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20819
25649
} // closed Puma
 
25650
class CCExprResolve;
 
25651
class CExprResolve;
20820
25652
class WinIfExists;
20821
25653
class WinImportHandler;
20822
25654
class WinMacros;
20823
 
class CMatchSyntax;
20824
 
class ExtGnu;
 
25655
class WinAsm;
 
25656
class WinDeclSpecs;
 
25657
class WinMemberExplSpec;
 
25658
class WinTypeKeywords;
 
25659
class WinFriend;
20825
25660
class ExtAC;
20826
25661
class ExtACBuilderCoupling;
20827
25662
class ExtACSyntaxCoupling;
20828
25663
class ExtACTree;
20829
25664
class ExtACKeywords;
20830
 
class WinAsm;
20831
 
class WinDeclSpecs;
20832
 
class WinMemberExplSpec;
20833
 
class WinTypeKeywords;
 
25665
class ExtGnu;
20834
25666
class PragmaOnceUnitState;
20835
25667
class PragmaOnce;
20836
 
class CCExprResolve;
20837
 
class CExprResolve;
 
25668
class CMatchSyntax;
20838
25669
namespace Puma {
20839
25670
 
20840
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25671
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20841
25672
class CT_ObjDecl : public CT_Decl {
20842
 
#line 20843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25673
#line 25674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25674
  friend class ::CCExprResolve;
 
25675
  friend class ::CExprResolve;
20843
25676
  friend class ::WinIfExists;
20844
25677
  friend class ::WinImportHandler;
20845
25678
  friend class ::WinMacros;
20846
 
  friend class ::CMatchSyntax;
20847
 
  friend class ::ExtGnu;
 
25679
  friend class ::WinAsm;
 
25680
  friend class ::WinDeclSpecs;
 
25681
  friend class ::WinMemberExplSpec;
 
25682
  friend class ::WinTypeKeywords;
 
25683
  friend class ::WinFriend;
20848
25684
  friend class ::ExtAC;
20849
25685
  friend class ::ExtACBuilderCoupling;
20850
25686
  friend class ::ExtACSyntaxCoupling;
20851
25687
  friend class ::ExtACTree;
20852
25688
  friend class ::ExtACKeywords;
20853
 
  friend class ::WinAsm;
20854
 
  friend class ::WinDeclSpecs;
20855
 
  friend class ::WinMemberExplSpec;
20856
 
  friend class ::WinTypeKeywords;
 
25689
  friend class ::ExtGnu;
20857
25690
  friend class ::PragmaOnceUnitState;
20858
25691
  friend class ::PragmaOnce;
20859
 
  friend class ::CCExprResolve;
20860
 
  friend class ::CExprResolve;
 
25692
  friend class ::CMatchSyntax;
20861
25693
 
20862
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25694
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20863
25695
 
20864
25696
  CTree *sons[3]; // declspecs, declarators, colon
20865
25697
 
20866
25698
public:
 
25699
  /** Constructor.
 
25700
   *  \param dsl The declaration specifier sequence.
 
25701
   *  \param dl The declarator list.
 
25702
   *  \param c Optional colon. */
20867
25703
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
20868
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
25704
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
20869
25705
  }
 
25706
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20870
25707
  static const char *NodeId ();
 
25708
  /** Get the name of the node. Can be compared with NodeId(). */
20871
25709
  const char *NodeName () const { return NodeId (); }
 
25710
  /** Get the number of sons. */
20872
25711
  int Sons () const { return 3; }
 
25712
  /** Get the n-th son.
 
25713
   *  \param n The index of the son.
 
25714
   *  \return The n-th son or NULL. */
20873
25715
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
25716
  /** Get the declaration specifier sequence. */
20874
25717
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
25718
  /** Get the declarator list. */
20875
25719
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
25720
  /** Replace a son.
 
25721
   *  \param old_son The son to replace.
 
25722
   *  \param new_son The new son. */
20876
25723
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20877
25724
    CTree::ReplaceSon (sons, 3, old_son, new_son);
20878
25725
  }
20879
25726
};
20880
25727
 
 
25728
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
25729
 *  Tree node representing a template declaration. */
20881
25730
 
20882
 
#line 20883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25731
#line 25732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20883
25732
} // closed Puma
 
25733
class CCExprResolve;
 
25734
class CExprResolve;
20884
25735
class WinIfExists;
20885
25736
class WinImportHandler;
20886
25737
class WinMacros;
20887
 
class CMatchSyntax;
20888
 
class ExtGnu;
 
25738
class WinAsm;
 
25739
class WinDeclSpecs;
 
25740
class WinMemberExplSpec;
 
25741
class WinTypeKeywords;
 
25742
class WinFriend;
20889
25743
class ExtAC;
20890
25744
class ExtACBuilderCoupling;
20891
25745
class ExtACSyntaxCoupling;
20892
25746
class ExtACTree;
20893
25747
class ExtACKeywords;
20894
 
class WinAsm;
20895
 
class WinDeclSpecs;
20896
 
class WinMemberExplSpec;
20897
 
class WinTypeKeywords;
 
25748
class ExtGnu;
20898
25749
class PragmaOnceUnitState;
20899
25750
class PragmaOnce;
20900
 
class CCExprResolve;
20901
 
class CExprResolve;
 
25751
class CMatchSyntax;
20902
25752
namespace Puma {
20903
25753
 
20904
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25754
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20905
25755
class CT_TemplateDecl : public CT_Decl, public CSemScope {
20906
 
#line 20907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25756
#line 25757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25757
  friend class ::CCExprResolve;
 
25758
  friend class ::CExprResolve;
20907
25759
  friend class ::WinIfExists;
20908
25760
  friend class ::WinImportHandler;
20909
25761
  friend class ::WinMacros;
20910
 
  friend class ::CMatchSyntax;
20911
 
  friend class ::ExtGnu;
 
25762
  friend class ::WinAsm;
 
25763
  friend class ::WinDeclSpecs;
 
25764
  friend class ::WinMemberExplSpec;
 
25765
  friend class ::WinTypeKeywords;
 
25766
  friend class ::WinFriend;
20912
25767
  friend class ::ExtAC;
20913
25768
  friend class ::ExtACBuilderCoupling;
20914
25769
  friend class ::ExtACSyntaxCoupling;
20915
25770
  friend class ::ExtACTree;
20916
25771
  friend class ::ExtACKeywords;
20917
 
  friend class ::WinAsm;
20918
 
  friend class ::WinDeclSpecs;
20919
 
  friend class ::WinMemberExplSpec;
20920
 
  friend class ::WinTypeKeywords;
 
25772
  friend class ::ExtGnu;
20921
25773
  friend class ::PragmaOnceUnitState;
20922
25774
  friend class ::PragmaOnce;
20923
 
  friend class ::CCExprResolve;
20924
 
  friend class ::CExprResolve;
 
25775
  friend class ::CMatchSyntax;
20925
25776
 
20926
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25777
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20927
25778
 
20928
25779
  CTree *sons[3]; // export, param_list, decl
20929
25780
 
20930
25781
public:
 
25782
  /** Constructor.
 
25783
   *  \param e Optional 'export' keyword. 
 
25784
   *  \param p The template parameter list.
 
25785
   *  \param d The class or function declaration. */
20931
25786
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
20932
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
25787
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
20933
25788
  }
 
25789
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20934
25790
  static const char *NodeId ();
 
25791
  /** Get the name of the node. Can be compared with NodeId(). */
20935
25792
  const char *NodeName () const { return NodeId (); }
 
25793
  /** Get the number of sons. */
20936
25794
  int Sons () const { return CTree::Sons (sons, 3); }
 
25795
  /** Get the n-th son.
 
25796
   *  \param n The index of the son.
 
25797
   *  \return The n-th son or NULL. */
20937
25798
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
25799
  /** Replace a son.
 
25800
   *  \param old_son The son to replace.
 
25801
   *  \param new_son The new son. */
20938
25802
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20939
25803
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
20940
25804
  }
 
25805
  /** Get the 'export' keyword. */
20941
25806
  CTree *Export () const { return sons[0]; }
 
25807
  /** Get the template parameter list. */
20942
25808
  CT_TemplateParamList *Parameters () const { 
20943
25809
    return (CT_TemplateParamList*)sons[1]; 
20944
25810
  }
 
25811
  /** Get the class or function declaration. */
20945
25812
  CTree *Declaration () const { return sons[2]; }
 
25813
  /** Get the semantic scope object. */
 
25814
  CSemScope *SemScope () const { return (CSemScope*)this; }
20946
25815
};
20947
25816
 
 
25817
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
25818
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
20948
25819
 
20949
 
#line 20950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25820
#line 25821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
20950
25821
} // closed Puma
 
25822
class CCExprResolve;
 
25823
class CExprResolve;
20951
25824
class WinIfExists;
20952
25825
class WinImportHandler;
20953
25826
class WinMacros;
20954
 
class CMatchSyntax;
20955
 
class ExtGnu;
 
25827
class WinAsm;
 
25828
class WinDeclSpecs;
 
25829
class WinMemberExplSpec;
 
25830
class WinTypeKeywords;
 
25831
class WinFriend;
20956
25832
class ExtAC;
20957
25833
class ExtACBuilderCoupling;
20958
25834
class ExtACSyntaxCoupling;
20959
25835
class ExtACTree;
20960
25836
class ExtACKeywords;
20961
 
class WinAsm;
20962
 
class WinDeclSpecs;
20963
 
class WinMemberExplSpec;
20964
 
class WinTypeKeywords;
 
25837
class ExtGnu;
20965
25838
class PragmaOnceUnitState;
20966
25839
class PragmaOnce;
20967
 
class CCExprResolve;
20968
 
class CExprResolve;
 
25840
class CMatchSyntax;
20969
25841
namespace Puma {
20970
25842
 
20971
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25843
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20972
25844
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
20973
 
#line 20974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25845
#line 25846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25846
  friend class ::CCExprResolve;
 
25847
  friend class ::CExprResolve;
20974
25848
  friend class ::WinIfExists;
20975
25849
  friend class ::WinImportHandler;
20976
25850
  friend class ::WinMacros;
20977
 
  friend class ::CMatchSyntax;
20978
 
  friend class ::ExtGnu;
 
25851
  friend class ::WinAsm;
 
25852
  friend class ::WinDeclSpecs;
 
25853
  friend class ::WinMemberExplSpec;
 
25854
  friend class ::WinTypeKeywords;
 
25855
  friend class ::WinFriend;
20979
25856
  friend class ::ExtAC;
20980
25857
  friend class ::ExtACBuilderCoupling;
20981
25858
  friend class ::ExtACSyntaxCoupling;
20982
25859
  friend class ::ExtACTree;
20983
25860
  friend class ::ExtACKeywords;
20984
 
  friend class ::WinAsm;
20985
 
  friend class ::WinDeclSpecs;
20986
 
  friend class ::WinMemberExplSpec;
20987
 
  friend class ::WinTypeKeywords;
 
25861
  friend class ::ExtGnu;
20988
25862
  friend class ::PragmaOnceUnitState;
20989
25863
  friend class ::PragmaOnce;
20990
 
  friend class ::CCExprResolve;
20991
 
  friend class ::CExprResolve;
 
25864
  friend class ::CMatchSyntax;
20992
25865
 
20993
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25866
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20994
25867
 
20995
25868
protected:
 
25869
  /** Constructor. */
20996
25870
  CT_TemplateParamDecl () {}
20997
25871
  
20998
25872
public:
 
25873
  /** Get the template default argument. */
20999
25874
  virtual CT_ExprList *DefaultArgument () const = 0;
 
25875
  /** Get the semantic information object. */
21000
25876
  CSemObject *SemObject () const { return (CSemObject*)this; }
21001
25877
};
21002
25878
 
21003
25879
 
21004
 
#line 21005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25880
#line 25881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21005
25881
} // closed Puma
 
25882
class CCExprResolve;
 
25883
class CExprResolve;
21006
25884
class WinIfExists;
21007
25885
class WinImportHandler;
21008
25886
class WinMacros;
21009
 
class CMatchSyntax;
21010
 
class ExtGnu;
 
25887
class WinAsm;
 
25888
class WinDeclSpecs;
 
25889
class WinMemberExplSpec;
 
25890
class WinTypeKeywords;
 
25891
class WinFriend;
21011
25892
class ExtAC;
21012
25893
class ExtACBuilderCoupling;
21013
25894
class ExtACSyntaxCoupling;
21014
25895
class ExtACTree;
21015
25896
class ExtACKeywords;
21016
 
class WinAsm;
21017
 
class WinDeclSpecs;
21018
 
class WinMemberExplSpec;
21019
 
class WinTypeKeywords;
 
25897
class ExtGnu;
21020
25898
class PragmaOnceUnitState;
21021
25899
class PragmaOnce;
21022
 
class CCExprResolve;
21023
 
class CExprResolve;
 
25900
class CMatchSyntax;
21024
25901
namespace Puma {
21025
25902
 
21026
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25903
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21027
25904
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
21028
 
#line 21029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25905
#line 25906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25906
  friend class ::CCExprResolve;
 
25907
  friend class ::CExprResolve;
21029
25908
  friend class ::WinIfExists;
21030
25909
  friend class ::WinImportHandler;
21031
25910
  friend class ::WinMacros;
21032
 
  friend class ::CMatchSyntax;
21033
 
  friend class ::ExtGnu;
 
25911
  friend class ::WinAsm;
 
25912
  friend class ::WinDeclSpecs;
 
25913
  friend class ::WinMemberExplSpec;
 
25914
  friend class ::WinTypeKeywords;
 
25915
  friend class ::WinFriend;
21034
25916
  friend class ::ExtAC;
21035
25917
  friend class ::ExtACBuilderCoupling;
21036
25918
  friend class ::ExtACSyntaxCoupling;
21037
25919
  friend class ::ExtACTree;
21038
25920
  friend class ::ExtACKeywords;
21039
 
  friend class ::WinAsm;
21040
 
  friend class ::WinDeclSpecs;
21041
 
  friend class ::WinMemberExplSpec;
21042
 
  friend class ::WinTypeKeywords;
 
25921
  friend class ::ExtGnu;
21043
25922
  friend class ::PragmaOnceUnitState;
21044
25923
  friend class ::PragmaOnce;
21045
 
  friend class ::CCExprResolve;
21046
 
  friend class ::CExprResolve;
 
25924
  friend class ::CMatchSyntax;
21047
25925
 
21048
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25926
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21049
25927
 
21050
25928
  CTree *sons[3]; // declspecs, declarator, init
21051
25929
 
21052
25930
public:
21053
25931
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
21054
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
25932
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
21055
25933
  }
 
25934
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21056
25935
  static const char *NodeId ();
 
25936
  /** Get the name of the node. Can be compared with NodeId(). */
21057
25937
  const char *NodeName () const { return NodeId (); }
 
25938
  /** Get the number of sons. */
21058
25939
  int Sons () const { return CTree::Sons (sons, 3); }
 
25940
  /** Get the n-th son.
 
25941
   *  \param n The index of the son.
 
25942
   *  \return The n-th son or NULL. */
21059
25943
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21060
25944
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
21061
25945
  CTree *Declarator () const { return sons[1]; }
21062
25946
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
21063
25947
  CSemObject *SemObject () const { return (CSemObject*)this; }
21064
 
  void Initializer (CTree *i) { sons[2] = i; }
 
25948
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
25949
  /** Replace a son.
 
25950
   *  \param old_son The son to replace.
 
25951
   *  \param new_son The new son. */
21065
25952
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21066
25953
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21067
25954
  }
21068
25955
};
21069
25956
 
21070
25957
 
21071
 
#line 21072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25958
#line 25959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21072
25959
} // closed Puma
 
25960
class CCExprResolve;
 
25961
class CExprResolve;
21073
25962
class WinIfExists;
21074
25963
class WinImportHandler;
21075
25964
class WinMacros;
21076
 
class CMatchSyntax;
21077
 
class ExtGnu;
 
25965
class WinAsm;
 
25966
class WinDeclSpecs;
 
25967
class WinMemberExplSpec;
 
25968
class WinTypeKeywords;
 
25969
class WinFriend;
21078
25970
class ExtAC;
21079
25971
class ExtACBuilderCoupling;
21080
25972
class ExtACSyntaxCoupling;
21081
25973
class ExtACTree;
21082
25974
class ExtACKeywords;
21083
 
class WinAsm;
21084
 
class WinDeclSpecs;
21085
 
class WinMemberExplSpec;
21086
 
class WinTypeKeywords;
 
25975
class ExtGnu;
21087
25976
class PragmaOnceUnitState;
21088
25977
class PragmaOnce;
21089
 
class CCExprResolve;
21090
 
class CExprResolve;
 
25978
class CMatchSyntax;
21091
25979
namespace Puma {
21092
25980
 
21093
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25981
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21094
25982
class CT_TypeParamDecl : public CT_TemplateParamDecl {
21095
 
#line 21096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
25983
#line 25984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
25984
  friend class ::CCExprResolve;
 
25985
  friend class ::CExprResolve;
21096
25986
  friend class ::WinIfExists;
21097
25987
  friend class ::WinImportHandler;
21098
25988
  friend class ::WinMacros;
21099
 
  friend class ::CMatchSyntax;
21100
 
  friend class ::ExtGnu;
 
25989
  friend class ::WinAsm;
 
25990
  friend class ::WinDeclSpecs;
 
25991
  friend class ::WinMemberExplSpec;
 
25992
  friend class ::WinTypeKeywords;
 
25993
  friend class ::WinFriend;
21101
25994
  friend class ::ExtAC;
21102
25995
  friend class ::ExtACBuilderCoupling;
21103
25996
  friend class ::ExtACSyntaxCoupling;
21104
25997
  friend class ::ExtACTree;
21105
25998
  friend class ::ExtACKeywords;
21106
 
  friend class ::WinAsm;
21107
 
  friend class ::WinDeclSpecs;
21108
 
  friend class ::WinMemberExplSpec;
21109
 
  friend class ::WinTypeKeywords;
 
25999
  friend class ::ExtGnu;
21110
26000
  friend class ::PragmaOnceUnitState;
21111
26001
  friend class ::PragmaOnce;
21112
 
  friend class ::CCExprResolve;
21113
 
  friend class ::CExprResolve;
 
26002
  friend class ::CMatchSyntax;
21114
26003
 
21115
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26004
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21116
26005
 
21117
26006
  CTree *sons[4]; // params, key, id, init
21118
26007
 
21119
26008
public:
21120
26009
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
21121
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
26010
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
26011
    AddSon (sons[2], id); AddSon (sons[3], i);
21122
26012
  }
 
26013
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21123
26014
  static const char *NodeId ();
 
26015
  /** Get the name of the node. Can be compared with NodeId(). */
21124
26016
  const char *NodeName () const { return NodeId (); }
 
26017
  /** Get the number of sons. */
21125
26018
  int Sons () const { return CTree::Sons (sons, 4); }
 
26019
  /** Get the n-th son.
 
26020
   *  \param n The index of the son.
 
26021
   *  \return The n-th son or NULL. */
21126
26022
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
21127
26023
  CT_TemplateParamList *Parameters () const { 
21128
26024
    return (CT_TemplateParamList*)sons[0]; 
21129
26025
  }
21130
26026
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
21131
26027
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
21132
 
  void Initializer (CTree *i) { sons[3] = i; }
 
26028
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
26029
  /** Replace a son.
 
26030
   *  \param old_son The son to replace.
 
26031
   *  \param new_son The new son. */
21133
26032
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21134
26033
    CTree::ReplaceSon (sons, 4, old_son, new_son);
21135
26034
  }
21136
26035
};
21137
26036
 
21138
26037
 
21139
 
#line 21140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26038
#line 26039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21140
26039
} // closed Puma
 
26040
class CCExprResolve;
 
26041
class CExprResolve;
21141
26042
class WinIfExists;
21142
26043
class WinImportHandler;
21143
26044
class WinMacros;
21144
 
class CMatchSyntax;
21145
 
class ExtGnu;
 
26045
class WinAsm;
 
26046
class WinDeclSpecs;
 
26047
class WinMemberExplSpec;
 
26048
class WinTypeKeywords;
 
26049
class WinFriend;
21146
26050
class ExtAC;
21147
26051
class ExtACBuilderCoupling;
21148
26052
class ExtACSyntaxCoupling;
21149
26053
class ExtACTree;
21150
26054
class ExtACKeywords;
21151
 
class WinAsm;
21152
 
class WinDeclSpecs;
21153
 
class WinMemberExplSpec;
21154
 
class WinTypeKeywords;
 
26055
class ExtGnu;
21155
26056
class PragmaOnceUnitState;
21156
26057
class PragmaOnce;
21157
 
class CCExprResolve;
21158
 
class CExprResolve;
 
26058
class CMatchSyntax;
21159
26059
namespace Puma {
21160
26060
 
21161
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26061
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21162
26062
class CT_EnumDef : public CT_Decl, public CSemObject {
21163
 
#line 21164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26063
#line 26064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26064
  friend class ::CCExprResolve;
 
26065
  friend class ::CExprResolve;
21164
26066
  friend class ::WinIfExists;
21165
26067
  friend class ::WinImportHandler;
21166
26068
  friend class ::WinMacros;
21167
 
  friend class ::CMatchSyntax;
21168
 
  friend class ::ExtGnu;
 
26069
  friend class ::WinAsm;
 
26070
  friend class ::WinDeclSpecs;
 
26071
  friend class ::WinMemberExplSpec;
 
26072
  friend class ::WinTypeKeywords;
 
26073
  friend class ::WinFriend;
21169
26074
  friend class ::ExtAC;
21170
26075
  friend class ::ExtACBuilderCoupling;
21171
26076
  friend class ::ExtACSyntaxCoupling;
21172
26077
  friend class ::ExtACTree;
21173
26078
  friend class ::ExtACKeywords;
21174
 
  friend class ::WinAsm;
21175
 
  friend class ::WinDeclSpecs;
21176
 
  friend class ::WinMemberExplSpec;
21177
 
  friend class ::WinTypeKeywords;
 
26079
  friend class ::ExtGnu;
21178
26080
  friend class ::PragmaOnceUnitState;
21179
26081
  friend class ::PragmaOnce;
21180
 
  friend class ::CCExprResolve;
21181
 
  friend class ::CExprResolve;
 
26082
  friend class ::CMatchSyntax;
21182
26083
 
21183
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26084
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21184
26085
 
21185
26086
  CTree *sons[3]; // key, name, enumerators
21186
26087
 
21187
26088
public:
21188
26089
  CT_EnumDef (CTree *k, CTree *n) {
21189
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
26090
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
21190
26091
  }
 
26092
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21191
26093
  static const char *NodeId ();
 
26094
  /** Get the name of the node. Can be compared with NodeId(). */
21192
26095
  const char *NodeName () const { return NodeId (); }
 
26096
  /** Get the number of sons. */
21193
26097
  int Sons () const { return CTree::Sons (sons, 3); }
 
26098
  /** Get the n-th son.
 
26099
   *  \param n The index of the son.
 
26100
   *  \return The n-th son or NULL. */
21194
26101
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21195
26102
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
21196
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
26103
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
21197
26104
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
26105
  /** Replace a son.
 
26106
   *  \param old_son The son to replace.
 
26107
   *  \param new_son The new son. */
21198
26108
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21199
26109
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21200
26110
  }
21202
26112
};
21203
26113
 
21204
26114
 
21205
 
#line 21206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26115
#line 26116 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21206
26116
} // closed Puma
 
26117
class CCExprResolve;
 
26118
class CExprResolve;
21207
26119
class WinIfExists;
21208
26120
class WinImportHandler;
21209
26121
class WinMacros;
21210
 
class CMatchSyntax;
21211
 
class ExtGnu;
 
26122
class WinAsm;
 
26123
class WinDeclSpecs;
 
26124
class WinMemberExplSpec;
 
26125
class WinTypeKeywords;
 
26126
class WinFriend;
21212
26127
class ExtAC;
21213
26128
class ExtACBuilderCoupling;
21214
26129
class ExtACSyntaxCoupling;
21215
26130
class ExtACTree;
21216
26131
class ExtACKeywords;
21217
 
class WinAsm;
21218
 
class WinDeclSpecs;
21219
 
class WinMemberExplSpec;
21220
 
class WinTypeKeywords;
 
26132
class ExtGnu;
21221
26133
class PragmaOnceUnitState;
21222
26134
class PragmaOnce;
21223
 
class CCExprResolve;
21224
 
class CExprResolve;
 
26135
class CMatchSyntax;
21225
26136
namespace Puma {
21226
26137
 
21227
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26138
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21228
26139
class CT_Enumerator : public CT_Decl, public CSemObject {
21229
 
#line 21230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26140
#line 26141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26141
  friend class ::CCExprResolve;
 
26142
  friend class ::CExprResolve;
21230
26143
  friend class ::WinIfExists;
21231
26144
  friend class ::WinImportHandler;
21232
26145
  friend class ::WinMacros;
21233
 
  friend class ::CMatchSyntax;
21234
 
  friend class ::ExtGnu;
 
26146
  friend class ::WinAsm;
 
26147
  friend class ::WinDeclSpecs;
 
26148
  friend class ::WinMemberExplSpec;
 
26149
  friend class ::WinTypeKeywords;
 
26150
  friend class ::WinFriend;
21235
26151
  friend class ::ExtAC;
21236
26152
  friend class ::ExtACBuilderCoupling;
21237
26153
  friend class ::ExtACSyntaxCoupling;
21238
26154
  friend class ::ExtACTree;
21239
26155
  friend class ::ExtACKeywords;
21240
 
  friend class ::WinAsm;
21241
 
  friend class ::WinDeclSpecs;
21242
 
  friend class ::WinMemberExplSpec;
21243
 
  friend class ::WinTypeKeywords;
 
26156
  friend class ::ExtGnu;
21244
26157
  friend class ::PragmaOnceUnitState;
21245
26158
  friend class ::PragmaOnce;
21246
 
  friend class ::CCExprResolve;
21247
 
  friend class ::CExprResolve;
 
26159
  friend class ::CMatchSyntax;
21248
26160
 
21249
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26161
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21250
26162
 
21251
26163
  CTree *sons[2]; // name, init
21252
26164
 
21253
26165
public:
21254
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
26166
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
26167
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21255
26168
  static const char *NodeId ();
 
26169
  /** Get the name of the node. Can be compared with NodeId(). */
21256
26170
  const char *NodeName () const { return NodeId (); }
 
26171
  /** Get the number of sons. */
21257
26172
  int Sons () const { return CTree::Sons (sons, 2); }
 
26173
  /** Get the n-th son.
 
26174
   *  \param n The index of the son.
 
26175
   *  \return The n-th son or NULL. */
21258
26176
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
21259
26177
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
21260
 
  void Initializer (CTree *i) { sons[1] = i; }
 
26178
  void Initializer (CTree *i) { AddSon (sons[1], i); }
21261
26179
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
26180
  /** Replace a son.
 
26181
   *  \param old_son The son to replace.
 
26182
   *  \param new_son The new son. */
21262
26183
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21263
26184
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
21264
26185
  }
21266
26187
};
21267
26188
 
21268
26189
 
21269
 
#line 21270 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26190
#line 26191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21270
26191
} // closed Puma
 
26192
class CCExprResolve;
 
26193
class CExprResolve;
21271
26194
class WinIfExists;
21272
26195
class WinImportHandler;
21273
26196
class WinMacros;
21274
 
class CMatchSyntax;
21275
 
class ExtGnu;
 
26197
class WinAsm;
 
26198
class WinDeclSpecs;
 
26199
class WinMemberExplSpec;
 
26200
class WinTypeKeywords;
 
26201
class WinFriend;
21276
26202
class ExtAC;
21277
26203
class ExtACBuilderCoupling;
21278
26204
class ExtACSyntaxCoupling;
21279
26205
class ExtACTree;
21280
26206
class ExtACKeywords;
21281
 
class WinAsm;
21282
 
class WinDeclSpecs;
21283
 
class WinMemberExplSpec;
21284
 
class WinTypeKeywords;
 
26207
class ExtGnu;
21285
26208
class PragmaOnceUnitState;
21286
26209
class PragmaOnce;
21287
 
class CCExprResolve;
21288
 
class CExprResolve;
 
26210
class CMatchSyntax;
21289
26211
namespace Puma {
21290
26212
 
21291
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26213
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21292
26214
class CT_FctDef : public CT_Decl, public CSemObject {
21293
 
#line 21294 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26215
#line 26216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26216
  friend class ::CCExprResolve;
 
26217
  friend class ::CExprResolve;
21294
26218
  friend class ::WinIfExists;
21295
26219
  friend class ::WinImportHandler;
21296
26220
  friend class ::WinMacros;
21297
 
  friend class ::CMatchSyntax;
21298
 
  friend class ::ExtGnu;
 
26221
  friend class ::WinAsm;
 
26222
  friend class ::WinDeclSpecs;
 
26223
  friend class ::WinMemberExplSpec;
 
26224
  friend class ::WinTypeKeywords;
 
26225
  friend class ::WinFriend;
21299
26226
  friend class ::ExtAC;
21300
26227
  friend class ::ExtACBuilderCoupling;
21301
26228
  friend class ::ExtACSyntaxCoupling;
21302
26229
  friend class ::ExtACTree;
21303
26230
  friend class ::ExtACKeywords;
21304
 
  friend class ::WinAsm;
21305
 
  friend class ::WinDeclSpecs;
21306
 
  friend class ::WinMemberExplSpec;
21307
 
  friend class ::WinTypeKeywords;
 
26231
  friend class ::ExtGnu;
21308
26232
  friend class ::PragmaOnceUnitState;
21309
26233
  friend class ::PragmaOnce;
21310
 
  friend class ::CCExprResolve;
21311
 
  friend class ::CExprResolve;
 
26234
  friend class ::CMatchSyntax;
21312
26235
 
21313
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26236
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21314
26237
 
21315
26238
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
21316
26239
 
21317
26240
public:
21318
26241
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
21319
26242
             CTree *b, CTree *hs) {
21320
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
21321
 
    sons[5] = b; sons[6] = hs; 
 
26243
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
26244
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
26245
    AddSon (sons[6], hs); 
21322
26246
  }
 
26247
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21323
26248
  static const char *NodeId ();
 
26249
  /** Get the name of the node. Can be compared with NodeId(). */
21324
26250
  const char *NodeName () const { return NodeId (); }
 
26251
  /** Get the number of sons. */
21325
26252
  int Sons () const { return CTree::Sons (sons, 7); }
 
26253
  /** Get the n-th son.
 
26254
   *  \param n The index of the son.
 
26255
   *  \return The n-th son or NULL. */
21326
26256
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
21327
26257
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
21328
26258
  CTree *Declarator () const { return sons[1]; }
21332
26262
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
21333
26263
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
21334
26264
  CSemObject *SemObject () const { return (CSemObject*)this; }
21335
 
  void CtorInit (CTree *i) { sons[3] = i; }
21336
 
  void Body (CTree *b) { sons[5] = b; }
 
26265
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
26266
  void Body (CTree *b) { AddSon (sons[5], b); }
21337
26267
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
21338
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
26268
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
26269
    AddSon (sons[5], b); AddSon (sons[6], h);
21339
26270
  }
 
26271
  /** Replace a son.
 
26272
   *  \param old_son The son to replace.
 
26273
   *  \param new_son The new son. */
21340
26274
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21341
26275
    CTree::ReplaceSon (sons, 7, old_son, new_son);
21342
26276
  }
21343
26277
};
21344
26278
 
21345
26279
 
21346
 
#line 21347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26280
#line 26281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21347
26281
} // closed Puma
 
26282
class CCExprResolve;
 
26283
class CExprResolve;
21348
26284
class WinIfExists;
21349
26285
class WinImportHandler;
21350
26286
class WinMacros;
21351
 
class CMatchSyntax;
21352
 
class ExtGnu;
 
26287
class WinAsm;
 
26288
class WinDeclSpecs;
 
26289
class WinMemberExplSpec;
 
26290
class WinTypeKeywords;
 
26291
class WinFriend;
21353
26292
class ExtAC;
21354
26293
class ExtACBuilderCoupling;
21355
26294
class ExtACSyntaxCoupling;
21356
26295
class ExtACTree;
21357
26296
class ExtACKeywords;
21358
 
class WinAsm;
21359
 
class WinDeclSpecs;
21360
 
class WinMemberExplSpec;
21361
 
class WinTypeKeywords;
 
26297
class ExtGnu;
21362
26298
class PragmaOnceUnitState;
21363
26299
class PragmaOnce;
21364
 
class CCExprResolve;
21365
 
class CExprResolve;
 
26300
class CMatchSyntax;
21366
26301
namespace Puma {
21367
26302
 
21368
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26303
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21369
26304
class CT_AsmDef : public CT_Decl {
21370
 
#line 21371 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26305
#line 26306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26306
  friend class ::CCExprResolve;
 
26307
  friend class ::CExprResolve;
21371
26308
  friend class ::WinIfExists;
21372
26309
  friend class ::WinImportHandler;
21373
26310
  friend class ::WinMacros;
21374
 
  friend class ::CMatchSyntax;
21375
 
  friend class ::ExtGnu;
 
26311
  friend class ::WinAsm;
 
26312
  friend class ::WinDeclSpecs;
 
26313
  friend class ::WinMemberExplSpec;
 
26314
  friend class ::WinTypeKeywords;
 
26315
  friend class ::WinFriend;
21376
26316
  friend class ::ExtAC;
21377
26317
  friend class ::ExtACBuilderCoupling;
21378
26318
  friend class ::ExtACSyntaxCoupling;
21379
26319
  friend class ::ExtACTree;
21380
26320
  friend class ::ExtACKeywords;
21381
 
  friend class ::WinAsm;
21382
 
  friend class ::WinDeclSpecs;
21383
 
  friend class ::WinMemberExplSpec;
21384
 
  friend class ::WinTypeKeywords;
 
26321
  friend class ::ExtGnu;
21385
26322
  friend class ::PragmaOnceUnitState;
21386
26323
  friend class ::PragmaOnce;
21387
 
  friend class ::CCExprResolve;
21388
 
  friend class ::CExprResolve;
 
26324
  friend class ::CMatchSyntax;
21389
26325
 
21390
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26326
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21391
26327
 
21392
26328
  CTree *sons[5]; // asm, open, str, close, semi_colon
21393
26329
 
21394
26330
public:
21395
26331
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
21396
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
26332
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
26333
    AddSon (sons[3], c); AddSon (sons[4], sc); 
21397
26334
  }
 
26335
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21398
26336
  static const char *NodeId ();
 
26337
  /** Get the name of the node. Can be compared with NodeId(). */
21399
26338
  const char *NodeName () const { return NodeId (); }
 
26339
  /** Get the number of sons. */
21400
26340
  int Sons () const { return 5; }
 
26341
  /** Get the n-th son.
 
26342
   *  \param n The index of the son.
 
26343
   *  \return The n-th son or NULL. */
21401
26344
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
21402
26345
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
26346
  /** Replace a son.
 
26347
   *  \param old_son The son to replace.
 
26348
   *  \param new_son The new son. */
21403
26349
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21404
26350
    CTree::ReplaceSon (sons, 5, old_son, new_son);
21405
26351
  }
21406
26352
};
21407
26353
 
21408
26354
 
21409
 
#line 21410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26355
#line 26356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21410
26356
} // closed Puma
 
26357
class CCExprResolve;
 
26358
class CExprResolve;
21411
26359
class WinIfExists;
21412
26360
class WinImportHandler;
21413
26361
class WinMacros;
21414
 
class CMatchSyntax;
21415
 
class ExtGnu;
 
26362
class WinAsm;
 
26363
class WinDeclSpecs;
 
26364
class WinMemberExplSpec;
 
26365
class WinTypeKeywords;
 
26366
class WinFriend;
21416
26367
class ExtAC;
21417
26368
class ExtACBuilderCoupling;
21418
26369
class ExtACSyntaxCoupling;
21419
26370
class ExtACTree;
21420
26371
class ExtACKeywords;
21421
 
class WinAsm;
21422
 
class WinDeclSpecs;
21423
 
class WinMemberExplSpec;
21424
 
class WinTypeKeywords;
 
26372
class ExtGnu;
21425
26373
class PragmaOnceUnitState;
21426
26374
class PragmaOnce;
21427
 
class CCExprResolve;
21428
 
class CExprResolve;
 
26375
class CMatchSyntax;
21429
26376
namespace Puma {
21430
26377
 
21431
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26378
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21432
26379
class CT_Handler : public CT_Decl, public CSemScope {
21433
 
#line 21434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26380
#line 26381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26381
  friend class ::CCExprResolve;
 
26382
  friend class ::CExprResolve;
21434
26383
  friend class ::WinIfExists;
21435
26384
  friend class ::WinImportHandler;
21436
26385
  friend class ::WinMacros;
21437
 
  friend class ::CMatchSyntax;
21438
 
  friend class ::ExtGnu;
 
26386
  friend class ::WinAsm;
 
26387
  friend class ::WinDeclSpecs;
 
26388
  friend class ::WinMemberExplSpec;
 
26389
  friend class ::WinTypeKeywords;
 
26390
  friend class ::WinFriend;
21439
26391
  friend class ::ExtAC;
21440
26392
  friend class ::ExtACBuilderCoupling;
21441
26393
  friend class ::ExtACSyntaxCoupling;
21442
26394
  friend class ::ExtACTree;
21443
26395
  friend class ::ExtACKeywords;
21444
 
  friend class ::WinAsm;
21445
 
  friend class ::WinDeclSpecs;
21446
 
  friend class ::WinMemberExplSpec;
21447
 
  friend class ::WinTypeKeywords;
 
26396
  friend class ::ExtGnu;
21448
26397
  friend class ::PragmaOnceUnitState;
21449
26398
  friend class ::PragmaOnce;
21450
 
  friend class ::CCExprResolve;
21451
 
  friend class ::CExprResolve;
 
26399
  friend class ::CMatchSyntax;
21452
26400
 
21453
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26401
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21454
26402
 
21455
26403
  CTree *sons[3]; // catch, exception_decl, stmt
21456
26404
 
21457
26405
public:
21458
26406
  CT_Handler (CTree *c, CTree *e, CTree *s) {
21459
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
26407
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
21460
26408
  }
 
26409
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21461
26410
  static const char *NodeId ();
 
26411
  /** Get the name of the node. Can be compared with NodeId(). */
21462
26412
  const char *NodeName () const { return NodeId (); }
 
26413
  /** Get the number of sons. */
21463
26414
  int Sons () const { return 3; }
 
26415
  /** Get the n-th son.
 
26416
   *  \param n The index of the son.
 
26417
   *  \return The n-th son or NULL. */
21464
26418
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21465
26419
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
21466
26420
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
26421
  /** Replace a son.
 
26422
   *  \param old_son The son to replace.
 
26423
   *  \param new_son The new son. */
21467
26424
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21468
26425
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21469
26426
  }
 
26427
  CSemScope *SemScope () const { return (CSemScope*)this; }
21470
26428
};
21471
26429
 
21472
26430
 
21473
 
#line 21474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26431
#line 26432 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21474
26432
} // closed Puma
 
26433
class CCExprResolve;
 
26434
class CExprResolve;
21475
26435
class WinIfExists;
21476
26436
class WinImportHandler;
21477
26437
class WinMacros;
21478
 
class CMatchSyntax;
21479
 
class ExtGnu;
 
26438
class WinAsm;
 
26439
class WinDeclSpecs;
 
26440
class WinMemberExplSpec;
 
26441
class WinTypeKeywords;
 
26442
class WinFriend;
21480
26443
class ExtAC;
21481
26444
class ExtACBuilderCoupling;
21482
26445
class ExtACSyntaxCoupling;
21483
26446
class ExtACTree;
21484
26447
class ExtACKeywords;
21485
 
class WinAsm;
21486
 
class WinDeclSpecs;
21487
 
class WinMemberExplSpec;
21488
 
class WinTypeKeywords;
 
26448
class ExtGnu;
21489
26449
class PragmaOnceUnitState;
21490
26450
class PragmaOnce;
21491
 
class CCExprResolve;
21492
 
class CExprResolve;
 
26451
class CMatchSyntax;
21493
26452
namespace Puma {
21494
26453
 
21495
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26454
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21496
26455
class CT_LinkageSpec : public CT_Decl {
21497
 
#line 21498 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26456
#line 26457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26457
  friend class ::CCExprResolve;
 
26458
  friend class ::CExprResolve;
21498
26459
  friend class ::WinIfExists;
21499
26460
  friend class ::WinImportHandler;
21500
26461
  friend class ::WinMacros;
21501
 
  friend class ::CMatchSyntax;
21502
 
  friend class ::ExtGnu;
 
26462
  friend class ::WinAsm;
 
26463
  friend class ::WinDeclSpecs;
 
26464
  friend class ::WinMemberExplSpec;
 
26465
  friend class ::WinTypeKeywords;
 
26466
  friend class ::WinFriend;
21503
26467
  friend class ::ExtAC;
21504
26468
  friend class ::ExtACBuilderCoupling;
21505
26469
  friend class ::ExtACSyntaxCoupling;
21506
26470
  friend class ::ExtACTree;
21507
26471
  friend class ::ExtACKeywords;
21508
 
  friend class ::WinAsm;
21509
 
  friend class ::WinDeclSpecs;
21510
 
  friend class ::WinMemberExplSpec;
21511
 
  friend class ::WinTypeKeywords;
 
26472
  friend class ::ExtGnu;
21512
26473
  friend class ::PragmaOnceUnitState;
21513
26474
  friend class ::PragmaOnce;
21514
 
  friend class ::CCExprResolve;
21515
 
  friend class ::CExprResolve;
 
26475
  friend class ::CMatchSyntax;
21516
26476
 
21517
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26477
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21518
26478
 
21519
26479
  CTree *sons[5]; // extern, str, open, decls, close
21520
26480
 
21521
26481
public:
21522
26482
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
21523
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
26483
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
26484
    AddSon (sons[3], d); AddSon (sons[4], c);
21524
26485
    if (isList ())
21525
26486
      ((CT_DeclList*)Decls ())->Linkage (this);
21526
26487
    else
21527
26488
      ((CT_Decl*)Decls ())->Linkage (this);
21528
26489
  }
 
26490
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21529
26491
  static const char *NodeId ();
 
26492
  /** Get the name of the node. Can be compared with NodeId(). */
21530
26493
  const char *NodeName () const { return NodeId (); }
 
26494
  /** Get the number of sons. */
21531
26495
  int Sons () const { return CTree::Sons (sons, 5); }
 
26496
  /** Get the n-th son.
 
26497
   *  \param n The index of the son.
 
26498
   *  \return The n-th son or NULL. */
21532
26499
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
21533
26500
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
21534
26501
  CTree *Decls () const { return sons[3]; }
21535
26502
  bool isList () const {
21536
26503
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
21537
26504
  }
 
26505
  /** Replace a son.
 
26506
   *  \param old_son The son to replace.
 
26507
   *  \param new_son The new son. */
21538
26508
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21539
26509
    CTree::ReplaceSon (sons, 5, old_son, new_son);
21540
26510
  }
21541
26511
};
21542
26512
 
21543
26513
 
21544
 
#line 21545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26514
#line 26515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21545
26515
} // closed Puma
 
26516
class CCExprResolve;
 
26517
class CExprResolve;
21546
26518
class WinIfExists;
21547
26519
class WinImportHandler;
21548
26520
class WinMacros;
21549
 
class CMatchSyntax;
21550
 
class ExtGnu;
 
26521
class WinAsm;
 
26522
class WinDeclSpecs;
 
26523
class WinMemberExplSpec;
 
26524
class WinTypeKeywords;
 
26525
class WinFriend;
21551
26526
class ExtAC;
21552
26527
class ExtACBuilderCoupling;
21553
26528
class ExtACSyntaxCoupling;
21554
26529
class ExtACTree;
21555
26530
class ExtACKeywords;
21556
 
class WinAsm;
21557
 
class WinDeclSpecs;
21558
 
class WinMemberExplSpec;
21559
 
class WinTypeKeywords;
 
26531
class ExtGnu;
21560
26532
class PragmaOnceUnitState;
21561
26533
class PragmaOnce;
21562
 
class CCExprResolve;
21563
 
class CExprResolve;
 
26534
class CMatchSyntax;
21564
26535
namespace Puma {
21565
26536
 
21566
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26537
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21567
26538
class CT_ArgDecl : public CT_Decl, public CSemObject {
21568
 
#line 21569 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26539
#line 26540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26540
  friend class ::CCExprResolve;
 
26541
  friend class ::CExprResolve;
21569
26542
  friend class ::WinIfExists;
21570
26543
  friend class ::WinImportHandler;
21571
26544
  friend class ::WinMacros;
21572
 
  friend class ::CMatchSyntax;
21573
 
  friend class ::ExtGnu;
 
26545
  friend class ::WinAsm;
 
26546
  friend class ::WinDeclSpecs;
 
26547
  friend class ::WinMemberExplSpec;
 
26548
  friend class ::WinTypeKeywords;
 
26549
  friend class ::WinFriend;
21574
26550
  friend class ::ExtAC;
21575
26551
  friend class ::ExtACBuilderCoupling;
21576
26552
  friend class ::ExtACSyntaxCoupling;
21577
26553
  friend class ::ExtACTree;
21578
26554
  friend class ::ExtACKeywords;
21579
 
  friend class ::WinAsm;
21580
 
  friend class ::WinDeclSpecs;
21581
 
  friend class ::WinMemberExplSpec;
21582
 
  friend class ::WinTypeKeywords;
 
26555
  friend class ::ExtGnu;
21583
26556
  friend class ::PragmaOnceUnitState;
21584
26557
  friend class ::PragmaOnce;
21585
 
  friend class ::CCExprResolve;
21586
 
  friend class ::CExprResolve;
 
26558
  friend class ::CMatchSyntax;
21587
26559
 
21588
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26560
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21589
26561
 
21590
26562
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
21591
26563
 
21592
26564
public:
21593
26565
  CT_ArgDecl (CTree *dsl, CTree *d) {
21594
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
26566
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
26567
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
21595
26568
  }
21596
26569
  CT_ArgDecl (CTree *ellipsis) {
21597
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
26570
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
26571
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
21598
26572
  }
 
26573
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21599
26574
  static const char *NodeId ();
 
26575
  /** Get the name of the node. Can be compared with NodeId(). */
21600
26576
  const char *NodeName () const { return NodeId (); }
 
26577
  /** Get the number of sons. */
21601
26578
  int Sons () const { return CTree::Sons (sons, 4); }
 
26579
  /** Get the n-th son.
 
26580
   *  \param n The index of the son.
 
26581
   *  \return The n-th son or NULL. */
21602
26582
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
21603
26583
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
21604
26584
  CTree *Declarator () const { return sons[1]; }
21605
26585
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
21606
26586
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
21607
26587
  CSemObject *SemObject () const { return (CSemObject*)this; }
21608
 
  void Initializer (CTree *i) { sons[2] = i; }
 
26588
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
26589
  /** Replace a son.
 
26590
   *  \param old_son The son to replace.
 
26591
   *  \param new_son The new son. */
21609
26592
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21610
26593
    CTree::ReplaceSon (sons, 4, old_son, new_son);
21611
26594
  }
21612
26595
};
21613
26596
 
21614
26597
 
21615
 
#line 21616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26598
#line 26599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21616
26599
} // closed Puma
 
26600
class CCExprResolve;
 
26601
class CExprResolve;
21617
26602
class WinIfExists;
21618
26603
class WinImportHandler;
21619
26604
class WinMacros;
21620
 
class CMatchSyntax;
21621
 
class ExtGnu;
 
26605
class WinAsm;
 
26606
class WinDeclSpecs;
 
26607
class WinMemberExplSpec;
 
26608
class WinTypeKeywords;
 
26609
class WinFriend;
21622
26610
class ExtAC;
21623
26611
class ExtACBuilderCoupling;
21624
26612
class ExtACSyntaxCoupling;
21625
26613
class ExtACTree;
21626
26614
class ExtACKeywords;
21627
 
class WinAsm;
21628
 
class WinDeclSpecs;
21629
 
class WinMemberExplSpec;
21630
 
class WinTypeKeywords;
 
26615
class ExtGnu;
21631
26616
class PragmaOnceUnitState;
21632
26617
class PragmaOnce;
21633
 
class CCExprResolve;
21634
 
class CExprResolve;
 
26618
class CMatchSyntax;
21635
26619
namespace Puma {
21636
26620
 
21637
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26621
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21638
26622
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
21639
 
#line 21640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26623
#line 26624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26624
  friend class ::CCExprResolve;
 
26625
  friend class ::CExprResolve;
21640
26626
  friend class ::WinIfExists;
21641
26627
  friend class ::WinImportHandler;
21642
26628
  friend class ::WinMacros;
21643
 
  friend class ::CMatchSyntax;
21644
 
  friend class ::ExtGnu;
 
26629
  friend class ::WinAsm;
 
26630
  friend class ::WinDeclSpecs;
 
26631
  friend class ::WinMemberExplSpec;
 
26632
  friend class ::WinTypeKeywords;
 
26633
  friend class ::WinFriend;
21645
26634
  friend class ::ExtAC;
21646
26635
  friend class ::ExtACBuilderCoupling;
21647
26636
  friend class ::ExtACSyntaxCoupling;
21648
26637
  friend class ::ExtACTree;
21649
26638
  friend class ::ExtACKeywords;
21650
 
  friend class ::WinAsm;
21651
 
  friend class ::WinDeclSpecs;
21652
 
  friend class ::WinMemberExplSpec;
21653
 
  friend class ::WinTypeKeywords;
 
26639
  friend class ::ExtGnu;
21654
26640
  friend class ::PragmaOnceUnitState;
21655
26641
  friend class ::PragmaOnce;
21656
 
  friend class ::CCExprResolve;
21657
 
  friend class ::CExprResolve;
 
26642
  friend class ::CMatchSyntax;
21658
26643
 
21659
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26644
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21660
26645
 
21661
26646
public:
21662
26647
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
21663
26648
   CT_DeclList (size, 2) { AddProperties (props); }
 
26649
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21664
26650
  static const char *NodeId ();
 
26651
  /** Get the name of the node. Can be compared with NodeId(). */
21665
26652
  const char *NodeName () const { return NodeId (); }
 
26653
  CSemScope *SemScope () const { return (CSemScope*)this; }
21666
26654
};
21667
26655
 
21668
26656
 
21669
 
#line 21670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26657
#line 26658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21670
26658
} // closed Puma
 
26659
class CCExprResolve;
 
26660
class CExprResolve;
21671
26661
class WinIfExists;
21672
26662
class WinImportHandler;
21673
26663
class WinMacros;
21674
 
class CMatchSyntax;
21675
 
class ExtGnu;
 
26664
class WinAsm;
 
26665
class WinDeclSpecs;
 
26666
class WinMemberExplSpec;
 
26667
class WinTypeKeywords;
 
26668
class WinFriend;
21676
26669
class ExtAC;
21677
26670
class ExtACBuilderCoupling;
21678
26671
class ExtACSyntaxCoupling;
21679
26672
class ExtACTree;
21680
26673
class ExtACKeywords;
21681
 
class WinAsm;
21682
 
class WinDeclSpecs;
21683
 
class WinMemberExplSpec;
21684
 
class WinTypeKeywords;
 
26674
class ExtGnu;
21685
26675
class PragmaOnceUnitState;
21686
26676
class PragmaOnce;
21687
 
class CCExprResolve;
21688
 
class CExprResolve;
 
26677
class CMatchSyntax;
21689
26678
namespace Puma {
21690
26679
 
21691
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26680
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21692
26681
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
21693
 
#line 21694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26682
#line 26683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26683
  friend class ::CCExprResolve;
 
26684
  friend class ::CExprResolve;
21694
26685
  friend class ::WinIfExists;
21695
26686
  friend class ::WinImportHandler;
21696
26687
  friend class ::WinMacros;
21697
 
  friend class ::CMatchSyntax;
21698
 
  friend class ::ExtGnu;
 
26688
  friend class ::WinAsm;
 
26689
  friend class ::WinDeclSpecs;
 
26690
  friend class ::WinMemberExplSpec;
 
26691
  friend class ::WinTypeKeywords;
 
26692
  friend class ::WinFriend;
21699
26693
  friend class ::ExtAC;
21700
26694
  friend class ::ExtACBuilderCoupling;
21701
26695
  friend class ::ExtACSyntaxCoupling;
21702
26696
  friend class ::ExtACTree;
21703
26697
  friend class ::ExtACKeywords;
21704
 
  friend class ::WinAsm;
21705
 
  friend class ::WinDeclSpecs;
21706
 
  friend class ::WinMemberExplSpec;
21707
 
  friend class ::WinTypeKeywords;
 
26698
  friend class ::ExtGnu;
21708
26699
  friend class ::PragmaOnceUnitState;
21709
26700
  friend class ::PragmaOnce;
21710
 
  friend class ::CCExprResolve;
21711
 
  friend class ::CExprResolve;
 
26701
  friend class ::CMatchSyntax;
21712
26702
 
21713
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26703
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21714
26704
 
21715
26705
public:
21716
26706
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
26707
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21717
26708
  static const char *NodeId ();
 
26709
  /** Get the name of the node. Can be compared with NodeId(). */
21718
26710
  const char *NodeName () const { return NodeId (); }
 
26711
  CSemScope *SemScope () const { return (CSemScope*)this; }
21719
26712
};
21720
26713
 
21721
26714
 
21722
 
#line 21723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26715
#line 26716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21723
26716
} // closed Puma
 
26717
class CCExprResolve;
 
26718
class CExprResolve;
21724
26719
class WinIfExists;
21725
26720
class WinImportHandler;
21726
26721
class WinMacros;
21727
 
class CMatchSyntax;
21728
 
class ExtGnu;
 
26722
class WinAsm;
 
26723
class WinDeclSpecs;
 
26724
class WinMemberExplSpec;
 
26725
class WinTypeKeywords;
 
26726
class WinFriend;
21729
26727
class ExtAC;
21730
26728
class ExtACBuilderCoupling;
21731
26729
class ExtACSyntaxCoupling;
21732
26730
class ExtACTree;
21733
26731
class ExtACKeywords;
21734
 
class WinAsm;
21735
 
class WinDeclSpecs;
21736
 
class WinMemberExplSpec;
21737
 
class WinTypeKeywords;
 
26732
class ExtGnu;
21738
26733
class PragmaOnceUnitState;
21739
26734
class PragmaOnce;
21740
 
class CCExprResolve;
21741
 
class CExprResolve;
 
26735
class CMatchSyntax;
21742
26736
namespace Puma {
21743
26737
 
21744
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26738
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21745
26739
class CT_ArgNameList : public CT_ArgDeclList {
21746
 
#line 21747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26740
#line 26741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26741
  friend class ::CCExprResolve;
 
26742
  friend class ::CExprResolve;
21747
26743
  friend class ::WinIfExists;
21748
26744
  friend class ::WinImportHandler;
21749
26745
  friend class ::WinMacros;
21750
 
  friend class ::CMatchSyntax;
21751
 
  friend class ::ExtGnu;
 
26746
  friend class ::WinAsm;
 
26747
  friend class ::WinDeclSpecs;
 
26748
  friend class ::WinMemberExplSpec;
 
26749
  friend class ::WinTypeKeywords;
 
26750
  friend class ::WinFriend;
21752
26751
  friend class ::ExtAC;
21753
26752
  friend class ::ExtACBuilderCoupling;
21754
26753
  friend class ::ExtACSyntaxCoupling;
21755
26754
  friend class ::ExtACTree;
21756
26755
  friend class ::ExtACKeywords;
21757
 
  friend class ::WinAsm;
21758
 
  friend class ::WinDeclSpecs;
21759
 
  friend class ::WinMemberExplSpec;
21760
 
  friend class ::WinTypeKeywords;
 
26756
  friend class ::ExtGnu;
21761
26757
  friend class ::PragmaOnceUnitState;
21762
26758
  friend class ::PragmaOnce;
21763
 
  friend class ::CCExprResolve;
21764
 
  friend class ::CExprResolve;
 
26759
  friend class ::CMatchSyntax;
21765
26760
 
21766
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26761
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21767
26762
 
21768
26763
public:
21769
26764
  CT_ArgNameList () : CT_ArgDeclList () {}
 
26765
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21770
26766
  static const char *NodeId ();
 
26767
  /** Get the name of the node. Can be compared with NodeId(). */
21771
26768
  const char *NodeName () const { return NodeId (); }
21772
26769
};
21773
26770
 
21774
26771
 
21775
 
#line 21776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26772
#line 26773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21776
26773
} // closed Puma
 
26774
class CCExprResolve;
 
26775
class CExprResolve;
21777
26776
class WinIfExists;
21778
26777
class WinImportHandler;
21779
26778
class WinMacros;
21780
 
class CMatchSyntax;
21781
 
class ExtGnu;
 
26779
class WinAsm;
 
26780
class WinDeclSpecs;
 
26781
class WinMemberExplSpec;
 
26782
class WinTypeKeywords;
 
26783
class WinFriend;
21782
26784
class ExtAC;
21783
26785
class ExtACBuilderCoupling;
21784
26786
class ExtACSyntaxCoupling;
21785
26787
class ExtACTree;
21786
26788
class ExtACKeywords;
21787
 
class WinAsm;
21788
 
class WinDeclSpecs;
21789
 
class WinMemberExplSpec;
21790
 
class WinTypeKeywords;
 
26789
class ExtGnu;
21791
26790
class PragmaOnceUnitState;
21792
26791
class PragmaOnce;
21793
 
class CCExprResolve;
21794
 
class CExprResolve;
 
26792
class CMatchSyntax;
21795
26793
namespace Puma {
21796
26794
 
21797
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26795
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21798
26796
class CT_NamespaceDef : public CT_Decl, public CSemObject {
21799
 
#line 21800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26797
#line 26798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26798
  friend class ::CCExprResolve;
 
26799
  friend class ::CExprResolve;
21800
26800
  friend class ::WinIfExists;
21801
26801
  friend class ::WinImportHandler;
21802
26802
  friend class ::WinMacros;
21803
 
  friend class ::CMatchSyntax;
21804
 
  friend class ::ExtGnu;
 
26803
  friend class ::WinAsm;
 
26804
  friend class ::WinDeclSpecs;
 
26805
  friend class ::WinMemberExplSpec;
 
26806
  friend class ::WinTypeKeywords;
 
26807
  friend class ::WinFriend;
21805
26808
  friend class ::ExtAC;
21806
26809
  friend class ::ExtACBuilderCoupling;
21807
26810
  friend class ::ExtACSyntaxCoupling;
21808
26811
  friend class ::ExtACTree;
21809
26812
  friend class ::ExtACKeywords;
21810
 
  friend class ::WinAsm;
21811
 
  friend class ::WinDeclSpecs;
21812
 
  friend class ::WinMemberExplSpec;
21813
 
  friend class ::WinTypeKeywords;
 
26813
  friend class ::ExtGnu;
21814
26814
  friend class ::PragmaOnceUnitState;
21815
26815
  friend class ::PragmaOnce;
21816
 
  friend class ::CCExprResolve;
21817
 
  friend class ::CExprResolve;
 
26816
  friend class ::CMatchSyntax;
21818
26817
 
21819
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26818
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21820
26819
 
21821
26820
  CTree *sons[3]; // ns, name, members
21822
26821
 
21823
26822
public:
21824
26823
  CT_NamespaceDef (CTree *n, CTree *nm) {
21825
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
26824
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
21826
26825
  }
21827
26826
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
21828
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
26827
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
21829
26828
  }
 
26829
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21830
26830
  static const char *NodeId ();
 
26831
  /** Get the name of the node. Can be compared with NodeId(). */
21831
26832
  const char *NodeName () const { return NodeId (); }
 
26833
  /** Get the number of sons. */
21832
26834
  int Sons () const { return CTree::Sons (sons, 3); }
 
26835
  /** Get the n-th son.
 
26836
   *  \param n The index of the son.
 
26837
   *  \return The n-th son or NULL. */
21833
26838
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21834
 
  void Members (CTree *m) { sons[2] = m; }
 
26839
  void Members (CTree *m) { AddSon (sons[2], m); }
21835
26840
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
21836
26841
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
21837
26842
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
26843
  /** Replace a son.
 
26844
   *  \param old_son The son to replace.
 
26845
   *  \param new_son The new son. */
21838
26846
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21839
26847
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21840
26848
  }
21841
26849
};
21842
26850
 
21843
26851
 
21844
 
#line 21845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26852
#line 26853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21845
26853
} // closed Puma
 
26854
class CCExprResolve;
 
26855
class CExprResolve;
21846
26856
class WinIfExists;
21847
26857
class WinImportHandler;
21848
26858
class WinMacros;
21849
 
class CMatchSyntax;
21850
 
class ExtGnu;
 
26859
class WinAsm;
 
26860
class WinDeclSpecs;
 
26861
class WinMemberExplSpec;
 
26862
class WinTypeKeywords;
 
26863
class WinFriend;
21851
26864
class ExtAC;
21852
26865
class ExtACBuilderCoupling;
21853
26866
class ExtACSyntaxCoupling;
21854
26867
class ExtACTree;
21855
26868
class ExtACKeywords;
21856
 
class WinAsm;
21857
 
class WinDeclSpecs;
21858
 
class WinMemberExplSpec;
21859
 
class WinTypeKeywords;
 
26869
class ExtGnu;
21860
26870
class PragmaOnceUnitState;
21861
26871
class PragmaOnce;
21862
 
class CCExprResolve;
21863
 
class CExprResolve;
 
26872
class CMatchSyntax;
21864
26873
namespace Puma {
21865
26874
 
21866
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26875
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21867
26876
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
21868
 
#line 21869 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26877
#line 26878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26878
  friend class ::CCExprResolve;
 
26879
  friend class ::CExprResolve;
21869
26880
  friend class ::WinIfExists;
21870
26881
  friend class ::WinImportHandler;
21871
26882
  friend class ::WinMacros;
21872
 
  friend class ::CMatchSyntax;
21873
 
  friend class ::ExtGnu;
 
26883
  friend class ::WinAsm;
 
26884
  friend class ::WinDeclSpecs;
 
26885
  friend class ::WinMemberExplSpec;
 
26886
  friend class ::WinTypeKeywords;
 
26887
  friend class ::WinFriend;
21874
26888
  friend class ::ExtAC;
21875
26889
  friend class ::ExtACBuilderCoupling;
21876
26890
  friend class ::ExtACSyntaxCoupling;
21877
26891
  friend class ::ExtACTree;
21878
26892
  friend class ::ExtACKeywords;
21879
 
  friend class ::WinAsm;
21880
 
  friend class ::WinDeclSpecs;
21881
 
  friend class ::WinMemberExplSpec;
21882
 
  friend class ::WinTypeKeywords;
 
26893
  friend class ::ExtGnu;
21883
26894
  friend class ::PragmaOnceUnitState;
21884
26895
  friend class ::PragmaOnce;
21885
 
  friend class ::CCExprResolve;
21886
 
  friend class ::CExprResolve;
 
26896
  friend class ::CMatchSyntax;
21887
26897
 
21888
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26898
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21889
26899
 
21890
26900
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
21891
26901
 
21892
26902
public:
21893
26903
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
21894
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
26904
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
26905
    AddSon (sons[3], nm); AddSon (sons[4], s); 
21895
26906
  }
 
26907
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21896
26908
  static const char *NodeId ();
 
26909
  /** Get the name of the node. Can be compared with NodeId(). */
21897
26910
  const char *NodeName () const { return NodeId (); }
 
26911
  /** Get the number of sons. */
21898
26912
  int Sons () const { return 5; }
 
26913
  /** Get the n-th son.
 
26914
   *  \param n The index of the son.
 
26915
   *  \return The n-th son or NULL. */
21899
26916
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
21900
26917
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
21901
26918
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
21902
26919
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
26920
  /** Replace a son.
 
26921
   *  \param old_son The son to replace.
 
26922
   *  \param new_son The new son. */
21903
26923
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21904
26924
    CTree::ReplaceSon (sons, 5, old_son, new_son);
21905
26925
  }
21906
26926
};
21907
26927
 
21908
26928
 
21909
 
#line 21910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26929
#line 26930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21910
26930
} // closed Puma
 
26931
class CCExprResolve;
 
26932
class CExprResolve;
21911
26933
class WinIfExists;
21912
26934
class WinImportHandler;
21913
26935
class WinMacros;
21914
 
class CMatchSyntax;
21915
 
class ExtGnu;
 
26936
class WinAsm;
 
26937
class WinDeclSpecs;
 
26938
class WinMemberExplSpec;
 
26939
class WinTypeKeywords;
 
26940
class WinFriend;
21916
26941
class ExtAC;
21917
26942
class ExtACBuilderCoupling;
21918
26943
class ExtACSyntaxCoupling;
21919
26944
class ExtACTree;
21920
26945
class ExtACKeywords;
21921
 
class WinAsm;
21922
 
class WinDeclSpecs;
21923
 
class WinMemberExplSpec;
21924
 
class WinTypeKeywords;
 
26946
class ExtGnu;
21925
26947
class PragmaOnceUnitState;
21926
26948
class PragmaOnce;
21927
 
class CCExprResolve;
21928
 
class CExprResolve;
 
26949
class CMatchSyntax;
21929
26950
namespace Puma {
21930
26951
 
21931
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26952
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21932
26953
class CT_UsingDirective : public CT_Decl {
21933
 
#line 21934 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
26954
#line 26955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
26955
  friend class ::CCExprResolve;
 
26956
  friend class ::CExprResolve;
21934
26957
  friend class ::WinIfExists;
21935
26958
  friend class ::WinImportHandler;
21936
26959
  friend class ::WinMacros;
21937
 
  friend class ::CMatchSyntax;
21938
 
  friend class ::ExtGnu;
 
26960
  friend class ::WinAsm;
 
26961
  friend class ::WinDeclSpecs;
 
26962
  friend class ::WinMemberExplSpec;
 
26963
  friend class ::WinTypeKeywords;
 
26964
  friend class ::WinFriend;
21939
26965
  friend class ::ExtAC;
21940
26966
  friend class ::ExtACBuilderCoupling;
21941
26967
  friend class ::ExtACSyntaxCoupling;
21942
26968
  friend class ::ExtACTree;
21943
26969
  friend class ::ExtACKeywords;
21944
 
  friend class ::WinAsm;
21945
 
  friend class ::WinDeclSpecs;
21946
 
  friend class ::WinMemberExplSpec;
21947
 
  friend class ::WinTypeKeywords;
 
26970
  friend class ::ExtGnu;
21948
26971
  friend class ::PragmaOnceUnitState;
21949
26972
  friend class ::PragmaOnce;
21950
 
  friend class ::CCExprResolve;
21951
 
  friend class ::CExprResolve;
 
26973
  friend class ::CMatchSyntax;
21952
26974
 
21953
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26975
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21954
26976
 
21955
26977
  CTree *sons[4]; // using, ns, name, semi_colon
21956
26978
 
21957
26979
public:
21958
26980
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
21959
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
26981
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
26982
    AddSon (sons[3], s); 
21960
26983
  }
 
26984
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21961
26985
  static const char *NodeId ();
 
26986
  /** Get the name of the node. Can be compared with NodeId(). */
21962
26987
  const char *NodeName () const { return NodeId (); }
 
26988
  /** Get the number of sons. */
21963
26989
  int Sons () const { return 4; }
 
26990
  /** Get the n-th son.
 
26991
   *  \param n The index of the son.
 
26992
   *  \return The n-th son or NULL. */
21964
26993
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
21965
26994
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
26995
  /** Replace a son.
 
26996
   *  \param old_son The son to replace.
 
26997
   *  \param new_son The new son. */
21966
26998
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21967
26999
    CTree::ReplaceSon (sons, 4, old_son, new_son);
21968
27000
  }
21975
27007
/*****************************************************************************/
21976
27008
 
21977
27009
 
21978
 
#line 21979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27010
#line 27011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
21979
27011
} // closed Puma
 
27012
class CCExprResolve;
 
27013
class CExprResolve;
21980
27014
class WinIfExists;
21981
27015
class WinImportHandler;
21982
27016
class WinMacros;
21983
 
class CMatchSyntax;
21984
 
class ExtGnu;
 
27017
class WinAsm;
 
27018
class WinDeclSpecs;
 
27019
class WinMemberExplSpec;
 
27020
class WinTypeKeywords;
 
27021
class WinFriend;
21985
27022
class ExtAC;
21986
27023
class ExtACBuilderCoupling;
21987
27024
class ExtACSyntaxCoupling;
21988
27025
class ExtACTree;
21989
27026
class ExtACKeywords;
21990
 
class WinAsm;
21991
 
class WinDeclSpecs;
21992
 
class WinMemberExplSpec;
21993
 
class WinTypeKeywords;
 
27027
class ExtGnu;
21994
27028
class PragmaOnceUnitState;
21995
27029
class PragmaOnce;
21996
 
class CCExprResolve;
21997
 
class CExprResolve;
 
27030
class CMatchSyntax;
21998
27031
namespace Puma {
21999
27032
 
22000
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27033
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22001
27034
class CT_Declarator : public CTree {
22002
 
#line 22003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27035
#line 27036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27036
  friend class ::CCExprResolve;
 
27037
  friend class ::CExprResolve;
22003
27038
  friend class ::WinIfExists;
22004
27039
  friend class ::WinImportHandler;
22005
27040
  friend class ::WinMacros;
22006
 
  friend class ::CMatchSyntax;
22007
 
  friend class ::ExtGnu;
 
27041
  friend class ::WinAsm;
 
27042
  friend class ::WinDeclSpecs;
 
27043
  friend class ::WinMemberExplSpec;
 
27044
  friend class ::WinTypeKeywords;
 
27045
  friend class ::WinFriend;
22008
27046
  friend class ::ExtAC;
22009
27047
  friend class ::ExtACBuilderCoupling;
22010
27048
  friend class ::ExtACSyntaxCoupling;
22011
27049
  friend class ::ExtACTree;
22012
27050
  friend class ::ExtACKeywords;
22013
 
  friend class ::WinAsm;
22014
 
  friend class ::WinDeclSpecs;
22015
 
  friend class ::WinMemberExplSpec;
22016
 
  friend class ::WinTypeKeywords;
 
27051
  friend class ::ExtGnu;
22017
27052
  friend class ::PragmaOnceUnitState;
22018
27053
  friend class ::PragmaOnce;
22019
 
  friend class ::CCExprResolve;
22020
 
  friend class ::CExprResolve;
 
27054
  friend class ::CMatchSyntax;
22021
27055
 
22022
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27056
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22023
27057
 
22024
27058
protected:
22025
27059
  CT_Declarator () {}
22034
27068
};
22035
27069
 
22036
27070
 
22037
 
#line 22038 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27071
#line 27072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22038
27072
} // closed Puma
 
27073
class CCExprResolve;
 
27074
class CExprResolve;
22039
27075
class WinIfExists;
22040
27076
class WinImportHandler;
22041
27077
class WinMacros;
22042
 
class CMatchSyntax;
22043
 
class ExtGnu;
 
27078
class WinAsm;
 
27079
class WinDeclSpecs;
 
27080
class WinMemberExplSpec;
 
27081
class WinTypeKeywords;
 
27082
class WinFriend;
22044
27083
class ExtAC;
22045
27084
class ExtACBuilderCoupling;
22046
27085
class ExtACSyntaxCoupling;
22047
27086
class ExtACTree;
22048
27087
class ExtACKeywords;
22049
 
class WinAsm;
22050
 
class WinDeclSpecs;
22051
 
class WinMemberExplSpec;
22052
 
class WinTypeKeywords;
 
27088
class ExtGnu;
22053
27089
class PragmaOnceUnitState;
22054
27090
class PragmaOnce;
22055
 
class CCExprResolve;
22056
 
class CExprResolve;
 
27091
class CMatchSyntax;
22057
27092
namespace Puma {
22058
27093
 
22059
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27094
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22060
27095
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
22061
 
#line 22062 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27096
#line 27097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27097
  friend class ::CCExprResolve;
 
27098
  friend class ::CExprResolve;
22062
27099
  friend class ::WinIfExists;
22063
27100
  friend class ::WinImportHandler;
22064
27101
  friend class ::WinMacros;
22065
 
  friend class ::CMatchSyntax;
22066
 
  friend class ::ExtGnu;
 
27102
  friend class ::WinAsm;
 
27103
  friend class ::WinDeclSpecs;
 
27104
  friend class ::WinMemberExplSpec;
 
27105
  friend class ::WinTypeKeywords;
 
27106
  friend class ::WinFriend;
22067
27107
  friend class ::ExtAC;
22068
27108
  friend class ::ExtACBuilderCoupling;
22069
27109
  friend class ::ExtACSyntaxCoupling;
22070
27110
  friend class ::ExtACTree;
22071
27111
  friend class ::ExtACKeywords;
22072
 
  friend class ::WinAsm;
22073
 
  friend class ::WinDeclSpecs;
22074
 
  friend class ::WinMemberExplSpec;
22075
 
  friend class ::WinTypeKeywords;
 
27112
  friend class ::ExtGnu;
22076
27113
  friend class ::PragmaOnceUnitState;
22077
27114
  friend class ::PragmaOnce;
22078
 
  friend class ::CCExprResolve;
22079
 
  friend class ::CExprResolve;
22080
 
 
22081
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22082
 
 
22083
 
  CTree *sons[2]; // declarator, init
 
27115
  friend class ::CMatchSyntax;
 
27116
 
 
27117
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27118
 
 
27119
  CTree *sons[3]; // declarator, ext, init
22084
27120
  CTree *obj_decl;
22085
27121
 
22086
27122
public:
22087
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
22088
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
27123
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
27124
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
27125
    AddSon (obj_decl, 0); 
22089
27126
  }
 
27127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22090
27128
  static const char *NodeId ();
 
27129
  /** Get the name of the node. Can be compared with NodeId(). */
22091
27130
  const char *NodeName () const { return NodeId (); }
22092
 
  int Sons () const { return CTree::Sons (sons, 2); }
22093
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
27131
  /** Get the number of sons. */
 
27132
  int Sons () const { return CTree::Sons (sons, 3); }
 
27133
  /** Get the n-th son.
 
27134
   *  \param n The index of the son.
 
27135
   *  \return The n-th son or NULL. */
 
27136
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22094
27137
  CTree *Declarator () const { return sons[0]; }
22095
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
27138
  CTree *Extension () const { return sons[1]; }
 
27139
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
22096
27140
  CSemObject *SemObject () const { return (CSemObject*)this; }
22097
27141
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
22098
 
  void Initializer (CTree* i) { sons[1] = i; }
22099
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
27142
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
27143
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
27144
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
27145
  /** Replace a son.
 
27146
   *  \param old_son The son to replace.
 
27147
   *  \param new_son The new son. */
22100
27148
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22101
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
27149
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22102
27150
  }
22103
27151
};
22104
27152
 
22105
27153
 
22106
 
#line 22107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27154
#line 27155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22107
27155
} // closed Puma
 
27156
class CCExprResolve;
 
27157
class CExprResolve;
22108
27158
class WinIfExists;
22109
27159
class WinImportHandler;
22110
27160
class WinMacros;
22111
 
class CMatchSyntax;
22112
 
class ExtGnu;
 
27161
class WinAsm;
 
27162
class WinDeclSpecs;
 
27163
class WinMemberExplSpec;
 
27164
class WinTypeKeywords;
 
27165
class WinFriend;
22113
27166
class ExtAC;
22114
27167
class ExtACBuilderCoupling;
22115
27168
class ExtACSyntaxCoupling;
22116
27169
class ExtACTree;
22117
27170
class ExtACKeywords;
22118
 
class WinAsm;
22119
 
class WinDeclSpecs;
22120
 
class WinMemberExplSpec;
22121
 
class WinTypeKeywords;
 
27171
class ExtGnu;
22122
27172
class PragmaOnceUnitState;
22123
27173
class PragmaOnce;
22124
 
class CCExprResolve;
22125
 
class CExprResolve;
 
27174
class CMatchSyntax;
22126
27175
namespace Puma {
22127
27176
 
22128
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27177
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22129
27178
class CT_BracedDeclarator : public CT_Declarator {
22130
 
#line 22131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27179
#line 27180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27180
  friend class ::CCExprResolve;
 
27181
  friend class ::CExprResolve;
22131
27182
  friend class ::WinIfExists;
22132
27183
  friend class ::WinImportHandler;
22133
27184
  friend class ::WinMacros;
22134
 
  friend class ::CMatchSyntax;
22135
 
  friend class ::ExtGnu;
 
27185
  friend class ::WinAsm;
 
27186
  friend class ::WinDeclSpecs;
 
27187
  friend class ::WinMemberExplSpec;
 
27188
  friend class ::WinTypeKeywords;
 
27189
  friend class ::WinFriend;
22136
27190
  friend class ::ExtAC;
22137
27191
  friend class ::ExtACBuilderCoupling;
22138
27192
  friend class ::ExtACSyntaxCoupling;
22139
27193
  friend class ::ExtACTree;
22140
27194
  friend class ::ExtACKeywords;
22141
 
  friend class ::WinAsm;
22142
 
  friend class ::WinDeclSpecs;
22143
 
  friend class ::WinMemberExplSpec;
22144
 
  friend class ::WinTypeKeywords;
 
27195
  friend class ::ExtGnu;
22145
27196
  friend class ::PragmaOnceUnitState;
22146
27197
  friend class ::PragmaOnce;
22147
 
  friend class ::CCExprResolve;
22148
 
  friend class ::CExprResolve;
 
27198
  friend class ::CMatchSyntax;
22149
27199
 
22150
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27200
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22151
27201
 
22152
27202
  CTree *sons[4]; // open, win_specs, declarator, close
22153
27203
 
22154
27204
public:
22155
27205
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
22156
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
27206
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
27207
    AddSon (sons[2], d); AddSon (sons[3], c); 
22157
27208
  }
22158
27209
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
22159
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
27210
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
27211
    AddSon (sons[2], d); AddSon (sons[3], c); 
22160
27212
  }
 
27213
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22161
27214
  static const char *NodeId ();
 
27215
  /** Get the name of the node. Can be compared with NodeId(). */
22162
27216
  const char *NodeName () const { return NodeId (); }
 
27217
  /** Get the number of sons. */
22163
27218
  int Sons () const { return CTree::Sons (sons, 4); }
 
27219
  /** Get the n-th son.
 
27220
   *  \param n The index of the son.
 
27221
   *  \return The n-th son or NULL. */
22164
27222
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22165
27223
  CTree *Declarator () const { return sons[2]; }
 
27224
  /** Replace a son.
 
27225
   *  \param old_son The son to replace.
 
27226
   *  \param new_son The new son. */
22166
27227
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22167
27228
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22168
27229
  }
22169
27230
};
22170
27231
 
22171
27232
 
22172
 
#line 22173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27233
#line 27234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22173
27234
} // closed Puma
 
27235
class CCExprResolve;
 
27236
class CExprResolve;
22174
27237
class WinIfExists;
22175
27238
class WinImportHandler;
22176
27239
class WinMacros;
22177
 
class CMatchSyntax;
22178
 
class ExtGnu;
 
27240
class WinAsm;
 
27241
class WinDeclSpecs;
 
27242
class WinMemberExplSpec;
 
27243
class WinTypeKeywords;
 
27244
class WinFriend;
22179
27245
class ExtAC;
22180
27246
class ExtACBuilderCoupling;
22181
27247
class ExtACSyntaxCoupling;
22182
27248
class ExtACTree;
22183
27249
class ExtACKeywords;
22184
 
class WinAsm;
22185
 
class WinDeclSpecs;
22186
 
class WinMemberExplSpec;
22187
 
class WinTypeKeywords;
 
27250
class ExtGnu;
22188
27251
class PragmaOnceUnitState;
22189
27252
class PragmaOnce;
22190
 
class CCExprResolve;
22191
 
class CExprResolve;
 
27253
class CMatchSyntax;
22192
27254
namespace Puma {
22193
27255
 
22194
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27256
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22195
27257
class CT_ArrayDelimiter : public CTree {
22196
 
#line 22197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27258
#line 27259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27259
  friend class ::CCExprResolve;
 
27260
  friend class ::CExprResolve;
22197
27261
  friend class ::WinIfExists;
22198
27262
  friend class ::WinImportHandler;
22199
27263
  friend class ::WinMacros;
22200
 
  friend class ::CMatchSyntax;
22201
 
  friend class ::ExtGnu;
 
27264
  friend class ::WinAsm;
 
27265
  friend class ::WinDeclSpecs;
 
27266
  friend class ::WinMemberExplSpec;
 
27267
  friend class ::WinTypeKeywords;
 
27268
  friend class ::WinFriend;
22202
27269
  friend class ::ExtAC;
22203
27270
  friend class ::ExtACBuilderCoupling;
22204
27271
  friend class ::ExtACSyntaxCoupling;
22205
27272
  friend class ::ExtACTree;
22206
27273
  friend class ::ExtACKeywords;
22207
 
  friend class ::WinAsm;
22208
 
  friend class ::WinDeclSpecs;
22209
 
  friend class ::WinMemberExplSpec;
22210
 
  friend class ::WinTypeKeywords;
 
27274
  friend class ::ExtGnu;
22211
27275
  friend class ::PragmaOnceUnitState;
22212
27276
  friend class ::PragmaOnce;
22213
 
  friend class ::CCExprResolve;
22214
 
  friend class ::CExprResolve;
 
27277
  friend class ::CMatchSyntax;
22215
27278
 
22216
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27279
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22217
27280
 
22218
27281
  CTree *sons[4]; // star, static, quals, expr
22219
27282
  bool pos0;
22220
27283
 
22221
27284
public:
22222
27285
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
22223
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
27286
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
27287
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
22224
27288
  }
 
27289
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22225
27290
  static const char *NodeId ();
 
27291
  /** Get the name of the node. Can be compared with NodeId(). */
22226
27292
  const char *NodeName () const { return NodeId (); }
 
27293
  /** Get the number of sons. */
22227
27294
  int Sons () const { return CTree::Sons (sons, 4); }
 
27295
  /** Get the n-th son.
 
27296
   *  \param n The index of the son.
 
27297
   *  \return The n-th son or NULL. */
22228
27298
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22229
27299
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
22230
27300
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
22231
27301
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
22232
27302
  CTree *Expr () const { return sons[3]; }
 
27303
  /** Replace a son.
 
27304
   *  \param old_son The son to replace.
 
27305
   *  \param new_son The new son. */
22233
27306
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22234
27307
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22235
27308
  }
22236
27309
};
22237
27310
 
22238
27311
 
22239
 
#line 22240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27312
#line 27313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22240
27313
} // closed Puma
 
27314
class CCExprResolve;
 
27315
class CExprResolve;
22241
27316
class WinIfExists;
22242
27317
class WinImportHandler;
22243
27318
class WinMacros;
22244
 
class CMatchSyntax;
22245
 
class ExtGnu;
 
27319
class WinAsm;
 
27320
class WinDeclSpecs;
 
27321
class WinMemberExplSpec;
 
27322
class WinTypeKeywords;
 
27323
class WinFriend;
22246
27324
class ExtAC;
22247
27325
class ExtACBuilderCoupling;
22248
27326
class ExtACSyntaxCoupling;
22249
27327
class ExtACTree;
22250
27328
class ExtACKeywords;
22251
 
class WinAsm;
22252
 
class WinDeclSpecs;
22253
 
class WinMemberExplSpec;
22254
 
class WinTypeKeywords;
 
27329
class ExtGnu;
22255
27330
class PragmaOnceUnitState;
22256
27331
class PragmaOnce;
22257
 
class CCExprResolve;
22258
 
class CExprResolve;
 
27332
class CMatchSyntax;
22259
27333
namespace Puma {
22260
27334
 
22261
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27335
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22262
27336
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
22263
 
#line 22264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27337
#line 27338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27338
  friend class ::CCExprResolve;
 
27339
  friend class ::CExprResolve;
22264
27340
  friend class ::WinIfExists;
22265
27341
  friend class ::WinImportHandler;
22266
27342
  friend class ::WinMacros;
22267
 
  friend class ::CMatchSyntax;
22268
 
  friend class ::ExtGnu;
 
27343
  friend class ::WinAsm;
 
27344
  friend class ::WinDeclSpecs;
 
27345
  friend class ::WinMemberExplSpec;
 
27346
  friend class ::WinTypeKeywords;
 
27347
  friend class ::WinFriend;
22269
27348
  friend class ::ExtAC;
22270
27349
  friend class ::ExtACBuilderCoupling;
22271
27350
  friend class ::ExtACSyntaxCoupling;
22272
27351
  friend class ::ExtACTree;
22273
27352
  friend class ::ExtACKeywords;
22274
 
  friend class ::WinAsm;
22275
 
  friend class ::WinDeclSpecs;
22276
 
  friend class ::WinMemberExplSpec;
22277
 
  friend class ::WinTypeKeywords;
 
27353
  friend class ::ExtGnu;
22278
27354
  friend class ::PragmaOnceUnitState;
22279
27355
  friend class ::PragmaOnce;
22280
 
  friend class ::CCExprResolve;
22281
 
  friend class ::CExprResolve;
 
27356
  friend class ::CMatchSyntax;
22282
27357
 
22283
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27358
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22284
27359
 
22285
27360
  CTree *sons[4]; // declarator, open, delim, close
22286
27361
 
22287
27362
public:
22288
27363
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
22289
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
27364
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
27365
    AddSon (sons[2], ad); AddSon (sons[3], c); 
22290
27366
  }
 
27367
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22291
27368
  static const char *NodeId ();
 
27369
  /** Get the name of the node. Can be compared with NodeId(). */
22292
27370
  const char *NodeName () const { return NodeId (); }
 
27371
  /** Get the number of sons. */
22293
27372
  int Sons () const { return 4; }
 
27373
  /** Get the n-th son.
 
27374
   *  \param n The index of the son.
 
27375
   *  \return The n-th son or NULL. */
22294
27376
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22295
27377
  CTree *Declarator () const { return sons[0]; }
22296
27378
  CT_ArrayDelimiter *Delimiter () const 
22297
27379
   { return (CT_ArrayDelimiter*)sons[2]; }
 
27380
  /** Replace a son.
 
27381
   *  \param old_son The son to replace.
 
27382
   *  \param new_son The new son. */
22298
27383
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22299
27384
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22300
27385
  }
22304
27389
};
22305
27390
 
22306
27391
 
22307
 
#line 22308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27392
#line 27393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22308
27393
} // closed Puma
 
27394
class CCExprResolve;
 
27395
class CExprResolve;
22309
27396
class WinIfExists;
22310
27397
class WinImportHandler;
22311
27398
class WinMacros;
22312
 
class CMatchSyntax;
22313
 
class ExtGnu;
 
27399
class WinAsm;
 
27400
class WinDeclSpecs;
 
27401
class WinMemberExplSpec;
 
27402
class WinTypeKeywords;
 
27403
class WinFriend;
22314
27404
class ExtAC;
22315
27405
class ExtACBuilderCoupling;
22316
27406
class ExtACSyntaxCoupling;
22317
27407
class ExtACTree;
22318
27408
class ExtACKeywords;
22319
 
class WinAsm;
22320
 
class WinDeclSpecs;
22321
 
class WinMemberExplSpec;
22322
 
class WinTypeKeywords;
 
27409
class ExtGnu;
22323
27410
class PragmaOnceUnitState;
22324
27411
class PragmaOnce;
22325
 
class CCExprResolve;
22326
 
class CExprResolve;
 
27412
class CMatchSyntax;
22327
27413
namespace Puma {
22328
27414
 
22329
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27415
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22330
27416
class CT_FctDeclarator : public CT_Declarator {
22331
 
#line 22332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27417
#line 27418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27418
  friend class ::CCExprResolve;
 
27419
  friend class ::CExprResolve;
22332
27420
  friend class ::WinIfExists;
22333
27421
  friend class ::WinImportHandler;
22334
27422
  friend class ::WinMacros;
22335
 
  friend class ::CMatchSyntax;
22336
 
  friend class ::ExtGnu;
 
27423
  friend class ::WinAsm;
 
27424
  friend class ::WinDeclSpecs;
 
27425
  friend class ::WinMemberExplSpec;
 
27426
  friend class ::WinTypeKeywords;
 
27427
  friend class ::WinFriend;
22337
27428
  friend class ::ExtAC;
22338
27429
  friend class ::ExtACBuilderCoupling;
22339
27430
  friend class ::ExtACSyntaxCoupling;
22340
27431
  friend class ::ExtACTree;
22341
27432
  friend class ::ExtACKeywords;
22342
 
  friend class ::WinAsm;
22343
 
  friend class ::WinDeclSpecs;
22344
 
  friend class ::WinMemberExplSpec;
22345
 
  friend class ::WinTypeKeywords;
 
27433
  friend class ::ExtGnu;
22346
27434
  friend class ::PragmaOnceUnitState;
22347
27435
  friend class ::PragmaOnce;
22348
 
  friend class ::CCExprResolve;
22349
 
  friend class ::CExprResolve;
 
27436
  friend class ::CMatchSyntax;
22350
27437
 
22351
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27438
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22352
27439
 
22353
27440
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
22354
27441
 
22355
27442
public:
22356
27443
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
22357
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
27444
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
27445
    AddSon (sons[2], cv); AddSon (sons[3], es); 
22358
27446
  }
 
27447
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22359
27448
  static const char *NodeId ();
 
27449
  /** Get the name of the node. Can be compared with NodeId(). */
22360
27450
  const char *NodeName () const { return NodeId (); }
 
27451
  /** Get the number of sons. */
22361
27452
  int Sons () const { return CTree::Sons (sons, 4); }
 
27453
  /** Get the n-th son.
 
27454
   *  \param n The index of the son.
 
27455
   *  \return The n-th son or NULL. */
22362
27456
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22363
27457
  CTree *Declarator () const { return sons[0]; }
22364
27458
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
22365
27459
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
22366
27460
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
27461
  /** Replace a son.
 
27462
   *  \param old_son The son to replace.
 
27463
   *  \param new_son The new son. */
22367
27464
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22368
27465
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22369
27466
  }
22370
27467
};
22371
27468
 
22372
27469
 
22373
 
#line 22374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27470
#line 27471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22374
27471
} // closed Puma
 
27472
class CCExprResolve;
 
27473
class CExprResolve;
22375
27474
class WinIfExists;
22376
27475
class WinImportHandler;
22377
27476
class WinMacros;
22378
 
class CMatchSyntax;
22379
 
class ExtGnu;
 
27477
class WinAsm;
 
27478
class WinDeclSpecs;
 
27479
class WinMemberExplSpec;
 
27480
class WinTypeKeywords;
 
27481
class WinFriend;
22380
27482
class ExtAC;
22381
27483
class ExtACBuilderCoupling;
22382
27484
class ExtACSyntaxCoupling;
22383
27485
class ExtACTree;
22384
27486
class ExtACKeywords;
22385
 
class WinAsm;
22386
 
class WinDeclSpecs;
22387
 
class WinMemberExplSpec;
22388
 
class WinTypeKeywords;
 
27487
class ExtGnu;
22389
27488
class PragmaOnceUnitState;
22390
27489
class PragmaOnce;
22391
 
class CCExprResolve;
22392
 
class CExprResolve;
 
27490
class CMatchSyntax;
22393
27491
namespace Puma {
22394
27492
 
22395
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27493
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22396
27494
class CT_RefDeclarator : public CT_Declarator {
22397
 
#line 22398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27495
#line 27496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27496
  friend class ::CCExprResolve;
 
27497
  friend class ::CExprResolve;
22398
27498
  friend class ::WinIfExists;
22399
27499
  friend class ::WinImportHandler;
22400
27500
  friend class ::WinMacros;
22401
 
  friend class ::CMatchSyntax;
22402
 
  friend class ::ExtGnu;
 
27501
  friend class ::WinAsm;
 
27502
  friend class ::WinDeclSpecs;
 
27503
  friend class ::WinMemberExplSpec;
 
27504
  friend class ::WinTypeKeywords;
 
27505
  friend class ::WinFriend;
22403
27506
  friend class ::ExtAC;
22404
27507
  friend class ::ExtACBuilderCoupling;
22405
27508
  friend class ::ExtACSyntaxCoupling;
22406
27509
  friend class ::ExtACTree;
22407
27510
  friend class ::ExtACKeywords;
22408
 
  friend class ::WinAsm;
22409
 
  friend class ::WinDeclSpecs;
22410
 
  friend class ::WinMemberExplSpec;
22411
 
  friend class ::WinTypeKeywords;
 
27511
  friend class ::ExtGnu;
22412
27512
  friend class ::PragmaOnceUnitState;
22413
27513
  friend class ::PragmaOnce;
22414
 
  friend class ::CCExprResolve;
22415
 
  friend class ::CExprResolve;
 
27514
  friend class ::CMatchSyntax;
22416
27515
 
22417
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27516
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22418
27517
 
22419
27518
  CTree *sons[2]; // ref, declarator
22420
27519
 
22421
27520
public:
22422
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
27521
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
27522
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22423
27523
  static const char *NodeId ();
 
27524
  /** Get the name of the node. Can be compared with NodeId(). */
22424
27525
  const char *NodeName () const { return NodeId (); }
 
27526
  /** Get the number of sons. */
22425
27527
  int Sons () const { return 2; }
 
27528
  /** Get the n-th son.
 
27529
   *  \param n The index of the son.
 
27530
   *  \return The n-th son or NULL. */
22426
27531
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
22427
27532
  CTree *Declarator () const { return sons[1]; }
 
27533
  /** Replace a son.
 
27534
   *  \param old_son The son to replace.
 
27535
   *  \param new_son The new son. */
22428
27536
  void ReplaceSon (CTree *old_son, CTree *new_son) {
22429
27537
    CTree::ReplaceSon (sons, 2, old_son, new_son);
22430
27538
  }
22431
27539
};
22432
27540
 
22433
27541
 
22434
 
#line 22435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27542
#line 27543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22435
27543
} // closed Puma
 
27544
class CCExprResolve;
 
27545
class CExprResolve;
22436
27546
class WinIfExists;
22437
27547
class WinImportHandler;
22438
27548
class WinMacros;
22439
 
class CMatchSyntax;
22440
 
class ExtGnu;
 
27549
class WinAsm;
 
27550
class WinDeclSpecs;
 
27551
class WinMemberExplSpec;
 
27552
class WinTypeKeywords;
 
27553
class WinFriend;
22441
27554
class ExtAC;
22442
27555
class ExtACBuilderCoupling;
22443
27556
class ExtACSyntaxCoupling;
22444
27557
class ExtACTree;
22445
27558
class ExtACKeywords;
22446
 
class WinAsm;
22447
 
class WinDeclSpecs;
22448
 
class WinMemberExplSpec;
22449
 
class WinTypeKeywords;
 
27559
class ExtGnu;
22450
27560
class PragmaOnceUnitState;
22451
27561
class PragmaOnce;
22452
 
class CCExprResolve;
22453
 
class CExprResolve;
 
27562
class CMatchSyntax;
22454
27563
namespace Puma {
22455
27564
 
22456
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27565
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22457
27566
class CT_PtrDeclarator : public CT_Declarator {
22458
 
#line 22459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27567
#line 27568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27568
  friend class ::CCExprResolve;
 
27569
  friend class ::CExprResolve;
22459
27570
  friend class ::WinIfExists;
22460
27571
  friend class ::WinImportHandler;
22461
27572
  friend class ::WinMacros;
22462
 
  friend class ::CMatchSyntax;
22463
 
  friend class ::ExtGnu;
 
27573
  friend class ::WinAsm;
 
27574
  friend class ::WinDeclSpecs;
 
27575
  friend class ::WinMemberExplSpec;
 
27576
  friend class ::WinTypeKeywords;
 
27577
  friend class ::WinFriend;
22464
27578
  friend class ::ExtAC;
22465
27579
  friend class ::ExtACBuilderCoupling;
22466
27580
  friend class ::ExtACSyntaxCoupling;
22467
27581
  friend class ::ExtACTree;
22468
27582
  friend class ::ExtACKeywords;
22469
 
  friend class ::WinAsm;
22470
 
  friend class ::WinDeclSpecs;
22471
 
  friend class ::WinMemberExplSpec;
22472
 
  friend class ::WinTypeKeywords;
 
27583
  friend class ::ExtGnu;
22473
27584
  friend class ::PragmaOnceUnitState;
22474
27585
  friend class ::PragmaOnce;
22475
 
  friend class ::CCExprResolve;
22476
 
  friend class ::CExprResolve;
 
27586
  friend class ::CMatchSyntax;
22477
27587
 
22478
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27588
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22479
27589
 
22480
27590
  CTree *sons[3]; // ptr, cv_quals, declarator
22481
27591
 
22482
27592
public:
22483
27593
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
22484
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
27594
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
22485
27595
  }
 
27596
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22486
27597
  static const char *NodeId ();
 
27598
  /** Get the name of the node. Can be compared with NodeId(). */
22487
27599
  const char *NodeName () const { return NodeId (); }
 
27600
  /** Get the number of sons. */
22488
27601
  int Sons () const { return CTree::Sons (sons, 3); }
 
27602
  /** Get the n-th son.
 
27603
   *  \param n The index of the son.
 
27604
   *  \return The n-th son or NULL. */
22489
27605
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22490
27606
  CTree *Declarator () const { return sons[2]; }
22491
27607
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
27608
  /** Replace a son.
 
27609
   *  \param old_son The son to replace.
 
27610
   *  \param new_son The new son. */
22492
27611
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22493
27612
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22494
27613
  }
22495
27614
};
22496
27615
 
22497
27616
 
22498
 
#line 22499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27617
#line 27618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22499
27618
} // closed Puma
 
27619
class CCExprResolve;
 
27620
class CExprResolve;
22500
27621
class WinIfExists;
22501
27622
class WinImportHandler;
22502
27623
class WinMacros;
22503
 
class CMatchSyntax;
22504
 
class ExtGnu;
 
27624
class WinAsm;
 
27625
class WinDeclSpecs;
 
27626
class WinMemberExplSpec;
 
27627
class WinTypeKeywords;
 
27628
class WinFriend;
22505
27629
class ExtAC;
22506
27630
class ExtACBuilderCoupling;
22507
27631
class ExtACSyntaxCoupling;
22508
27632
class ExtACTree;
22509
27633
class ExtACKeywords;
22510
 
class WinAsm;
22511
 
class WinDeclSpecs;
22512
 
class WinMemberExplSpec;
22513
 
class WinTypeKeywords;
 
27634
class ExtGnu;
22514
27635
class PragmaOnceUnitState;
22515
27636
class PragmaOnce;
22516
 
class CCExprResolve;
22517
 
class CExprResolve;
 
27637
class CMatchSyntax;
22518
27638
namespace Puma {
22519
27639
 
22520
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27640
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22521
27641
class CT_MembPtrDeclarator : public CT_Declarator {
22522
 
#line 22523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27642
#line 27643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27643
  friend class ::CCExprResolve;
 
27644
  friend class ::CExprResolve;
22523
27645
  friend class ::WinIfExists;
22524
27646
  friend class ::WinImportHandler;
22525
27647
  friend class ::WinMacros;
22526
 
  friend class ::CMatchSyntax;
22527
 
  friend class ::ExtGnu;
 
27648
  friend class ::WinAsm;
 
27649
  friend class ::WinDeclSpecs;
 
27650
  friend class ::WinMemberExplSpec;
 
27651
  friend class ::WinTypeKeywords;
 
27652
  friend class ::WinFriend;
22528
27653
  friend class ::ExtAC;
22529
27654
  friend class ::ExtACBuilderCoupling;
22530
27655
  friend class ::ExtACSyntaxCoupling;
22531
27656
  friend class ::ExtACTree;
22532
27657
  friend class ::ExtACKeywords;
22533
 
  friend class ::WinAsm;
22534
 
  friend class ::WinDeclSpecs;
22535
 
  friend class ::WinMemberExplSpec;
22536
 
  friend class ::WinTypeKeywords;
 
27658
  friend class ::ExtGnu;
22537
27659
  friend class ::PragmaOnceUnitState;
22538
27660
  friend class ::PragmaOnce;
22539
 
  friend class ::CCExprResolve;
22540
 
  friend class ::CExprResolve;
 
27661
  friend class ::CMatchSyntax;
22541
27662
 
22542
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27663
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22543
27664
 
22544
27665
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
22545
27666
 
22546
27667
public:
22547
27668
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
22548
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
27669
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
27670
    AddSon (sons[3], q); AddSon (sons[4], d); 
22549
27671
  }
 
27672
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22550
27673
  static const char *NodeId ();
 
27674
  /** Get the name of the node. Can be compared with NodeId(). */
22551
27675
  const char *NodeName () const { return NodeId (); }
 
27676
  /** Get the number of sons. */
22552
27677
  int Sons () const { return CTree::Sons (sons, 5); }
 
27678
  /** Get the n-th son.
 
27679
   *  \param n The index of the son.
 
27680
   *  \return The n-th son or NULL. */
22553
27681
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
22554
27682
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
22555
27683
  CTree *Declarator () const { return sons[4]; }
22556
27684
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
27685
  /** Replace a son.
 
27686
   *  \param old_son The son to replace.
 
27687
   *  \param new_son The new son. */
22557
27688
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22558
27689
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22559
27690
  }
22560
27691
};
22561
27692
 
22562
27693
 
22563
 
#line 22564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27694
#line 27695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22564
27695
} // closed Puma
 
27696
class CCExprResolve;
 
27697
class CExprResolve;
22565
27698
class WinIfExists;
22566
27699
class WinImportHandler;
22567
27700
class WinMacros;
22568
 
class CMatchSyntax;
22569
 
class ExtGnu;
 
27701
class WinAsm;
 
27702
class WinDeclSpecs;
 
27703
class WinMemberExplSpec;
 
27704
class WinTypeKeywords;
 
27705
class WinFriend;
22570
27706
class ExtAC;
22571
27707
class ExtACBuilderCoupling;
22572
27708
class ExtACSyntaxCoupling;
22573
27709
class ExtACTree;
22574
27710
class ExtACKeywords;
22575
 
class WinAsm;
22576
 
class WinDeclSpecs;
22577
 
class WinMemberExplSpec;
22578
 
class WinTypeKeywords;
 
27711
class ExtGnu;
22579
27712
class PragmaOnceUnitState;
22580
27713
class PragmaOnce;
22581
 
class CCExprResolve;
22582
 
class CExprResolve;
 
27714
class CMatchSyntax;
22583
27715
namespace Puma {
22584
27716
 
22585
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27717
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22586
27718
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
22587
 
#line 22588 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27719
#line 27720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27720
  friend class ::CCExprResolve;
 
27721
  friend class ::CExprResolve;
22588
27722
  friend class ::WinIfExists;
22589
27723
  friend class ::WinImportHandler;
22590
27724
  friend class ::WinMacros;
22591
 
  friend class ::CMatchSyntax;
22592
 
  friend class ::ExtGnu;
 
27725
  friend class ::WinAsm;
 
27726
  friend class ::WinDeclSpecs;
 
27727
  friend class ::WinMemberExplSpec;
 
27728
  friend class ::WinTypeKeywords;
 
27729
  friend class ::WinFriend;
22593
27730
  friend class ::ExtAC;
22594
27731
  friend class ::ExtACBuilderCoupling;
22595
27732
  friend class ::ExtACSyntaxCoupling;
22596
27733
  friend class ::ExtACTree;
22597
27734
  friend class ::ExtACKeywords;
22598
 
  friend class ::WinAsm;
22599
 
  friend class ::WinDeclSpecs;
22600
 
  friend class ::WinMemberExplSpec;
22601
 
  friend class ::WinTypeKeywords;
 
27735
  friend class ::ExtGnu;
22602
27736
  friend class ::PragmaOnceUnitState;
22603
27737
  friend class ::PragmaOnce;
22604
 
  friend class ::CCExprResolve;
22605
 
  friend class ::CExprResolve;
 
27738
  friend class ::CMatchSyntax;
22606
27739
 
22607
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27740
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22608
27741
 
22609
27742
  CTree *sons[3]; // declarator, colon, expr
22610
27743
 
22611
27744
public:
22612
27745
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
22613
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
27746
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
22614
27747
  }
 
27748
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22615
27749
  static const char *NodeId ();
 
27750
  /** Get the name of the node. Can be compared with NodeId(). */
22616
27751
  const char *NodeName () const { return NodeId (); }
 
27752
  /** Get the number of sons. */
22617
27753
  int Sons () const { return CTree::Sons (sons, 3); }
 
27754
  /** Get the n-th son.
 
27755
   *  \param n The index of the son.
 
27756
   *  \return The n-th son or NULL. */
22618
27757
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22619
27758
  CTree *Declarator () const { return sons[0]; }
22620
27759
  CTree *Expr () const { return sons[2]; }
22621
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
27760
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
22622
27761
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
27762
  /** Replace a son.
 
27763
   *  \param old_son The son to replace.
 
27764
   *  \param new_son The new son. */
22623
27765
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22624
27766
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22625
27767
  }
22632
27774
/*****************************************************************************/
22633
27775
 
22634
27776
 
22635
 
#line 22636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27777
#line 27778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22636
27778
} // closed Puma
 
27779
class CCExprResolve;
 
27780
class CExprResolve;
22637
27781
class WinIfExists;
22638
27782
class WinImportHandler;
22639
27783
class WinMacros;
22640
 
class CMatchSyntax;
22641
 
class ExtGnu;
 
27784
class WinAsm;
 
27785
class WinDeclSpecs;
 
27786
class WinMemberExplSpec;
 
27787
class WinTypeKeywords;
 
27788
class WinFriend;
22642
27789
class ExtAC;
22643
27790
class ExtACBuilderCoupling;
22644
27791
class ExtACSyntaxCoupling;
22645
27792
class ExtACTree;
22646
27793
class ExtACKeywords;
22647
 
class WinAsm;
22648
 
class WinDeclSpecs;
22649
 
class WinMemberExplSpec;
22650
 
class WinTypeKeywords;
 
27794
class ExtGnu;
22651
27795
class PragmaOnceUnitState;
22652
27796
class PragmaOnce;
22653
 
class CCExprResolve;
22654
 
class CExprResolve;
 
27797
class CMatchSyntax;
22655
27798
namespace Puma {
22656
27799
 
22657
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27800
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22658
27801
class CT_Statement : public CTree {
22659
 
#line 22660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27802
#line 27803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27803
  friend class ::CCExprResolve;
 
27804
  friend class ::CExprResolve;
22660
27805
  friend class ::WinIfExists;
22661
27806
  friend class ::WinImportHandler;
22662
27807
  friend class ::WinMacros;
22663
 
  friend class ::CMatchSyntax;
22664
 
  friend class ::ExtGnu;
 
27808
  friend class ::WinAsm;
 
27809
  friend class ::WinDeclSpecs;
 
27810
  friend class ::WinMemberExplSpec;
 
27811
  friend class ::WinTypeKeywords;
 
27812
  friend class ::WinFriend;
22665
27813
  friend class ::ExtAC;
22666
27814
  friend class ::ExtACBuilderCoupling;
22667
27815
  friend class ::ExtACSyntaxCoupling;
22668
27816
  friend class ::ExtACTree;
22669
27817
  friend class ::ExtACKeywords;
22670
 
  friend class ::WinAsm;
22671
 
  friend class ::WinDeclSpecs;
22672
 
  friend class ::WinMemberExplSpec;
22673
 
  friend class ::WinTypeKeywords;
 
27818
  friend class ::ExtGnu;
22674
27819
  friend class ::PragmaOnceUnitState;
22675
27820
  friend class ::PragmaOnce;
22676
 
  friend class ::CCExprResolve;
22677
 
  friend class ::CExprResolve;
 
27821
  friend class ::CMatchSyntax;
22678
27822
 
22679
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27823
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22680
27824
 
22681
27825
protected:
22682
27826
  CT_Statement () {}
 
27827
  virtual CT_Statement *IsStatement () { return this; }
22683
27828
};
22684
27829
 
22685
27830
 
22686
 
#line 22687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27831
#line 27832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22687
27832
} // closed Puma
 
27833
class CCExprResolve;
 
27834
class CExprResolve;
22688
27835
class WinIfExists;
22689
27836
class WinImportHandler;
22690
27837
class WinMacros;
22691
 
class CMatchSyntax;
22692
 
class ExtGnu;
 
27838
class WinAsm;
 
27839
class WinDeclSpecs;
 
27840
class WinMemberExplSpec;
 
27841
class WinTypeKeywords;
 
27842
class WinFriend;
22693
27843
class ExtAC;
22694
27844
class ExtACBuilderCoupling;
22695
27845
class ExtACSyntaxCoupling;
22696
27846
class ExtACTree;
22697
27847
class ExtACKeywords;
22698
 
class WinAsm;
22699
 
class WinDeclSpecs;
22700
 
class WinMemberExplSpec;
22701
 
class WinTypeKeywords;
 
27848
class ExtGnu;
22702
27849
class PragmaOnceUnitState;
22703
27850
class PragmaOnce;
22704
 
class CCExprResolve;
22705
 
class CExprResolve;
 
27851
class CMatchSyntax;
22706
27852
namespace Puma {
22707
27853
 
22708
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27854
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22709
27855
class CT_LabelStmt : public CT_Statement {
22710
 
#line 22711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27856
#line 27857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27857
  friend class ::CCExprResolve;
 
27858
  friend class ::CExprResolve;
22711
27859
  friend class ::WinIfExists;
22712
27860
  friend class ::WinImportHandler;
22713
27861
  friend class ::WinMacros;
22714
 
  friend class ::CMatchSyntax;
22715
 
  friend class ::ExtGnu;
 
27862
  friend class ::WinAsm;
 
27863
  friend class ::WinDeclSpecs;
 
27864
  friend class ::WinMemberExplSpec;
 
27865
  friend class ::WinTypeKeywords;
 
27866
  friend class ::WinFriend;
22716
27867
  friend class ::ExtAC;
22717
27868
  friend class ::ExtACBuilderCoupling;
22718
27869
  friend class ::ExtACSyntaxCoupling;
22719
27870
  friend class ::ExtACTree;
22720
27871
  friend class ::ExtACKeywords;
22721
 
  friend class ::WinAsm;
22722
 
  friend class ::WinDeclSpecs;
22723
 
  friend class ::WinMemberExplSpec;
22724
 
  friend class ::WinTypeKeywords;
 
27872
  friend class ::ExtGnu;
22725
27873
  friend class ::PragmaOnceUnitState;
22726
27874
  friend class ::PragmaOnce;
22727
 
  friend class ::CCExprResolve;
22728
 
  friend class ::CExprResolve;
 
27875
  friend class ::CMatchSyntax;
22729
27876
 
22730
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27877
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22731
27878
 
22732
27879
  CTree *sons[3]; // id, colon, stmt
22733
27880
 
22734
27881
public:
22735
27882
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
22736
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
27883
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
22737
27884
  }
 
27885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22738
27886
  static const char *NodeId ();
 
27887
  /** Get the name of the node. Can be compared with NodeId(). */
22739
27888
  const char *NodeName () const { return NodeId (); }
 
27889
  /** Get the number of sons. */
22740
27890
  int Sons () const { return 3; }
 
27891
  /** Get the n-th son.
 
27892
   *  \param n The index of the son.
 
27893
   *  \return The n-th son or NULL. */
22741
27894
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22742
27895
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
22743
27896
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
27897
  /** Replace a son.
 
27898
   *  \param old_son The son to replace.
 
27899
   *  \param new_son The new son. */
22744
27900
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22745
27901
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22746
27902
  }
22747
27903
};
22748
27904
 
22749
27905
 
22750
 
#line 22751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27906
#line 27907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22751
27907
} // closed Puma
 
27908
class CCExprResolve;
 
27909
class CExprResolve;
22752
27910
class WinIfExists;
22753
27911
class WinImportHandler;
22754
27912
class WinMacros;
22755
 
class CMatchSyntax;
22756
 
class ExtGnu;
 
27913
class WinAsm;
 
27914
class WinDeclSpecs;
 
27915
class WinMemberExplSpec;
 
27916
class WinTypeKeywords;
 
27917
class WinFriend;
22757
27918
class ExtAC;
22758
27919
class ExtACBuilderCoupling;
22759
27920
class ExtACSyntaxCoupling;
22760
27921
class ExtACTree;
22761
27922
class ExtACKeywords;
22762
 
class WinAsm;
22763
 
class WinDeclSpecs;
22764
 
class WinMemberExplSpec;
22765
 
class WinTypeKeywords;
 
27923
class ExtGnu;
22766
27924
class PragmaOnceUnitState;
22767
27925
class PragmaOnce;
22768
 
class CCExprResolve;
22769
 
class CExprResolve;
 
27926
class CMatchSyntax;
22770
27927
namespace Puma {
22771
27928
 
22772
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27929
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22773
27930
class CT_DefaultStmt : public CT_Statement {
22774
 
#line 22775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27931
#line 27932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
27932
  friend class ::CCExprResolve;
 
27933
  friend class ::CExprResolve;
22775
27934
  friend class ::WinIfExists;
22776
27935
  friend class ::WinImportHandler;
22777
27936
  friend class ::WinMacros;
22778
 
  friend class ::CMatchSyntax;
22779
 
  friend class ::ExtGnu;
 
27937
  friend class ::WinAsm;
 
27938
  friend class ::WinDeclSpecs;
 
27939
  friend class ::WinMemberExplSpec;
 
27940
  friend class ::WinTypeKeywords;
 
27941
  friend class ::WinFriend;
22780
27942
  friend class ::ExtAC;
22781
27943
  friend class ::ExtACBuilderCoupling;
22782
27944
  friend class ::ExtACSyntaxCoupling;
22783
27945
  friend class ::ExtACTree;
22784
27946
  friend class ::ExtACKeywords;
22785
 
  friend class ::WinAsm;
22786
 
  friend class ::WinDeclSpecs;
22787
 
  friend class ::WinMemberExplSpec;
22788
 
  friend class ::WinTypeKeywords;
 
27947
  friend class ::ExtGnu;
22789
27948
  friend class ::PragmaOnceUnitState;
22790
27949
  friend class ::PragmaOnce;
22791
 
  friend class ::CCExprResolve;
22792
 
  friend class ::CExprResolve;
 
27950
  friend class ::CMatchSyntax;
22793
27951
 
22794
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27952
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22795
27953
 
22796
27954
  CTree *sons[3]; // keyword, colon, stmt
22797
27955
 
22798
27956
public:
22799
27957
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
22800
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
27958
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
22801
27959
  }
 
27960
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22802
27961
  static const char *NodeId ();
 
27962
  /** Get the name of the node. Can be compared with NodeId(). */
22803
27963
  const char *NodeName () const { return NodeId (); }
 
27964
  /** Get the number of sons. */
22804
27965
  int Sons () const { return 3; }
 
27966
  /** Get the n-th son.
 
27967
   *  \param n The index of the son.
 
27968
   *  \return The n-th son or NULL. */
22805
27969
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22806
27970
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
27971
  /** Replace a son.
 
27972
   *  \param old_son The son to replace.
 
27973
   *  \param new_son The new son. */
22807
27974
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22808
27975
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22809
27976
  }
22810
27977
};
22811
27978
 
22812
27979
 
22813
 
#line 22814 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
27980
#line 27981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22814
27981
} // closed Puma
 
27982
class CCExprResolve;
 
27983
class CExprResolve;
22815
27984
class WinIfExists;
22816
27985
class WinImportHandler;
22817
27986
class WinMacros;
22818
 
class CMatchSyntax;
22819
 
class ExtGnu;
 
27987
class WinAsm;
 
27988
class WinDeclSpecs;
 
27989
class WinMemberExplSpec;
 
27990
class WinTypeKeywords;
 
27991
class WinFriend;
22820
27992
class ExtAC;
22821
27993
class ExtACBuilderCoupling;
22822
27994
class ExtACSyntaxCoupling;
22823
27995
class ExtACTree;
22824
27996
class ExtACKeywords;
22825
 
class WinAsm;
22826
 
class WinDeclSpecs;
22827
 
class WinMemberExplSpec;
22828
 
class WinTypeKeywords;
 
27997
class ExtGnu;
22829
27998
class PragmaOnceUnitState;
22830
27999
class PragmaOnce;
22831
 
class CCExprResolve;
22832
 
class CExprResolve;
 
28000
class CMatchSyntax;
22833
28001
namespace Puma {
22834
28002
 
22835
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28003
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22836
28004
class CT_TryStmt : public CT_Statement {
22837
 
#line 22838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28005
#line 28006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28006
  friend class ::CCExprResolve;
 
28007
  friend class ::CExprResolve;
22838
28008
  friend class ::WinIfExists;
22839
28009
  friend class ::WinImportHandler;
22840
28010
  friend class ::WinMacros;
22841
 
  friend class ::CMatchSyntax;
22842
 
  friend class ::ExtGnu;
 
28011
  friend class ::WinAsm;
 
28012
  friend class ::WinDeclSpecs;
 
28013
  friend class ::WinMemberExplSpec;
 
28014
  friend class ::WinTypeKeywords;
 
28015
  friend class ::WinFriend;
22843
28016
  friend class ::ExtAC;
22844
28017
  friend class ::ExtACBuilderCoupling;
22845
28018
  friend class ::ExtACSyntaxCoupling;
22846
28019
  friend class ::ExtACTree;
22847
28020
  friend class ::ExtACKeywords;
22848
 
  friend class ::WinAsm;
22849
 
  friend class ::WinDeclSpecs;
22850
 
  friend class ::WinMemberExplSpec;
22851
 
  friend class ::WinTypeKeywords;
 
28021
  friend class ::ExtGnu;
22852
28022
  friend class ::PragmaOnceUnitState;
22853
28023
  friend class ::PragmaOnce;
22854
 
  friend class ::CCExprResolve;
22855
 
  friend class ::CExprResolve;
 
28024
  friend class ::CMatchSyntax;
22856
28025
 
22857
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28026
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22858
28027
 
22859
28028
  CTree *sons[3]; // try, stmt, handlers
22860
28029
 
22861
28030
public:
22862
28031
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
22863
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
28032
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
22864
28033
  }
 
28034
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22865
28035
  static const char *NodeId ();
 
28036
  /** Get the name of the node. Can be compared with NodeId(). */
22866
28037
  const char *NodeName () const { return NodeId (); }
 
28038
  /** Get the number of sons. */
22867
28039
  int Sons () const { return 3; }
 
28040
  /** Get the n-th son.
 
28041
   *  \param n The index of the son.
 
28042
   *  \return The n-th son or NULL. */
22868
28043
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22869
28044
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
22870
28045
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
28046
  /** Replace a son.
 
28047
   *  \param old_son The son to replace.
 
28048
   *  \param new_son The new son. */
22871
28049
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22872
28050
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22873
28051
  }
22874
28052
};
22875
28053
 
22876
28054
 
22877
 
#line 22878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28055
#line 28056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22878
28056
} // closed Puma
 
28057
class CCExprResolve;
 
28058
class CExprResolve;
22879
28059
class WinIfExists;
22880
28060
class WinImportHandler;
22881
28061
class WinMacros;
22882
 
class CMatchSyntax;
22883
 
class ExtGnu;
 
28062
class WinAsm;
 
28063
class WinDeclSpecs;
 
28064
class WinMemberExplSpec;
 
28065
class WinTypeKeywords;
 
28066
class WinFriend;
22884
28067
class ExtAC;
22885
28068
class ExtACBuilderCoupling;
22886
28069
class ExtACSyntaxCoupling;
22887
28070
class ExtACTree;
22888
28071
class ExtACKeywords;
22889
 
class WinAsm;
22890
 
class WinDeclSpecs;
22891
 
class WinMemberExplSpec;
22892
 
class WinTypeKeywords;
 
28072
class ExtGnu;
22893
28073
class PragmaOnceUnitState;
22894
28074
class PragmaOnce;
22895
 
class CCExprResolve;
22896
 
class CExprResolve;
 
28075
class CMatchSyntax;
22897
28076
namespace Puma {
22898
28077
 
22899
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28078
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22900
28079
class CT_CaseStmt : public CT_Statement {
22901
 
#line 22902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28080
#line 28081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28081
  friend class ::CCExprResolve;
 
28082
  friend class ::CExprResolve;
22902
28083
  friend class ::WinIfExists;
22903
28084
  friend class ::WinImportHandler;
22904
28085
  friend class ::WinMacros;
22905
 
  friend class ::CMatchSyntax;
22906
 
  friend class ::ExtGnu;
 
28086
  friend class ::WinAsm;
 
28087
  friend class ::WinDeclSpecs;
 
28088
  friend class ::WinMemberExplSpec;
 
28089
  friend class ::WinTypeKeywords;
 
28090
  friend class ::WinFriend;
22907
28091
  friend class ::ExtAC;
22908
28092
  friend class ::ExtACBuilderCoupling;
22909
28093
  friend class ::ExtACSyntaxCoupling;
22910
28094
  friend class ::ExtACTree;
22911
28095
  friend class ::ExtACKeywords;
22912
 
  friend class ::WinAsm;
22913
 
  friend class ::WinDeclSpecs;
22914
 
  friend class ::WinMemberExplSpec;
22915
 
  friend class ::WinTypeKeywords;
 
28096
  friend class ::ExtGnu;
22916
28097
  friend class ::PragmaOnceUnitState;
22917
28098
  friend class ::PragmaOnce;
22918
 
  friend class ::CCExprResolve;
22919
 
  friend class ::CExprResolve;
 
28099
  friend class ::CMatchSyntax;
22920
28100
 
22921
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28101
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22922
28102
 
22923
28103
  CTree *sons[4]; // keyword, expr, colon, stmt
22924
28104
 
22925
28105
public:
22926
28106
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
22927
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
28107
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
28108
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
22928
28109
  }
 
28110
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22929
28111
  static const char *NodeId ();
 
28112
  /** Get the name of the node. Can be compared with NodeId(). */
22930
28113
  const char *NodeName () const { return NodeId (); }
 
28114
  /** Get the number of sons. */
22931
28115
  int Sons () const { return 4; }
 
28116
  /** Get the n-th son.
 
28117
   *  \param n The index of the son.
 
28118
   *  \return The n-th son or NULL. */
22932
28119
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22933
28120
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
22934
28121
  CTree *Expr () const { return sons[1]; }
 
28122
  /** Replace a son.
 
28123
   *  \param old_son The son to replace.
 
28124
   *  \param new_son The new son. */
22935
28125
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22936
28126
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22937
28127
  }
22938
28128
};
22939
28129
 
22940
28130
 
22941
 
#line 22942 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28131
#line 28132 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
22942
28132
} // closed Puma
 
28133
class CCExprResolve;
 
28134
class CExprResolve;
22943
28135
class WinIfExists;
22944
28136
class WinImportHandler;
22945
28137
class WinMacros;
22946
 
class CMatchSyntax;
22947
 
class ExtGnu;
 
28138
class WinAsm;
 
28139
class WinDeclSpecs;
 
28140
class WinMemberExplSpec;
 
28141
class WinTypeKeywords;
 
28142
class WinFriend;
22948
28143
class ExtAC;
22949
28144
class ExtACBuilderCoupling;
22950
28145
class ExtACSyntaxCoupling;
22951
28146
class ExtACTree;
22952
28147
class ExtACKeywords;
22953
 
class WinAsm;
22954
 
class WinDeclSpecs;
22955
 
class WinMemberExplSpec;
22956
 
class WinTypeKeywords;
 
28148
class ExtGnu;
22957
28149
class PragmaOnceUnitState;
22958
28150
class PragmaOnce;
22959
 
class CCExprResolve;
22960
 
class CExprResolve;
 
28151
class CMatchSyntax;
22961
28152
namespace Puma {
22962
28153
 
22963
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28154
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22964
28155
class CT_ExprStmt : public CT_Statement {
22965
 
#line 22966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28156
#line 28157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28157
  friend class ::CCExprResolve;
 
28158
  friend class ::CExprResolve;
22966
28159
  friend class ::WinIfExists;
22967
28160
  friend class ::WinImportHandler;
22968
28161
  friend class ::WinMacros;
22969
 
  friend class ::CMatchSyntax;
22970
 
  friend class ::ExtGnu;
 
28162
  friend class ::WinAsm;
 
28163
  friend class ::WinDeclSpecs;
 
28164
  friend class ::WinMemberExplSpec;
 
28165
  friend class ::WinTypeKeywords;
 
28166
  friend class ::WinFriend;
22971
28167
  friend class ::ExtAC;
22972
28168
  friend class ::ExtACBuilderCoupling;
22973
28169
  friend class ::ExtACSyntaxCoupling;
22974
28170
  friend class ::ExtACTree;
22975
28171
  friend class ::ExtACKeywords;
22976
 
  friend class ::WinAsm;
22977
 
  friend class ::WinDeclSpecs;
22978
 
  friend class ::WinMemberExplSpec;
22979
 
  friend class ::WinTypeKeywords;
 
28172
  friend class ::ExtGnu;
22980
28173
  friend class ::PragmaOnceUnitState;
22981
28174
  friend class ::PragmaOnce;
22982
 
  friend class ::CCExprResolve;
22983
 
  friend class ::CExprResolve;
 
28175
  friend class ::CMatchSyntax;
22984
28176
 
22985
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28177
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22986
28178
 
22987
28179
  CTree *sons[2]; // expr, semi_colon
22988
28180
 
22989
28181
public:
22990
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
28182
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
28183
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22991
28184
  static const char *NodeId ();
 
28185
  /** Get the name of the node. Can be compared with NodeId(). */
22992
28186
  const char *NodeName () const { return NodeId (); }
 
28187
  /** Get the number of sons. */
22993
28188
  int Sons () const { return CTree::Sons (sons, 2); }
 
28189
  /** Get the n-th son.
 
28190
   *  \param n The index of the son.
 
28191
   *  \return The n-th son or NULL. */
22994
28192
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
22995
28193
  CTree *Expr () const { return sons[0]; }
 
28194
  /** Replace a son.
 
28195
   *  \param old_son The son to replace.
 
28196
   *  \param new_son The new son. */
22996
28197
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22997
28198
    CTree::ReplaceSon (sons, 2, old_son, new_son);
22998
28199
  }
22999
28200
};
23000
28201
 
23001
28202
 
23002
 
#line 23003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28203
#line 28204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23003
28204
} // closed Puma
 
28205
class CCExprResolve;
 
28206
class CExprResolve;
23004
28207
class WinIfExists;
23005
28208
class WinImportHandler;
23006
28209
class WinMacros;
23007
 
class CMatchSyntax;
23008
 
class ExtGnu;
 
28210
class WinAsm;
 
28211
class WinDeclSpecs;
 
28212
class WinMemberExplSpec;
 
28213
class WinTypeKeywords;
 
28214
class WinFriend;
23009
28215
class ExtAC;
23010
28216
class ExtACBuilderCoupling;
23011
28217
class ExtACSyntaxCoupling;
23012
28218
class ExtACTree;
23013
28219
class ExtACKeywords;
23014
 
class WinAsm;
23015
 
class WinDeclSpecs;
23016
 
class WinMemberExplSpec;
23017
 
class WinTypeKeywords;
 
28220
class ExtGnu;
23018
28221
class PragmaOnceUnitState;
23019
28222
class PragmaOnce;
23020
 
class CCExprResolve;
23021
 
class CExprResolve;
 
28223
class CMatchSyntax;
23022
28224
namespace Puma {
23023
28225
 
23024
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28226
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23025
28227
class CT_DeclStmt : public CT_Statement {
23026
 
#line 23027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28228
#line 28229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28229
  friend class ::CCExprResolve;
 
28230
  friend class ::CExprResolve;
23027
28231
  friend class ::WinIfExists;
23028
28232
  friend class ::WinImportHandler;
23029
28233
  friend class ::WinMacros;
23030
 
  friend class ::CMatchSyntax;
23031
 
  friend class ::ExtGnu;
 
28234
  friend class ::WinAsm;
 
28235
  friend class ::WinDeclSpecs;
 
28236
  friend class ::WinMemberExplSpec;
 
28237
  friend class ::WinTypeKeywords;
 
28238
  friend class ::WinFriend;
23032
28239
  friend class ::ExtAC;
23033
28240
  friend class ::ExtACBuilderCoupling;
23034
28241
  friend class ::ExtACSyntaxCoupling;
23035
28242
  friend class ::ExtACTree;
23036
28243
  friend class ::ExtACKeywords;
23037
 
  friend class ::WinAsm;
23038
 
  friend class ::WinDeclSpecs;
23039
 
  friend class ::WinMemberExplSpec;
23040
 
  friend class ::WinTypeKeywords;
 
28244
  friend class ::ExtGnu;
23041
28245
  friend class ::PragmaOnceUnitState;
23042
28246
  friend class ::PragmaOnce;
23043
 
  friend class ::CCExprResolve;
23044
 
  friend class ::CExprResolve;
 
28247
  friend class ::CMatchSyntax;
23045
28248
 
23046
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28249
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23047
28250
 
23048
28251
  CTree *_decl;
23049
28252
 
23050
28253
public:
23051
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
28254
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
28255
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23052
28256
  static const char *NodeId ();
 
28257
  /** Get the name of the node. Can be compared with NodeId(). */
23053
28258
  const char *NodeName () const { return NodeId (); }
 
28259
  /** Get the number of sons. */
23054
28260
  int Sons () const { return 1; }
 
28261
  /** Get the n-th son.
 
28262
   *  \param n The index of the son.
 
28263
   *  \return The n-th son or NULL. */
23055
28264
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
28265
  /** Replace a son.
 
28266
   *  \param old_son The son to replace.
 
28267
   *  \param new_son The new son. */
23056
28268
  void ReplaceSon (CTree *old_son, CTree *new_son) 
23057
 
   { if (old_son == _decl) _decl = new_son; }
 
28269
   { CTree::ReplaceSon (_decl, old_son, new_son); }
23058
28270
};
23059
28271
 
23060
28272
 
23061
 
#line 23062 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28273
#line 28274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23062
28274
} // closed Puma
 
28275
class CCExprResolve;
 
28276
class CExprResolve;
23063
28277
class WinIfExists;
23064
28278
class WinImportHandler;
23065
28279
class WinMacros;
23066
 
class CMatchSyntax;
23067
 
class ExtGnu;
 
28280
class WinAsm;
 
28281
class WinDeclSpecs;
 
28282
class WinMemberExplSpec;
 
28283
class WinTypeKeywords;
 
28284
class WinFriend;
23068
28285
class ExtAC;
23069
28286
class ExtACBuilderCoupling;
23070
28287
class ExtACSyntaxCoupling;
23071
28288
class ExtACTree;
23072
28289
class ExtACKeywords;
23073
 
class WinAsm;
23074
 
class WinDeclSpecs;
23075
 
class WinMemberExplSpec;
23076
 
class WinTypeKeywords;
 
28290
class ExtGnu;
23077
28291
class PragmaOnceUnitState;
23078
28292
class PragmaOnce;
23079
 
class CCExprResolve;
23080
 
class CExprResolve;
 
28293
class CMatchSyntax;
23081
28294
namespace Puma {
23082
28295
 
23083
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28296
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23084
28297
class CT_SwitchStmt : public CT_Statement, public CSemScope {
23085
 
#line 23086 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28298
#line 28299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28299
  friend class ::CCExprResolve;
 
28300
  friend class ::CExprResolve;
23086
28301
  friend class ::WinIfExists;
23087
28302
  friend class ::WinImportHandler;
23088
28303
  friend class ::WinMacros;
23089
 
  friend class ::CMatchSyntax;
23090
 
  friend class ::ExtGnu;
 
28304
  friend class ::WinAsm;
 
28305
  friend class ::WinDeclSpecs;
 
28306
  friend class ::WinMemberExplSpec;
 
28307
  friend class ::WinTypeKeywords;
 
28308
  friend class ::WinFriend;
23091
28309
  friend class ::ExtAC;
23092
28310
  friend class ::ExtACBuilderCoupling;
23093
28311
  friend class ::ExtACSyntaxCoupling;
23094
28312
  friend class ::ExtACTree;
23095
28313
  friend class ::ExtACKeywords;
23096
 
  friend class ::WinAsm;
23097
 
  friend class ::WinDeclSpecs;
23098
 
  friend class ::WinMemberExplSpec;
23099
 
  friend class ::WinTypeKeywords;
 
28314
  friend class ::ExtGnu;
23100
28315
  friend class ::PragmaOnceUnitState;
23101
28316
  friend class ::PragmaOnce;
23102
 
  friend class ::CCExprResolve;
23103
 
  friend class ::CExprResolve;
 
28317
  friend class ::CMatchSyntax;
23104
28318
 
23105
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28319
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23106
28320
 
23107
28321
  CTree *sons[5]; // keyword, open, cond, close, stmt
23108
28322
 
23109
28323
public:
23110
28324
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
23111
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
28325
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
28326
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
23112
28327
  }
 
28328
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23113
28329
  static const char *NodeId ();
 
28330
  /** Get the name of the node. Can be compared with NodeId(). */
23114
28331
  const char *NodeName () const { return NodeId (); }
 
28332
  /** Get the number of sons. */
23115
28333
  int Sons () const { return 5; }
 
28334
  /** Get the n-th son.
 
28335
   *  \param n The index of the son.
 
28336
   *  \return The n-th son or NULL. */
23116
28337
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23117
28338
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
23118
28339
  CTree *Condition () const { return sons[2]; }
 
28340
  /** Replace a son.
 
28341
   *  \param old_son The son to replace.
 
28342
   *  \param new_son The new son. */
23119
28343
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23120
28344
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23121
28345
  }
 
28346
  CSemScope *SemScope () const { return (CSemScope*)this; }
23122
28347
};
23123
28348
 
23124
28349
 
23125
 
#line 23126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28350
#line 28351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23126
28351
} // closed Puma
 
28352
class CCExprResolve;
 
28353
class CExprResolve;
23127
28354
class WinIfExists;
23128
28355
class WinImportHandler;
23129
28356
class WinMacros;
23130
 
class CMatchSyntax;
23131
 
class ExtGnu;
 
28357
class WinAsm;
 
28358
class WinDeclSpecs;
 
28359
class WinMemberExplSpec;
 
28360
class WinTypeKeywords;
 
28361
class WinFriend;
23132
28362
class ExtAC;
23133
28363
class ExtACBuilderCoupling;
23134
28364
class ExtACSyntaxCoupling;
23135
28365
class ExtACTree;
23136
28366
class ExtACKeywords;
23137
 
class WinAsm;
23138
 
class WinDeclSpecs;
23139
 
class WinMemberExplSpec;
23140
 
class WinTypeKeywords;
 
28367
class ExtGnu;
23141
28368
class PragmaOnceUnitState;
23142
28369
class PragmaOnce;
23143
 
class CCExprResolve;
23144
 
class CExprResolve;
 
28370
class CMatchSyntax;
23145
28371
namespace Puma {
23146
28372
 
23147
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28373
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23148
28374
class CT_IfStmt : public CT_Statement, public CSemScope {
23149
 
#line 23150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28375
#line 28376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28376
  friend class ::CCExprResolve;
 
28377
  friend class ::CExprResolve;
23150
28378
  friend class ::WinIfExists;
23151
28379
  friend class ::WinImportHandler;
23152
28380
  friend class ::WinMacros;
23153
 
  friend class ::CMatchSyntax;
23154
 
  friend class ::ExtGnu;
 
28381
  friend class ::WinAsm;
 
28382
  friend class ::WinDeclSpecs;
 
28383
  friend class ::WinMemberExplSpec;
 
28384
  friend class ::WinTypeKeywords;
 
28385
  friend class ::WinFriend;
23155
28386
  friend class ::ExtAC;
23156
28387
  friend class ::ExtACBuilderCoupling;
23157
28388
  friend class ::ExtACSyntaxCoupling;
23158
28389
  friend class ::ExtACTree;
23159
28390
  friend class ::ExtACKeywords;
23160
 
  friend class ::WinAsm;
23161
 
  friend class ::WinDeclSpecs;
23162
 
  friend class ::WinMemberExplSpec;
23163
 
  friend class ::WinTypeKeywords;
 
28391
  friend class ::ExtGnu;
23164
28392
  friend class ::PragmaOnceUnitState;
23165
28393
  friend class ::PragmaOnce;
23166
 
  friend class ::CCExprResolve;
23167
 
  friend class ::CExprResolve;
 
28394
  friend class ::CMatchSyntax;
23168
28395
 
23169
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28396
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23170
28397
 
23171
28398
  CTree *sons[5]; // keyword, open, cond, close, stmt
23172
28399
 
23173
28400
public:
23174
28401
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
23175
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
28402
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
28403
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
23176
28404
  }
 
28405
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23177
28406
  static const char *NodeId ();
 
28407
  /** Get the name of the node. Can be compared with NodeId(). */
23178
28408
  const char *NodeName () const { return NodeId (); }
 
28409
  /** Get the number of sons. */
23179
28410
  int Sons () const { return 5; }
 
28411
  /** Get the n-th son.
 
28412
   *  \param n The index of the son.
 
28413
   *  \return The n-th son or NULL. */
23180
28414
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23181
28415
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
23182
28416
  CTree *Condition () const { return sons[2]; }
 
28417
  /** Replace a son.
 
28418
   *  \param old_son The son to replace.
 
28419
   *  \param new_son The new son. */
23183
28420
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23184
28421
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23185
28422
  }
 
28423
  CSemScope *SemScope () const { return (CSemScope*)this; }
23186
28424
};
23187
28425
 
23188
28426
 
23189
 
#line 23190 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28427
#line 28428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23190
28428
} // closed Puma
 
28429
class CCExprResolve;
 
28430
class CExprResolve;
23191
28431
class WinIfExists;
23192
28432
class WinImportHandler;
23193
28433
class WinMacros;
23194
 
class CMatchSyntax;
23195
 
class ExtGnu;
 
28434
class WinAsm;
 
28435
class WinDeclSpecs;
 
28436
class WinMemberExplSpec;
 
28437
class WinTypeKeywords;
 
28438
class WinFriend;
23196
28439
class ExtAC;
23197
28440
class ExtACBuilderCoupling;
23198
28441
class ExtACSyntaxCoupling;
23199
28442
class ExtACTree;
23200
28443
class ExtACKeywords;
23201
 
class WinAsm;
23202
 
class WinDeclSpecs;
23203
 
class WinMemberExplSpec;
23204
 
class WinTypeKeywords;
 
28444
class ExtGnu;
23205
28445
class PragmaOnceUnitState;
23206
28446
class PragmaOnce;
23207
 
class CCExprResolve;
23208
 
class CExprResolve;
 
28447
class CMatchSyntax;
23209
28448
namespace Puma {
23210
28449
 
23211
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28450
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23212
28451
class CT_IfElseStmt : public CT_Statement, public CSemScope {
23213
 
#line 23214 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28452
#line 28453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28453
  friend class ::CCExprResolve;
 
28454
  friend class ::CExprResolve;
23214
28455
  friend class ::WinIfExists;
23215
28456
  friend class ::WinImportHandler;
23216
28457
  friend class ::WinMacros;
23217
 
  friend class ::CMatchSyntax;
23218
 
  friend class ::ExtGnu;
 
28458
  friend class ::WinAsm;
 
28459
  friend class ::WinDeclSpecs;
 
28460
  friend class ::WinMemberExplSpec;
 
28461
  friend class ::WinTypeKeywords;
 
28462
  friend class ::WinFriend;
23219
28463
  friend class ::ExtAC;
23220
28464
  friend class ::ExtACBuilderCoupling;
23221
28465
  friend class ::ExtACSyntaxCoupling;
23222
28466
  friend class ::ExtACTree;
23223
28467
  friend class ::ExtACKeywords;
23224
 
  friend class ::WinAsm;
23225
 
  friend class ::WinDeclSpecs;
23226
 
  friend class ::WinMemberExplSpec;
23227
 
  friend class ::WinTypeKeywords;
 
28468
  friend class ::ExtGnu;
23228
28469
  friend class ::PragmaOnceUnitState;
23229
28470
  friend class ::PragmaOnce;
23230
 
  friend class ::CCExprResolve;
23231
 
  friend class ::CExprResolve;
 
28471
  friend class ::CMatchSyntax;
23232
28472
 
23233
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28473
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23234
28474
 
23235
28475
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
23236
28476
 
23237
28477
public:
23238
28478
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
23239
28479
                 CTree *is, CTree *e, CTree *es) {
23240
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
23241
 
    sons[5] = e; sons[6] = es; 
 
28480
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
28481
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
28482
    AddSon (sons[6], es); 
23242
28483
  }
 
28484
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23243
28485
  static const char *NodeId ();
 
28486
  /** Get the name of the node. Can be compared with NodeId(). */
23244
28487
  const char *NodeName () const { return NodeId (); }
 
28488
  /** Get the number of sons. */
23245
28489
  int Sons () const { return 7; }
 
28490
  /** Get the n-th son.
 
28491
   *  \param n The index of the son.
 
28492
   *  \return The n-th son or NULL. */
23246
28493
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
23247
28494
  CTree *Condition () const { return sons[2]; }
23248
28495
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
23249
28496
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
28497
  /** Replace a son.
 
28498
   *  \param old_son The son to replace.
 
28499
   *  \param new_son The new son. */
23250
28500
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23251
28501
    CTree::ReplaceSon (sons, 7, old_son, new_son);
23252
28502
  }
 
28503
  CSemScope *SemScope () const { return (CSemScope*)this; }
23253
28504
};
23254
28505
 
23255
28506
 
23256
 
#line 23257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28507
#line 28508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23257
28508
} // closed Puma
 
28509
class CCExprResolve;
 
28510
class CExprResolve;
23258
28511
class WinIfExists;
23259
28512
class WinImportHandler;
23260
28513
class WinMacros;
23261
 
class CMatchSyntax;
23262
 
class ExtGnu;
 
28514
class WinAsm;
 
28515
class WinDeclSpecs;
 
28516
class WinMemberExplSpec;
 
28517
class WinTypeKeywords;
 
28518
class WinFriend;
23263
28519
class ExtAC;
23264
28520
class ExtACBuilderCoupling;
23265
28521
class ExtACSyntaxCoupling;
23266
28522
class ExtACTree;
23267
28523
class ExtACKeywords;
23268
 
class WinAsm;
23269
 
class WinDeclSpecs;
23270
 
class WinMemberExplSpec;
23271
 
class WinTypeKeywords;
 
28524
class ExtGnu;
23272
28525
class PragmaOnceUnitState;
23273
28526
class PragmaOnce;
23274
 
class CCExprResolve;
23275
 
class CExprResolve;
 
28527
class CMatchSyntax;
23276
28528
namespace Puma {
23277
28529
 
23278
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28530
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23279
28531
class CT_BreakStmt : public CT_Statement {
23280
 
#line 23281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28532
#line 28533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28533
  friend class ::CCExprResolve;
 
28534
  friend class ::CExprResolve;
23281
28535
  friend class ::WinIfExists;
23282
28536
  friend class ::WinImportHandler;
23283
28537
  friend class ::WinMacros;
23284
 
  friend class ::CMatchSyntax;
23285
 
  friend class ::ExtGnu;
 
28538
  friend class ::WinAsm;
 
28539
  friend class ::WinDeclSpecs;
 
28540
  friend class ::WinMemberExplSpec;
 
28541
  friend class ::WinTypeKeywords;
 
28542
  friend class ::WinFriend;
23286
28543
  friend class ::ExtAC;
23287
28544
  friend class ::ExtACBuilderCoupling;
23288
28545
  friend class ::ExtACSyntaxCoupling;
23289
28546
  friend class ::ExtACTree;
23290
28547
  friend class ::ExtACKeywords;
23291
 
  friend class ::WinAsm;
23292
 
  friend class ::WinDeclSpecs;
23293
 
  friend class ::WinMemberExplSpec;
23294
 
  friend class ::WinTypeKeywords;
 
28548
  friend class ::ExtGnu;
23295
28549
  friend class ::PragmaOnceUnitState;
23296
28550
  friend class ::PragmaOnce;
23297
 
  friend class ::CCExprResolve;
23298
 
  friend class ::CExprResolve;
 
28551
  friend class ::CMatchSyntax;
23299
28552
 
23300
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28553
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23301
28554
 
23302
28555
  CTree *sons[2]; // key, semi_colon
23303
28556
 
23304
28557
public:
23305
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
28558
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
28559
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23306
28560
  static const char *NodeId ();
 
28561
  /** Get the name of the node. Can be compared with NodeId(). */
23307
28562
  const char *NodeName () const { return NodeId (); }
 
28563
  /** Get the number of sons. */
23308
28564
  int Sons () const { return 2; }
 
28565
  /** Get the n-th son.
 
28566
   *  \param n The index of the son.
 
28567
   *  \return The n-th son or NULL. */
23309
28568
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28569
  /** Replace a son.
 
28570
   *  \param old_son The son to replace.
 
28571
   *  \param new_son The new son. */
23310
28572
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23311
28573
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23312
28574
  }
23313
28575
};
23314
28576
 
23315
28577
 
23316
 
#line 23317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28578
#line 28579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23317
28579
} // closed Puma
 
28580
class CCExprResolve;
 
28581
class CExprResolve;
23318
28582
class WinIfExists;
23319
28583
class WinImportHandler;
23320
28584
class WinMacros;
23321
 
class CMatchSyntax;
23322
 
class ExtGnu;
 
28585
class WinAsm;
 
28586
class WinDeclSpecs;
 
28587
class WinMemberExplSpec;
 
28588
class WinTypeKeywords;
 
28589
class WinFriend;
23323
28590
class ExtAC;
23324
28591
class ExtACBuilderCoupling;
23325
28592
class ExtACSyntaxCoupling;
23326
28593
class ExtACTree;
23327
28594
class ExtACKeywords;
23328
 
class WinAsm;
23329
 
class WinDeclSpecs;
23330
 
class WinMemberExplSpec;
23331
 
class WinTypeKeywords;
 
28595
class ExtGnu;
23332
28596
class PragmaOnceUnitState;
23333
28597
class PragmaOnce;
23334
 
class CCExprResolve;
23335
 
class CExprResolve;
 
28598
class CMatchSyntax;
23336
28599
namespace Puma {
23337
28600
 
23338
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28601
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23339
28602
class CT_ContinueStmt : public CT_Statement {
23340
 
#line 23341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28603
#line 28604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28604
  friend class ::CCExprResolve;
 
28605
  friend class ::CExprResolve;
23341
28606
  friend class ::WinIfExists;
23342
28607
  friend class ::WinImportHandler;
23343
28608
  friend class ::WinMacros;
23344
 
  friend class ::CMatchSyntax;
23345
 
  friend class ::ExtGnu;
 
28609
  friend class ::WinAsm;
 
28610
  friend class ::WinDeclSpecs;
 
28611
  friend class ::WinMemberExplSpec;
 
28612
  friend class ::WinTypeKeywords;
 
28613
  friend class ::WinFriend;
23346
28614
  friend class ::ExtAC;
23347
28615
  friend class ::ExtACBuilderCoupling;
23348
28616
  friend class ::ExtACSyntaxCoupling;
23349
28617
  friend class ::ExtACTree;
23350
28618
  friend class ::ExtACKeywords;
23351
 
  friend class ::WinAsm;
23352
 
  friend class ::WinDeclSpecs;
23353
 
  friend class ::WinMemberExplSpec;
23354
 
  friend class ::WinTypeKeywords;
 
28619
  friend class ::ExtGnu;
23355
28620
  friend class ::PragmaOnceUnitState;
23356
28621
  friend class ::PragmaOnce;
23357
 
  friend class ::CCExprResolve;
23358
 
  friend class ::CExprResolve;
 
28622
  friend class ::CMatchSyntax;
23359
28623
 
23360
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28624
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23361
28625
 
23362
28626
  CTree *sons[2]; // key, semi_colon
23363
28627
 
23364
28628
public:
23365
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
28629
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
28630
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23366
28631
  static const char *NodeId ();
 
28632
  /** Get the name of the node. Can be compared with NodeId(). */
23367
28633
  const char *NodeName () const { return NodeId (); }
 
28634
  /** Get the number of sons. */
23368
28635
  int Sons () const { return 2; }
 
28636
  /** Get the n-th son.
 
28637
   *  \param n The index of the son.
 
28638
   *  \return The n-th son or NULL. */
23369
28639
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28640
  /** Replace a son.
 
28641
   *  \param old_son The son to replace.
 
28642
   *  \param new_son The new son. */
23370
28643
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23371
28644
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23372
28645
  }
23373
28646
};
23374
28647
 
23375
28648
 
23376
 
#line 23377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28649
#line 28650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23377
28650
} // closed Puma
 
28651
class CCExprResolve;
 
28652
class CExprResolve;
23378
28653
class WinIfExists;
23379
28654
class WinImportHandler;
23380
28655
class WinMacros;
23381
 
class CMatchSyntax;
23382
 
class ExtGnu;
 
28656
class WinAsm;
 
28657
class WinDeclSpecs;
 
28658
class WinMemberExplSpec;
 
28659
class WinTypeKeywords;
 
28660
class WinFriend;
23383
28661
class ExtAC;
23384
28662
class ExtACBuilderCoupling;
23385
28663
class ExtACSyntaxCoupling;
23386
28664
class ExtACTree;
23387
28665
class ExtACKeywords;
23388
 
class WinAsm;
23389
 
class WinDeclSpecs;
23390
 
class WinMemberExplSpec;
23391
 
class WinTypeKeywords;
 
28666
class ExtGnu;
23392
28667
class PragmaOnceUnitState;
23393
28668
class PragmaOnce;
23394
 
class CCExprResolve;
23395
 
class CExprResolve;
 
28669
class CMatchSyntax;
23396
28670
namespace Puma {
23397
28671
 
23398
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28672
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23399
28673
class CT_GotoStmt : public CT_Statement {
23400
 
#line 23401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28674
#line 28675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28675
  friend class ::CCExprResolve;
 
28676
  friend class ::CExprResolve;
23401
28677
  friend class ::WinIfExists;
23402
28678
  friend class ::WinImportHandler;
23403
28679
  friend class ::WinMacros;
23404
 
  friend class ::CMatchSyntax;
23405
 
  friend class ::ExtGnu;
 
28680
  friend class ::WinAsm;
 
28681
  friend class ::WinDeclSpecs;
 
28682
  friend class ::WinMemberExplSpec;
 
28683
  friend class ::WinTypeKeywords;
 
28684
  friend class ::WinFriend;
23406
28685
  friend class ::ExtAC;
23407
28686
  friend class ::ExtACBuilderCoupling;
23408
28687
  friend class ::ExtACSyntaxCoupling;
23409
28688
  friend class ::ExtACTree;
23410
28689
  friend class ::ExtACKeywords;
23411
 
  friend class ::WinAsm;
23412
 
  friend class ::WinDeclSpecs;
23413
 
  friend class ::WinMemberExplSpec;
23414
 
  friend class ::WinTypeKeywords;
 
28690
  friend class ::ExtGnu;
23415
28691
  friend class ::PragmaOnceUnitState;
23416
28692
  friend class ::PragmaOnce;
23417
 
  friend class ::CCExprResolve;
23418
 
  friend class ::CExprResolve;
 
28693
  friend class ::CMatchSyntax;
23419
28694
 
23420
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28695
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23421
28696
 
23422
28697
  CTree *sons[3]; // key, label, semi_colon
23423
28698
 
23424
28699
public:
23425
28700
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
23426
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
28701
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
23427
28702
  }
 
28703
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23428
28704
  static const char *NodeId ();
 
28705
  /** Get the name of the node. Can be compared with NodeId(). */
23429
28706
  const char *NodeName () const { return NodeId (); }
 
28707
  /** Get the number of sons. */
23430
28708
  int Sons () const { return 3; }
 
28709
  /** Get the n-th son.
 
28710
   *  \param n The index of the son.
 
28711
   *  \return The n-th son or NULL. */
23431
28712
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23432
28713
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
28714
  /** Replace a son.
 
28715
   *  \param old_son The son to replace.
 
28716
   *  \param new_son The new son. */
23433
28717
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23434
28718
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23435
28719
  }
23436
28720
};
23437
28721
 
23438
28722
 
23439
 
#line 23440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28723
#line 28724 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23440
28724
} // closed Puma
 
28725
class CCExprResolve;
 
28726
class CExprResolve;
23441
28727
class WinIfExists;
23442
28728
class WinImportHandler;
23443
28729
class WinMacros;
23444
 
class CMatchSyntax;
23445
 
class ExtGnu;
 
28730
class WinAsm;
 
28731
class WinDeclSpecs;
 
28732
class WinMemberExplSpec;
 
28733
class WinTypeKeywords;
 
28734
class WinFriend;
23446
28735
class ExtAC;
23447
28736
class ExtACBuilderCoupling;
23448
28737
class ExtACSyntaxCoupling;
23449
28738
class ExtACTree;
23450
28739
class ExtACKeywords;
23451
 
class WinAsm;
23452
 
class WinDeclSpecs;
23453
 
class WinMemberExplSpec;
23454
 
class WinTypeKeywords;
 
28740
class ExtGnu;
23455
28741
class PragmaOnceUnitState;
23456
28742
class PragmaOnce;
23457
 
class CCExprResolve;
23458
 
class CExprResolve;
 
28743
class CMatchSyntax;
23459
28744
namespace Puma {
23460
28745
 
23461
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28746
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23462
28747
class CT_ReturnStmt : public CT_Statement {
23463
 
#line 23464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28748
#line 28749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28749
  friend class ::CCExprResolve;
 
28750
  friend class ::CExprResolve;
23464
28751
  friend class ::WinIfExists;
23465
28752
  friend class ::WinImportHandler;
23466
28753
  friend class ::WinMacros;
23467
 
  friend class ::CMatchSyntax;
23468
 
  friend class ::ExtGnu;
 
28754
  friend class ::WinAsm;
 
28755
  friend class ::WinDeclSpecs;
 
28756
  friend class ::WinMemberExplSpec;
 
28757
  friend class ::WinTypeKeywords;
 
28758
  friend class ::WinFriend;
23469
28759
  friend class ::ExtAC;
23470
28760
  friend class ::ExtACBuilderCoupling;
23471
28761
  friend class ::ExtACSyntaxCoupling;
23472
28762
  friend class ::ExtACTree;
23473
28763
  friend class ::ExtACKeywords;
23474
 
  friend class ::WinAsm;
23475
 
  friend class ::WinDeclSpecs;
23476
 
  friend class ::WinMemberExplSpec;
23477
 
  friend class ::WinTypeKeywords;
 
28764
  friend class ::ExtGnu;
23478
28765
  friend class ::PragmaOnceUnitState;
23479
28766
  friend class ::PragmaOnce;
23480
 
  friend class ::CCExprResolve;
23481
 
  friend class ::CExprResolve;
 
28767
  friend class ::CMatchSyntax;
23482
28768
 
23483
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28769
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23484
28770
 
23485
28771
  CTree *sons[3]; // key, expr, semi_colon
23486
28772
 
23487
28773
public:
23488
28774
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
23489
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
28775
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
23490
28776
  }
 
28777
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23491
28778
  static const char *NodeId ();
 
28779
  /** Get the name of the node. Can be compared with NodeId(). */
23492
28780
  const char *NodeName () const { return NodeId (); }
 
28781
  /** Get the number of sons. */
23493
28782
  int Sons () const { return CTree::Sons (sons, 3); }
 
28783
  /** Get the n-th son.
 
28784
   *  \param n The index of the son.
 
28785
   *  \return The n-th son or NULL. */
23494
28786
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23495
28787
  CTree *Expr () const { return sons[1]; }
 
28788
  /** Replace a son.
 
28789
   *  \param old_son The son to replace.
 
28790
   *  \param new_son The new son. */
23496
28791
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23497
28792
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23498
28793
  }
23499
28794
};
23500
28795
 
23501
28796
 
23502
 
#line 23503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28797
#line 28798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23503
28798
} // closed Puma
 
28799
class CCExprResolve;
 
28800
class CExprResolve;
23504
28801
class WinIfExists;
23505
28802
class WinImportHandler;
23506
28803
class WinMacros;
23507
 
class CMatchSyntax;
23508
 
class ExtGnu;
 
28804
class WinAsm;
 
28805
class WinDeclSpecs;
 
28806
class WinMemberExplSpec;
 
28807
class WinTypeKeywords;
 
28808
class WinFriend;
23509
28809
class ExtAC;
23510
28810
class ExtACBuilderCoupling;
23511
28811
class ExtACSyntaxCoupling;
23512
28812
class ExtACTree;
23513
28813
class ExtACKeywords;
23514
 
class WinAsm;
23515
 
class WinDeclSpecs;
23516
 
class WinMemberExplSpec;
23517
 
class WinTypeKeywords;
 
28814
class ExtGnu;
23518
28815
class PragmaOnceUnitState;
23519
28816
class PragmaOnce;
23520
 
class CCExprResolve;
23521
 
class CExprResolve;
 
28817
class CMatchSyntax;
23522
28818
namespace Puma {
23523
28819
 
23524
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28820
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23525
28821
class CT_WhileStmt : public CT_Statement, public CSemScope {
23526
 
#line 23527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28822
#line 28823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28823
  friend class ::CCExprResolve;
 
28824
  friend class ::CExprResolve;
23527
28825
  friend class ::WinIfExists;
23528
28826
  friend class ::WinImportHandler;
23529
28827
  friend class ::WinMacros;
23530
 
  friend class ::CMatchSyntax;
23531
 
  friend class ::ExtGnu;
 
28828
  friend class ::WinAsm;
 
28829
  friend class ::WinDeclSpecs;
 
28830
  friend class ::WinMemberExplSpec;
 
28831
  friend class ::WinTypeKeywords;
 
28832
  friend class ::WinFriend;
23532
28833
  friend class ::ExtAC;
23533
28834
  friend class ::ExtACBuilderCoupling;
23534
28835
  friend class ::ExtACSyntaxCoupling;
23535
28836
  friend class ::ExtACTree;
23536
28837
  friend class ::ExtACKeywords;
23537
 
  friend class ::WinAsm;
23538
 
  friend class ::WinDeclSpecs;
23539
 
  friend class ::WinMemberExplSpec;
23540
 
  friend class ::WinTypeKeywords;
 
28838
  friend class ::ExtGnu;
23541
28839
  friend class ::PragmaOnceUnitState;
23542
28840
  friend class ::PragmaOnce;
23543
 
  friend class ::CCExprResolve;
23544
 
  friend class ::CExprResolve;
 
28841
  friend class ::CMatchSyntax;
23545
28842
 
23546
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28843
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23547
28844
 
23548
28845
  CTree *sons[5]; // key, open, cond, close, stmt
23549
28846
 
23550
28847
public:
23551
28848
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
23552
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
28849
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
28850
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
23553
28851
  }
 
28852
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23554
28853
  static const char *NodeId ();
 
28854
  /** Get the name of the node. Can be compared with NodeId(). */
23555
28855
  const char *NodeName () const { return NodeId (); }
 
28856
  /** Get the number of sons. */
23556
28857
  int Sons () const { return 5; }
 
28858
  /** Get the n-th son.
 
28859
   *  \param n The index of the son.
 
28860
   *  \return The n-th son or NULL. */
23557
28861
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23558
28862
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
23559
28863
  CTree *Condition () const { return sons[2]; }
 
28864
  /** Replace a son.
 
28865
   *  \param old_son The son to replace.
 
28866
   *  \param new_son The new son. */
23560
28867
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23561
28868
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23562
28869
  }
 
28870
  CSemScope *SemScope () const { return (CSemScope*)this; }
23563
28871
};
23564
28872
 
23565
28873
 
23566
 
#line 23567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28874
#line 28875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23567
28875
} // closed Puma
 
28876
class CCExprResolve;
 
28877
class CExprResolve;
23568
28878
class WinIfExists;
23569
28879
class WinImportHandler;
23570
28880
class WinMacros;
23571
 
class CMatchSyntax;
23572
 
class ExtGnu;
 
28881
class WinAsm;
 
28882
class WinDeclSpecs;
 
28883
class WinMemberExplSpec;
 
28884
class WinTypeKeywords;
 
28885
class WinFriend;
23573
28886
class ExtAC;
23574
28887
class ExtACBuilderCoupling;
23575
28888
class ExtACSyntaxCoupling;
23576
28889
class ExtACTree;
23577
28890
class ExtACKeywords;
23578
 
class WinAsm;
23579
 
class WinDeclSpecs;
23580
 
class WinMemberExplSpec;
23581
 
class WinTypeKeywords;
 
28891
class ExtGnu;
23582
28892
class PragmaOnceUnitState;
23583
28893
class PragmaOnce;
23584
 
class CCExprResolve;
23585
 
class CExprResolve;
 
28894
class CMatchSyntax;
23586
28895
namespace Puma {
23587
28896
 
23588
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28897
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23589
28898
class CT_DoStmt : public CT_Statement {
23590
 
#line 23591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28899
#line 28900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28900
  friend class ::CCExprResolve;
 
28901
  friend class ::CExprResolve;
23591
28902
  friend class ::WinIfExists;
23592
28903
  friend class ::WinImportHandler;
23593
28904
  friend class ::WinMacros;
23594
 
  friend class ::CMatchSyntax;
23595
 
  friend class ::ExtGnu;
 
28905
  friend class ::WinAsm;
 
28906
  friend class ::WinDeclSpecs;
 
28907
  friend class ::WinMemberExplSpec;
 
28908
  friend class ::WinTypeKeywords;
 
28909
  friend class ::WinFriend;
23596
28910
  friend class ::ExtAC;
23597
28911
  friend class ::ExtACBuilderCoupling;
23598
28912
  friend class ::ExtACSyntaxCoupling;
23599
28913
  friend class ::ExtACTree;
23600
28914
  friend class ::ExtACKeywords;
23601
 
  friend class ::WinAsm;
23602
 
  friend class ::WinDeclSpecs;
23603
 
  friend class ::WinMemberExplSpec;
23604
 
  friend class ::WinTypeKeywords;
 
28915
  friend class ::ExtGnu;
23605
28916
  friend class ::PragmaOnceUnitState;
23606
28917
  friend class ::PragmaOnce;
23607
 
  friend class ::CCExprResolve;
23608
 
  friend class ::CExprResolve;
 
28918
  friend class ::CMatchSyntax;
23609
28919
 
23610
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28920
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23611
28921
 
23612
28922
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
23613
28923
 
23614
28924
public:
23615
28925
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
23616
28926
             CTree *c, CTree *sc) {
23617
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
23618
 
    sons[5] = c; sons[6] = sc; 
 
28927
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
28928
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
28929
    AddSon (sons[6], sc); 
23619
28930
  }
 
28931
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23620
28932
  static const char *NodeId ();
 
28933
  /** Get the name of the node. Can be compared with NodeId(). */
23621
28934
  const char *NodeName () const { return NodeId (); }
 
28935
  /** Get the number of sons. */
23622
28936
  int Sons () const { return 7; }
 
28937
  /** Get the n-th son.
 
28938
   *  \param n The index of the son.
 
28939
   *  \return The n-th son or NULL. */
23623
28940
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
23624
28941
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
23625
28942
  CTree *Expr () const { return sons[4]; }
 
28943
  /** Replace a son.
 
28944
   *  \param old_son The son to replace.
 
28945
   *  \param new_son The new son. */
23626
28946
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23627
28947
    CTree::ReplaceSon (sons, 7, old_son, new_son);
23628
28948
  }
23629
28949
};
23630
28950
 
23631
28951
 
23632
 
#line 23633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28952
#line 28953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23633
28953
} // closed Puma
 
28954
class CCExprResolve;
 
28955
class CExprResolve;
23634
28956
class WinIfExists;
23635
28957
class WinImportHandler;
23636
28958
class WinMacros;
23637
 
class CMatchSyntax;
23638
 
class ExtGnu;
 
28959
class WinAsm;
 
28960
class WinDeclSpecs;
 
28961
class WinMemberExplSpec;
 
28962
class WinTypeKeywords;
 
28963
class WinFriend;
23639
28964
class ExtAC;
23640
28965
class ExtACBuilderCoupling;
23641
28966
class ExtACSyntaxCoupling;
23642
28967
class ExtACTree;
23643
28968
class ExtACKeywords;
23644
 
class WinAsm;
23645
 
class WinDeclSpecs;
23646
 
class WinMemberExplSpec;
23647
 
class WinTypeKeywords;
 
28969
class ExtGnu;
23648
28970
class PragmaOnceUnitState;
23649
28971
class PragmaOnce;
23650
 
class CCExprResolve;
23651
 
class CExprResolve;
 
28972
class CMatchSyntax;
23652
28973
namespace Puma {
23653
28974
 
23654
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28975
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23655
28976
class CT_ForStmt : public CT_Statement, public CSemScope {
23656
 
#line 23657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
28977
#line 28978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
28978
  friend class ::CCExprResolve;
 
28979
  friend class ::CExprResolve;
23657
28980
  friend class ::WinIfExists;
23658
28981
  friend class ::WinImportHandler;
23659
28982
  friend class ::WinMacros;
23660
 
  friend class ::CMatchSyntax;
23661
 
  friend class ::ExtGnu;
 
28983
  friend class ::WinAsm;
 
28984
  friend class ::WinDeclSpecs;
 
28985
  friend class ::WinMemberExplSpec;
 
28986
  friend class ::WinTypeKeywords;
 
28987
  friend class ::WinFriend;
23662
28988
  friend class ::ExtAC;
23663
28989
  friend class ::ExtACBuilderCoupling;
23664
28990
  friend class ::ExtACSyntaxCoupling;
23665
28991
  friend class ::ExtACTree;
23666
28992
  friend class ::ExtACKeywords;
23667
 
  friend class ::WinAsm;
23668
 
  friend class ::WinDeclSpecs;
23669
 
  friend class ::WinMemberExplSpec;
23670
 
  friend class ::WinTypeKeywords;
 
28993
  friend class ::ExtGnu;
23671
28994
  friend class ::PragmaOnceUnitState;
23672
28995
  friend class ::PragmaOnce;
23673
 
  friend class ::CCExprResolve;
23674
 
  friend class ::CExprResolve;
 
28996
  friend class ::CMatchSyntax;
23675
28997
 
23676
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28998
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23677
28999
 
23678
29000
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
23679
29001
 
23680
29002
public:
23681
29003
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
23682
29004
              CTree *e, CTree *c, CTree *stmt) {
23683
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
23684
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
29005
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
29006
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
29007
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
23685
29008
  }
 
29009
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23686
29010
  static const char *NodeId ();
 
29011
  /** Get the name of the node. Can be compared with NodeId(). */
23687
29012
  const char *NodeName () const { return NodeId (); }
 
29013
  /** Get the number of sons. */
23688
29014
  int Sons () const { return CTree::Sons (sons, 8); }
 
29015
  /** Get the n-th son.
 
29016
   *  \param n The index of the son.
 
29017
   *  \return The n-th son or NULL. */
23689
29018
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
23690
29019
  CTree *InitStmt () const { return sons[2]; }
23691
29020
  CTree *Condition () const { return sons[3]; }
23692
29021
  CTree *Expr () const { return sons[5]; }
23693
29022
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
29023
  /** Replace a son.
 
29024
   *  \param old_son The son to replace.
 
29025
   *  \param new_son The new son. */
23694
29026
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23695
29027
    CTree::ReplaceSon (sons, 8, old_son, new_son);
23696
29028
  }
 
29029
  CSemScope *SemScope () const { return (CSemScope*)this; }
23697
29030
};
23698
29031
 
23699
29032
 
23700
 
#line 23701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29033
#line 29034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23701
29034
} // closed Puma
 
29035
class CCExprResolve;
 
29036
class CExprResolve;
23702
29037
class WinIfExists;
23703
29038
class WinImportHandler;
23704
29039
class WinMacros;
23705
 
class CMatchSyntax;
23706
 
class ExtGnu;
 
29040
class WinAsm;
 
29041
class WinDeclSpecs;
 
29042
class WinMemberExplSpec;
 
29043
class WinTypeKeywords;
 
29044
class WinFriend;
23707
29045
class ExtAC;
23708
29046
class ExtACBuilderCoupling;
23709
29047
class ExtACSyntaxCoupling;
23710
29048
class ExtACTree;
23711
29049
class ExtACKeywords;
23712
 
class WinAsm;
23713
 
class WinDeclSpecs;
23714
 
class WinMemberExplSpec;
23715
 
class WinTypeKeywords;
 
29050
class ExtGnu;
23716
29051
class PragmaOnceUnitState;
23717
29052
class PragmaOnce;
23718
 
class CCExprResolve;
23719
 
class CExprResolve;
 
29053
class CMatchSyntax;
23720
29054
namespace Puma {
23721
29055
 
23722
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29056
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23723
29057
class CT_Condition : public CT_Decl, public CSemObject {
23724
 
#line 23725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29058
#line 29059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29059
  friend class ::CCExprResolve;
 
29060
  friend class ::CExprResolve;
23725
29061
  friend class ::WinIfExists;
23726
29062
  friend class ::WinImportHandler;
23727
29063
  friend class ::WinMacros;
23728
 
  friend class ::CMatchSyntax;
23729
 
  friend class ::ExtGnu;
 
29064
  friend class ::WinAsm;
 
29065
  friend class ::WinDeclSpecs;
 
29066
  friend class ::WinMemberExplSpec;
 
29067
  friend class ::WinTypeKeywords;
 
29068
  friend class ::WinFriend;
23730
29069
  friend class ::ExtAC;
23731
29070
  friend class ::ExtACBuilderCoupling;
23732
29071
  friend class ::ExtACSyntaxCoupling;
23733
29072
  friend class ::ExtACTree;
23734
29073
  friend class ::ExtACKeywords;
23735
 
  friend class ::WinAsm;
23736
 
  friend class ::WinDeclSpecs;
23737
 
  friend class ::WinMemberExplSpec;
23738
 
  friend class ::WinTypeKeywords;
 
29074
  friend class ::ExtGnu;
23739
29075
  friend class ::PragmaOnceUnitState;
23740
29076
  friend class ::PragmaOnce;
23741
 
  friend class ::CCExprResolve;
23742
 
  friend class ::CExprResolve;
 
29077
  friend class ::CMatchSyntax;
23743
29078
 
23744
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29079
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23745
29080
 
23746
29081
  CTree *sons[3]; // declspecs, declarator, init
23747
29082
 
23748
29083
public:
23749
29084
  CT_Condition (CTree *dsl, CTree *d) {
23750
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
29085
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
23751
29086
  }
 
29087
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23752
29088
  static const char *NodeId ();
 
29089
  /** Get the name of the node. Can be compared with NodeId(). */
23753
29090
  const char *NodeName () const { return NodeId (); }
 
29091
  /** Get the number of sons. */
23754
29092
  int Sons () const { return CTree::Sons (sons, 3); }
 
29093
  /** Get the n-th son.
 
29094
   *  \param n The index of the son.
 
29095
   *  \return The n-th son or NULL. */
23755
29096
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23756
29097
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
23757
29098
  CTree *Declarator () const { return sons[1]; }
23758
29099
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
23759
29100
  CSemObject *SemObject () const { return (CSemObject*)this; }
23760
 
  void Initializer (CTree *i) { sons[2] = i; }
 
29101
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
29102
  /** Replace a son.
 
29103
   *  \param old_son The son to replace.
 
29104
   *  \param new_son The new son. */
23761
29105
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23762
29106
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23763
29107
  }
23770
29114
/*****************************************************************************/
23771
29115
 
23772
29116
 
23773
 
#line 23774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29117
#line 29118 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23774
29118
} // closed Puma
 
29119
class CCExprResolve;
 
29120
class CExprResolve;
23775
29121
class WinIfExists;
23776
29122
class WinImportHandler;
23777
29123
class WinMacros;
23778
 
class CMatchSyntax;
23779
 
class ExtGnu;
 
29124
class WinAsm;
 
29125
class WinDeclSpecs;
 
29126
class WinMemberExplSpec;
 
29127
class WinTypeKeywords;
 
29128
class WinFriend;
23780
29129
class ExtAC;
23781
29130
class ExtACBuilderCoupling;
23782
29131
class ExtACSyntaxCoupling;
23783
29132
class ExtACTree;
23784
29133
class ExtACKeywords;
23785
 
class WinAsm;
23786
 
class WinDeclSpecs;
23787
 
class WinMemberExplSpec;
23788
 
class WinTypeKeywords;
 
29134
class ExtGnu;
23789
29135
class PragmaOnceUnitState;
23790
29136
class PragmaOnce;
23791
 
class CCExprResolve;
23792
 
class CExprResolve;
23793
 
namespace Puma {
23794
 
 
23795
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29137
class CMatchSyntax;
 
29138
namespace Puma {
 
29139
 
 
29140
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29141
 
 
29142
#line 29143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29143
} // closed Puma
 
29144
 
 
29145
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
29146
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
29147
#include "ExtACTree.ah"
 
29148
#endif
 
29149
namespace Puma {
 
29150
 
 
29151
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23796
29152
class CT_ClassDef : public CT_Decl, public CSemObject {
23797
 
#line 23798 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29153
#line 29154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29154
  friend class ::CCExprResolve;
 
29155
  friend class ::CExprResolve;
23798
29156
  friend class ::WinIfExists;
23799
29157
  friend class ::WinImportHandler;
23800
29158
  friend class ::WinMacros;
23801
 
  friend class ::CMatchSyntax;
23802
 
  friend class ::ExtGnu;
 
29159
  friend class ::WinAsm;
 
29160
  friend class ::WinDeclSpecs;
 
29161
  friend class ::WinMemberExplSpec;
 
29162
  friend class ::WinTypeKeywords;
 
29163
  friend class ::WinFriend;
23803
29164
  friend class ::ExtAC;
23804
29165
  friend class ::ExtACBuilderCoupling;
23805
29166
  friend class ::ExtACSyntaxCoupling;
23806
29167
  friend class ::ExtACTree;
23807
29168
  friend class ::ExtACKeywords;
23808
 
  friend class ::WinAsm;
23809
 
  friend class ::WinDeclSpecs;
23810
 
  friend class ::WinMemberExplSpec;
23811
 
  friend class ::WinTypeKeywords;
 
29169
  friend class ::ExtGnu;
23812
29170
  friend class ::PragmaOnceUnitState;
23813
29171
  friend class ::PragmaOnce;
23814
 
  friend class ::CCExprResolve;
23815
 
  friend class ::CExprResolve;
 
29172
  friend class ::CMatchSyntax;
23816
29173
 
23817
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29174
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23818
29175
 
23819
29176
   
23820
 
#line 23821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29177
#line 29178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23821
29178
 
23822
29179
  struct __ac_wrapper_sons {
23823
29180
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
23832
29189
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
23833
29190
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
23834
29191
  } sons
23835
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29192
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23836
29193
 
23837
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29194
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23838
29195
; // key, name, bases, members
23839
29196
  CTree *obj_decl;
23840
29197
 
23841
29198
public:
23842
29199
  
23843
 
#line 23844 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
23844
 
 
23845
 
 
23846
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
23847
 
  typedef void Result;
23848
 
  typedef ::Puma::CT_ClassDef That;
23849
 
  typedef ::Puma::CT_ClassDef Target;
23850
 
  static const int JPID = 4;
 
29200
#line 29201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29201
 
 
29202
 
 
29203
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
29204
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
29205
  typedef TResult Result;
 
29206
  typedef TThat   That;
 
29207
  typedef TTarget Target;
 
29208
  enum { ARGS = TArgs::ARGS };
 
29209
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
29210
  static const int JPID = 55;
23851
29211
  static const AC::JPType JPTYPE = (AC::JPType)16;
23852
29212
  struct Res {
23853
29213
    typedef void Type;
23854
29214
    typedef void ReferredType;
23855
29215
  };
23856
 
  enum { ARGS = 3 };
23857
 
  template <int I, int DUMMY = 0> struct Arg {
23858
 
    typedef void Type;
23859
 
    typedef void ReferredType;
23860
 
  };
23861
 
  template <int DUMMY> struct Arg<0, DUMMY> {
23862
 
    typedef ::Puma::CTree * Type;
23863
 
    typedef ::Puma::CTree * ReferredType;
23864
 
  };
23865
 
  template <int DUMMY> struct Arg<1, DUMMY> {
23866
 
    typedef ::Puma::CTree * Type;
23867
 
    typedef ::Puma::CTree * ReferredType;
23868
 
  };
23869
 
  template <int DUMMY> struct Arg<2, DUMMY> {
23870
 
    typedef ::Puma::CTree * Type;
23871
 
    typedef ::Puma::CTree * ReferredType;
23872
 
  };
23873
29216
 
23874
29217
  That *_that;
23875
29218
 
23878
29221
};
23879
29222
 
23880
29223
 
23881
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29224
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23882
29225
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
23883
 
#line 23884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29226
#line 29227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23884
29227
{
23885
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
23886
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
23887
 
this->__exec_old_C1(arg0, arg1, arg2);
23888
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
23889
 
 
 
29228
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TLE > > > > __TJP;
 
29229
    __TJP tjp;
 
29230
  tjp._that =  (__TJP::That*)this;
 
29231
    this->__exec_old_C1(arg0, arg1, arg2);
 
29232
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
29233
  
23890
29234
}
23891
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
23892
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29235
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
29236
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23893
29237
{
23894
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
29238
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
29239
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
23895
29240
  }
 
29241
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23896
29242
  static const char *NodeId ();
 
29243
  /** Get the name of the node. Can be compared with NodeId(). */
23897
29244
  const char *NodeName () const { return NodeId (); }
 
29245
  /** Get the number of sons. */
23898
29246
  int Sons () const { return CTree::Sons (sons, 4); }
 
29247
  /** Get the n-th son.
 
29248
   *  \param n The index of the son.
 
29249
   *  \return The n-th son or NULL. */
23899
29250
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23900
29251
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
23901
29252
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
23902
29253
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
23903
29254
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
23904
29255
  CSemObject *SemObject () const { return (CSemObject*)this; }
23905
 
  void Members (CTree *m) { sons[3] = m; }
23906
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
23907
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
29256
  void Members (CTree *m) { AddSon (sons[3], m); }
 
29257
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
29258
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
29259
  /** Replace a son.
 
29260
   *  \param old_son The son to replace.
 
29261
   *  \param new_son The new son. */
23908
29262
  void ReplaceSon (CTree *old_son, CTree *new_son) {
23909
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
23910
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
29263
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23911
29264
  }
23912
29265
   private:
23913
29266
 
23914
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
23915
 
 CTree * _intro_members ;
 
29267
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
29268
 Puma :: CTree * _intro_members ;
 
29269
Puma :: CTree * _base_intros ;
23916
29270
public :
23917
 
CTree * IntroMembers ( ) const { return _intro_members ; }
23918
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
23919
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23920
 
 
23921
 
#line 23922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
23922
 
 
23923
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
23924
 
  typedef void Result;
23925
 
  typedef ::Puma::CT_ClassDef That;
23926
 
  typedef ::Puma::CT_ClassDef Target;
23927
 
  static const int JPID = 4;
 
29271
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
29272
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
29273
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
29274
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
29275
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29276
 
 
29277
#line 29278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29278
 
 
29279
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
29280
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
29281
  typedef TResult Result;
 
29282
  typedef TThat   That;
 
29283
  typedef TTarget Target;
 
29284
  enum { ARGS = TArgs::ARGS };
 
29285
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
29286
  static const int JPID = 6315;
23928
29287
  static const AC::JPType JPTYPE = (AC::JPType)16;
23929
29288
  struct Res {
23930
29289
    typedef void Type;
23931
29290
    typedef void ReferredType;
23932
29291
  };
23933
 
  enum { ARGS = 1 };
23934
 
  template <int I, int DUMMY = 0> struct Arg {
23935
 
    typedef void Type;
23936
 
    typedef void ReferredType;
23937
 
  };
23938
 
  template <int DUMMY> struct Arg<0, DUMMY> {
23939
 
    typedef const ::Puma::CT_ClassDef & Type;
23940
 
    typedef const ::Puma::CT_ClassDef ReferredType;
23941
 
  };
23942
29292
 
23943
29293
  That *_that;
23944
29294
 
23947
29297
};
23948
29298
 
23949
29299
 
23950
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29300
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23951
29301
 
23952
 
#line 23953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29302
#line 29303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23953
29303
 
23954
29304
public:
23955
 
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members) {
23956
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
23957
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
23958
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
29305
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members), _base_intros (arg0._base_intros) {
 
29306
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
29307
  __TJP tjp;
 
29308
  tjp._that =  (__TJP::That*)this;
 
29309
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
23959
29310
 
23960
29311
}
23961
29312
 
23962
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23963
 
 
23964
 
#line 23965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
23965
 
 
23966
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
23967
 
  typedef void Result;
23968
 
  typedef ::Puma::CT_ClassDef That;
23969
 
  typedef ::Puma::CT_ClassDef Target;
23970
 
  static const int JPID = 4;
 
29313
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29314
 
 
29315
#line 29316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29316
 
 
29317
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
29318
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
29319
  typedef TResult Result;
 
29320
  typedef TThat   That;
 
29321
  typedef TTarget Target;
 
29322
  enum { ARGS = TArgs::ARGS };
 
29323
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
29324
  static const int JPID = 6313;
23971
29325
  static const AC::JPType JPTYPE = (AC::JPType)32;
23972
29326
  struct Res {
23973
29327
    typedef void Type;
23974
29328
    typedef void ReferredType;
23975
29329
  };
23976
 
  enum { ARGS = 0 };
23977
 
  template <int I, int DUMMY = 0> struct Arg {
23978
 
    typedef void Type;
23979
 
    typedef void ReferredType;
23980
 
  };
23981
29330
 
23982
29331
  That *_that;
23983
29332
 
23986
29335
};
23987
29336
 
23988
29337
 
23989
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29338
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23990
29339
 
23991
 
#line 23992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29340
#line 29341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
23992
29341
 
23993
29342
public:
23994
29343
inline ~CT_ClassDef () {
23995
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
23996
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
23997
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
29344
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
29345
  __TJP tjp;
 
29346
  tjp._that =  (__TJP::That*)this;
 
29347
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
23998
29348
 
23999
29349
}
24000
29350
 
24001
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29351
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24002
29352
};
24003
29353
      
24004
29354
 
24005
 
#line 24006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29355
#line 29356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24006
29356
} // closed Puma
 
29357
class CCExprResolve;
 
29358
class CExprResolve;
24007
29359
class WinIfExists;
24008
29360
class WinImportHandler;
24009
29361
class WinMacros;
24010
 
class CMatchSyntax;
24011
 
class ExtGnu;
 
29362
class WinAsm;
 
29363
class WinDeclSpecs;
 
29364
class WinMemberExplSpec;
 
29365
class WinTypeKeywords;
 
29366
class WinFriend;
24012
29367
class ExtAC;
24013
29368
class ExtACBuilderCoupling;
24014
29369
class ExtACSyntaxCoupling;
24015
29370
class ExtACTree;
24016
29371
class ExtACKeywords;
24017
 
class WinAsm;
24018
 
class WinDeclSpecs;
24019
 
class WinMemberExplSpec;
24020
 
class WinTypeKeywords;
 
29372
class ExtGnu;
24021
29373
class PragmaOnceUnitState;
24022
29374
class PragmaOnce;
24023
 
class CCExprResolve;
24024
 
class CExprResolve;
 
29375
class CMatchSyntax;
24025
29376
namespace Puma {
24026
29377
 
24027
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29378
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24028
29379
class CT_UnionDef : public CT_ClassDef {
24029
 
#line 24030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29380
#line 29381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29381
  friend class ::CCExprResolve;
 
29382
  friend class ::CExprResolve;
24030
29383
  friend class ::WinIfExists;
24031
29384
  friend class ::WinImportHandler;
24032
29385
  friend class ::WinMacros;
24033
 
  friend class ::CMatchSyntax;
24034
 
  friend class ::ExtGnu;
 
29386
  friend class ::WinAsm;
 
29387
  friend class ::WinDeclSpecs;
 
29388
  friend class ::WinMemberExplSpec;
 
29389
  friend class ::WinTypeKeywords;
 
29390
  friend class ::WinFriend;
24035
29391
  friend class ::ExtAC;
24036
29392
  friend class ::ExtACBuilderCoupling;
24037
29393
  friend class ::ExtACSyntaxCoupling;
24038
29394
  friend class ::ExtACTree;
24039
29395
  friend class ::ExtACKeywords;
24040
 
  friend class ::WinAsm;
24041
 
  friend class ::WinDeclSpecs;
24042
 
  friend class ::WinMemberExplSpec;
24043
 
  friend class ::WinTypeKeywords;
 
29396
  friend class ::ExtGnu;
24044
29397
  friend class ::PragmaOnceUnitState;
24045
29398
  friend class ::PragmaOnce;
24046
 
  friend class ::CCExprResolve;
24047
 
  friend class ::CExprResolve;
 
29399
  friend class ::CMatchSyntax;
24048
29400
 
24049
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29401
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24050
29402
 
24051
29403
public:
24052
29404
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
24053
29405
  static const char *NodeId ();
 
29406
  /** Get the name of the node. Can be compared with NodeId(). */
24054
29407
  const char *NodeName () const { return NodeId (); }
24055
29408
};
24056
29409
      
24057
29410
 
24058
 
#line 24059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29411
#line 29412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24059
29412
} // closed Puma
 
29413
class CCExprResolve;
 
29414
class CExprResolve;
24060
29415
class WinIfExists;
24061
29416
class WinImportHandler;
24062
29417
class WinMacros;
24063
 
class CMatchSyntax;
24064
 
class ExtGnu;
 
29418
class WinAsm;
 
29419
class WinDeclSpecs;
 
29420
class WinMemberExplSpec;
 
29421
class WinTypeKeywords;
 
29422
class WinFriend;
24065
29423
class ExtAC;
24066
29424
class ExtACBuilderCoupling;
24067
29425
class ExtACSyntaxCoupling;
24068
29426
class ExtACTree;
24069
29427
class ExtACKeywords;
24070
 
class WinAsm;
24071
 
class WinDeclSpecs;
24072
 
class WinMemberExplSpec;
24073
 
class WinTypeKeywords;
 
29428
class ExtGnu;
24074
29429
class PragmaOnceUnitState;
24075
29430
class PragmaOnce;
24076
 
class CCExprResolve;
24077
 
class CExprResolve;
 
29431
class CMatchSyntax;
24078
29432
namespace Puma {
24079
29433
 
24080
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29434
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24081
29435
class CT_MembList : public CT_DeclList, public CSemScope {
24082
 
#line 24083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29436
#line 29437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29437
  friend class ::CCExprResolve;
 
29438
  friend class ::CExprResolve;
24083
29439
  friend class ::WinIfExists;
24084
29440
  friend class ::WinImportHandler;
24085
29441
  friend class ::WinMacros;
24086
 
  friend class ::CMatchSyntax;
24087
 
  friend class ::ExtGnu;
 
29442
  friend class ::WinAsm;
 
29443
  friend class ::WinDeclSpecs;
 
29444
  friend class ::WinMemberExplSpec;
 
29445
  friend class ::WinTypeKeywords;
 
29446
  friend class ::WinFriend;
24088
29447
  friend class ::ExtAC;
24089
29448
  friend class ::ExtACBuilderCoupling;
24090
29449
  friend class ::ExtACSyntaxCoupling;
24091
29450
  friend class ::ExtACTree;
24092
29451
  friend class ::ExtACKeywords;
24093
 
  friend class ::WinAsm;
24094
 
  friend class ::WinDeclSpecs;
24095
 
  friend class ::WinMemberExplSpec;
24096
 
  friend class ::WinTypeKeywords;
 
29452
  friend class ::ExtGnu;
24097
29453
  friend class ::PragmaOnceUnitState;
24098
29454
  friend class ::PragmaOnce;
24099
 
  friend class ::CCExprResolve;
24100
 
  friend class ::CExprResolve;
 
29455
  friend class ::CMatchSyntax;
24101
29456
 
24102
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29457
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24103
29458
 
24104
29459
public:
24105
29460
  CT_MembList (int size = 10, int incr = 10) : 
24106
29461
    CT_DeclList (size, incr) {}
 
29462
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24107
29463
  static const char *NodeId ();
 
29464
  /** Get the name of the node. Can be compared with NodeId(). */
24108
29465
  const char *NodeName () const { return NodeId (); }
 
29466
  CSemScope *SemScope () const { return (CSemScope*)this; }
24109
29467
};
24110
29468
 
24111
29469
 
24112
 
#line 24113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29470
#line 29471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24113
29471
} // closed Puma
 
29472
class CCExprResolve;
 
29473
class CExprResolve;
24114
29474
class WinIfExists;
24115
29475
class WinImportHandler;
24116
29476
class WinMacros;
24117
 
class CMatchSyntax;
24118
 
class ExtGnu;
 
29477
class WinAsm;
 
29478
class WinDeclSpecs;
 
29479
class WinMemberExplSpec;
 
29480
class WinTypeKeywords;
 
29481
class WinFriend;
24119
29482
class ExtAC;
24120
29483
class ExtACBuilderCoupling;
24121
29484
class ExtACSyntaxCoupling;
24122
29485
class ExtACTree;
24123
29486
class ExtACKeywords;
24124
 
class WinAsm;
24125
 
class WinDeclSpecs;
24126
 
class WinMemberExplSpec;
24127
 
class WinTypeKeywords;
 
29487
class ExtGnu;
24128
29488
class PragmaOnceUnitState;
24129
29489
class PragmaOnce;
24130
 
class CCExprResolve;
24131
 
class CExprResolve;
 
29490
class CMatchSyntax;
24132
29491
namespace Puma {
24133
29492
 
24134
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29493
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24135
29494
class CT_MembInitList : public CT_List, public CSemScope {
24136
 
#line 24137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29495
#line 29496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29496
  friend class ::CCExprResolve;
 
29497
  friend class ::CExprResolve;
24137
29498
  friend class ::WinIfExists;
24138
29499
  friend class ::WinImportHandler;
24139
29500
  friend class ::WinMacros;
24140
 
  friend class ::CMatchSyntax;
24141
 
  friend class ::ExtGnu;
 
29501
  friend class ::WinAsm;
 
29502
  friend class ::WinDeclSpecs;
 
29503
  friend class ::WinMemberExplSpec;
 
29504
  friend class ::WinTypeKeywords;
 
29505
  friend class ::WinFriend;
24142
29506
  friend class ::ExtAC;
24143
29507
  friend class ::ExtACBuilderCoupling;
24144
29508
  friend class ::ExtACSyntaxCoupling;
24145
29509
  friend class ::ExtACTree;
24146
29510
  friend class ::ExtACKeywords;
24147
 
  friend class ::WinAsm;
24148
 
  friend class ::WinDeclSpecs;
24149
 
  friend class ::WinMemberExplSpec;
24150
 
  friend class ::WinTypeKeywords;
 
29511
  friend class ::ExtGnu;
24151
29512
  friend class ::PragmaOnceUnitState;
24152
29513
  friend class ::PragmaOnce;
24153
 
  friend class ::CCExprResolve;
24154
 
  friend class ::CExprResolve;
 
29514
  friend class ::CMatchSyntax;
24155
29515
 
24156
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29516
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24157
29517
 
24158
29518
public:
24159
29519
  CT_MembInitList (int size = 2) : 
24160
29520
    CT_List (size, 2, CT_List::OPEN) {}
24161
29521
  static const char *NodeId ();
 
29522
  /** Get the name of the node. Can be compared with NodeId(). */
24162
29523
  const char *NodeName () const { return NodeId (); }
 
29524
  CSemScope *SemScope () const { return (CSemScope*)this; }
24163
29525
};
24164
29526
 
24165
29527
 
24166
 
#line 24167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29528
#line 29529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24167
29529
} // closed Puma
 
29530
class CCExprResolve;
 
29531
class CExprResolve;
24168
29532
class WinIfExists;
24169
29533
class WinImportHandler;
24170
29534
class WinMacros;
24171
 
class CMatchSyntax;
24172
 
class ExtGnu;
 
29535
class WinAsm;
 
29536
class WinDeclSpecs;
 
29537
class WinMemberExplSpec;
 
29538
class WinTypeKeywords;
 
29539
class WinFriend;
24173
29540
class ExtAC;
24174
29541
class ExtACBuilderCoupling;
24175
29542
class ExtACSyntaxCoupling;
24176
29543
class ExtACTree;
24177
29544
class ExtACKeywords;
24178
 
class WinAsm;
24179
 
class WinDeclSpecs;
24180
 
class WinMemberExplSpec;
24181
 
class WinTypeKeywords;
 
29545
class ExtGnu;
24182
29546
class PragmaOnceUnitState;
24183
29547
class PragmaOnce;
24184
 
class CCExprResolve;
24185
 
class CExprResolve;
24186
 
namespace Puma {
24187
 
 
24188
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29548
class CMatchSyntax;
 
29549
namespace Puma {
 
29550
 
 
29551
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29552
 
 
29553
#line 29554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29554
} // closed Puma
 
29555
 
 
29556
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29557
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29558
#include "CCExprResolveH.ah"
 
29559
#endif
 
29560
namespace Puma {
 
29561
 
 
29562
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29563
 
 
29564
#line 29565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29565
} // closed Puma
 
29566
 
 
29567
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29568
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29569
#include "CExprResolveH.ah"
 
29570
#endif
 
29571
namespace Puma {
 
29572
 
 
29573
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24189
29574
class CT_MembInit : public CT_Expression, public CSemObject {
24190
 
#line 24191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29575
#line 29576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29576
  friend class ::CCExprResolve;
 
29577
  friend class ::CExprResolve;
24191
29578
  friend class ::WinIfExists;
24192
29579
  friend class ::WinImportHandler;
24193
29580
  friend class ::WinMacros;
24194
 
  friend class ::CMatchSyntax;
24195
 
  friend class ::ExtGnu;
 
29581
  friend class ::WinAsm;
 
29582
  friend class ::WinDeclSpecs;
 
29583
  friend class ::WinMemberExplSpec;
 
29584
  friend class ::WinTypeKeywords;
 
29585
  friend class ::WinFriend;
24196
29586
  friend class ::ExtAC;
24197
29587
  friend class ::ExtACBuilderCoupling;
24198
29588
  friend class ::ExtACSyntaxCoupling;
24199
29589
  friend class ::ExtACTree;
24200
29590
  friend class ::ExtACKeywords;
24201
 
  friend class ::WinAsm;
24202
 
  friend class ::WinDeclSpecs;
24203
 
  friend class ::WinMemberExplSpec;
24204
 
  friend class ::WinTypeKeywords;
 
29591
  friend class ::ExtGnu;
24205
29592
  friend class ::PragmaOnceUnitState;
24206
29593
  friend class ::PragmaOnce;
24207
 
  friend class ::CCExprResolve;
24208
 
  friend class ::CExprResolve;
 
29594
  friend class ::CMatchSyntax;
24209
29595
 
24210
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29596
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24211
29597
 
24212
29598
  CTree *sons[2]; // name, init
24213
29599
 
24214
29600
public:
24215
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
29601
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
29602
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24216
29603
  static const char *NodeId ();
 
29604
  /** Get the name of the node. Can be compared with NodeId(). */
24217
29605
  const char *NodeName () const { return NodeId (); }
 
29606
  /** Get the number of sons. */
24218
29607
  int Sons () const { return 2; }
 
29608
  /** Get the n-th son.
 
29609
   *  \param n The index of the son.
 
29610
   *  \return The n-th son or NULL. */
24219
29611
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
29612
  /** Replace a son.
 
29613
   *  \param old_son The son to replace.
 
29614
   *  \param new_son The new son. */
24220
29615
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24221
29616
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24222
29617
  }
24226
29621
   private:
24227
29622
  typedef CT_MembInit CCExprResolveExpr;
24228
29623
 
24229
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29624
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
24230
29625
 public :
24231
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29626
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
24232
29627
  typedef CT_MembInit CExprResolveExpr;
24233
29628
 
24234
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29629
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
24235
29630
 public :
24236
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
24237
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29631
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29632
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24238
29633
};
24239
29634
 
24240
29635
 
24241
 
#line 24242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29636
#line 29637 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24242
29637
} // closed Puma
 
29638
class CCExprResolve;
 
29639
class CExprResolve;
24243
29640
class WinIfExists;
24244
29641
class WinImportHandler;
24245
29642
class WinMacros;
24246
 
class CMatchSyntax;
24247
 
class ExtGnu;
 
29643
class WinAsm;
 
29644
class WinDeclSpecs;
 
29645
class WinMemberExplSpec;
 
29646
class WinTypeKeywords;
 
29647
class WinFriend;
24248
29648
class ExtAC;
24249
29649
class ExtACBuilderCoupling;
24250
29650
class ExtACSyntaxCoupling;
24251
29651
class ExtACTree;
24252
29652
class ExtACKeywords;
24253
 
class WinAsm;
24254
 
class WinDeclSpecs;
24255
 
class WinMemberExplSpec;
24256
 
class WinTypeKeywords;
 
29653
class ExtGnu;
24257
29654
class PragmaOnceUnitState;
24258
29655
class PragmaOnce;
24259
 
class CCExprResolve;
24260
 
class CExprResolve;
 
29656
class CMatchSyntax;
24261
29657
namespace Puma {
24262
29658
 
24263
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29659
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24264
29660
class CT_BaseSpecList : public CT_List {
24265
 
#line 24266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29661
#line 29662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29662
  friend class ::CCExprResolve;
 
29663
  friend class ::CExprResolve;
24266
29664
  friend class ::WinIfExists;
24267
29665
  friend class ::WinImportHandler;
24268
29666
  friend class ::WinMacros;
24269
 
  friend class ::CMatchSyntax;
24270
 
  friend class ::ExtGnu;
 
29667
  friend class ::WinAsm;
 
29668
  friend class ::WinDeclSpecs;
 
29669
  friend class ::WinMemberExplSpec;
 
29670
  friend class ::WinTypeKeywords;
 
29671
  friend class ::WinFriend;
24271
29672
  friend class ::ExtAC;
24272
29673
  friend class ::ExtACBuilderCoupling;
24273
29674
  friend class ::ExtACSyntaxCoupling;
24274
29675
  friend class ::ExtACTree;
24275
29676
  friend class ::ExtACKeywords;
24276
 
  friend class ::WinAsm;
24277
 
  friend class ::WinDeclSpecs;
24278
 
  friend class ::WinMemberExplSpec;
24279
 
  friend class ::WinTypeKeywords;
 
29677
  friend class ::ExtGnu;
24280
29678
  friend class ::PragmaOnceUnitState;
24281
29679
  friend class ::PragmaOnce;
24282
 
  friend class ::CCExprResolve;
24283
 
  friend class ::CExprResolve;
 
29680
  friend class ::CMatchSyntax;
24284
29681
 
24285
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29682
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24286
29683
 
24287
29684
public:
24288
29685
  CT_BaseSpecList (int size = 2) : 
24289
29686
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
29687
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24290
29688
  static const char *NodeId ();
 
29689
  /** Get the name of the node. Can be compared with NodeId(). */
24291
29690
  const char *NodeName () const { return NodeId (); }
24292
29691
};
24293
29692
 
24294
29693
 
24295
 
#line 24296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29694
#line 29695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24296
29695
} // closed Puma
 
29696
class CCExprResolve;
 
29697
class CExprResolve;
24297
29698
class WinIfExists;
24298
29699
class WinImportHandler;
24299
29700
class WinMacros;
24300
 
class CMatchSyntax;
24301
 
class ExtGnu;
 
29701
class WinAsm;
 
29702
class WinDeclSpecs;
 
29703
class WinMemberExplSpec;
 
29704
class WinTypeKeywords;
 
29705
class WinFriend;
24302
29706
class ExtAC;
24303
29707
class ExtACBuilderCoupling;
24304
29708
class ExtACSyntaxCoupling;
24305
29709
class ExtACTree;
24306
29710
class ExtACKeywords;
24307
 
class WinAsm;
24308
 
class WinDeclSpecs;
24309
 
class WinMemberExplSpec;
24310
 
class WinTypeKeywords;
 
29711
class ExtGnu;
24311
29712
class PragmaOnceUnitState;
24312
29713
class PragmaOnce;
24313
 
class CCExprResolve;
24314
 
class CExprResolve;
 
29714
class CMatchSyntax;
24315
29715
namespace Puma {
24316
29716
 
24317
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29717
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24318
29718
class CT_AccessSpec : public CTree {
24319
 
#line 24320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29719
#line 29720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29720
  friend class ::CCExprResolve;
 
29721
  friend class ::CExprResolve;
24320
29722
  friend class ::WinIfExists;
24321
29723
  friend class ::WinImportHandler;
24322
29724
  friend class ::WinMacros;
24323
 
  friend class ::CMatchSyntax;
24324
 
  friend class ::ExtGnu;
 
29725
  friend class ::WinAsm;
 
29726
  friend class ::WinDeclSpecs;
 
29727
  friend class ::WinMemberExplSpec;
 
29728
  friend class ::WinTypeKeywords;
 
29729
  friend class ::WinFriend;
24325
29730
  friend class ::ExtAC;
24326
29731
  friend class ::ExtACBuilderCoupling;
24327
29732
  friend class ::ExtACSyntaxCoupling;
24328
29733
  friend class ::ExtACTree;
24329
29734
  friend class ::ExtACKeywords;
24330
 
  friend class ::WinAsm;
24331
 
  friend class ::WinDeclSpecs;
24332
 
  friend class ::WinMemberExplSpec;
24333
 
  friend class ::WinTypeKeywords;
 
29735
  friend class ::ExtGnu;
24334
29736
  friend class ::PragmaOnceUnitState;
24335
29737
  friend class ::PragmaOnce;
24336
 
  friend class ::CCExprResolve;
24337
 
  friend class ::CExprResolve;
 
29738
  friend class ::CMatchSyntax;
24338
29739
 
24339
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29740
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24340
29741
 
24341
29742
  CTree *sons[2]; // access, colon
24342
29743
 
24343
29744
public:
24344
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
29745
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
29746
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24345
29747
  static const char *NodeId ();
 
29748
  /** Get the name of the node. Can be compared with NodeId(). */
24346
29749
  const char *NodeName () const { return NodeId (); }
 
29750
  /** Get the number of sons. */
24347
29751
  int Sons () const { return 2; }
 
29752
  /** Get the n-th son.
 
29753
   *  \param n The index of the son.
 
29754
   *  \return The n-th son or NULL. */
24348
29755
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24349
29756
  int Access () const { return sons[0]->token ()->type (); }
 
29757
  /** Replace a son.
 
29758
   *  \param old_son The son to replace.
 
29759
   *  \param new_son The new son. */
24350
29760
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24351
29761
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24352
29762
  }
24353
29763
};
24354
29764
 
24355
29765
 
24356
 
#line 24357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29766
#line 29767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24357
29767
} // closed Puma
 
29768
class CCExprResolve;
 
29769
class CExprResolve;
24358
29770
class WinIfExists;
24359
29771
class WinImportHandler;
24360
29772
class WinMacros;
24361
 
class CMatchSyntax;
24362
 
class ExtGnu;
 
29773
class WinAsm;
 
29774
class WinDeclSpecs;
 
29775
class WinMemberExplSpec;
 
29776
class WinTypeKeywords;
 
29777
class WinFriend;
24363
29778
class ExtAC;
24364
29779
class ExtACBuilderCoupling;
24365
29780
class ExtACSyntaxCoupling;
24366
29781
class ExtACTree;
24367
29782
class ExtACKeywords;
24368
 
class WinAsm;
24369
 
class WinDeclSpecs;
24370
 
class WinMemberExplSpec;
24371
 
class WinTypeKeywords;
 
29783
class ExtGnu;
24372
29784
class PragmaOnceUnitState;
24373
29785
class PragmaOnce;
24374
 
class CCExprResolve;
24375
 
class CExprResolve;
 
29786
class CMatchSyntax;
24376
29787
namespace Puma {
24377
29788
 
24378
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29789
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24379
29790
class CT_BaseSpec : public CTree {
24380
 
#line 24381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29791
#line 29792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29792
  friend class ::CCExprResolve;
 
29793
  friend class ::CExprResolve;
24381
29794
  friend class ::WinIfExists;
24382
29795
  friend class ::WinImportHandler;
24383
29796
  friend class ::WinMacros;
24384
 
  friend class ::CMatchSyntax;
24385
 
  friend class ::ExtGnu;
 
29797
  friend class ::WinAsm;
 
29798
  friend class ::WinDeclSpecs;
 
29799
  friend class ::WinMemberExplSpec;
 
29800
  friend class ::WinTypeKeywords;
 
29801
  friend class ::WinFriend;
24386
29802
  friend class ::ExtAC;
24387
29803
  friend class ::ExtACBuilderCoupling;
24388
29804
  friend class ::ExtACSyntaxCoupling;
24389
29805
  friend class ::ExtACTree;
24390
29806
  friend class ::ExtACKeywords;
24391
 
  friend class ::WinAsm;
24392
 
  friend class ::WinDeclSpecs;
24393
 
  friend class ::WinMemberExplSpec;
24394
 
  friend class ::WinTypeKeywords;
 
29807
  friend class ::ExtGnu;
24395
29808
  friend class ::PragmaOnceUnitState;
24396
29809
  friend class ::PragmaOnce;
24397
 
  friend class ::CCExprResolve;
24398
 
  friend class ::CExprResolve;
 
29810
  friend class ::CMatchSyntax;
24399
29811
 
24400
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29812
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24401
29813
 
24402
29814
  CTree *sons[3]; // virtual, access, name
24403
29815
 
24404
29816
public:
24405
29817
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
24406
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
29818
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
24407
29819
  }
 
29820
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24408
29821
  static const char *NodeId ();
 
29822
  /** Get the name of the node. Can be compared with NodeId(). */
24409
29823
  const char *NodeName () const { return NodeId (); }
 
29824
  /** Get the number of sons. */
24410
29825
  int Sons () const { return CTree::Sons (sons, 3); }
 
29826
  /** Get the n-th son.
 
29827
   *  \param n The index of the son.
 
29828
   *  \return The n-th son or NULL. */
24411
29829
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24412
29830
  int Access () const { return sons[1]->token ()->type (); }
24413
29831
  CTree *AccessSpec () const { return sons[1]; }
24414
29832
  CTree *Virtual () const { return sons[0]; }
24415
29833
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
29834
  /** Replace a son.
 
29835
   *  \param old_son The son to replace.
 
29836
   *  \param new_son The new son. */
24416
29837
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24417
29838
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24418
29839
  }
24419
29840
};
24420
29841
 
24421
29842
 
24422
 
#line 24423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29843
#line 29844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24423
29844
} // closed Puma
 
29845
class CCExprResolve;
 
29846
class CExprResolve;
24424
29847
class WinIfExists;
24425
29848
class WinImportHandler;
24426
29849
class WinMacros;
24427
 
class CMatchSyntax;
24428
 
class ExtGnu;
 
29850
class WinAsm;
 
29851
class WinDeclSpecs;
 
29852
class WinMemberExplSpec;
 
29853
class WinTypeKeywords;
 
29854
class WinFriend;
24429
29855
class ExtAC;
24430
29856
class ExtACBuilderCoupling;
24431
29857
class ExtACSyntaxCoupling;
24432
29858
class ExtACTree;
24433
29859
class ExtACKeywords;
24434
 
class WinAsm;
24435
 
class WinDeclSpecs;
24436
 
class WinMemberExplSpec;
24437
 
class WinTypeKeywords;
 
29860
class ExtGnu;
24438
29861
class PragmaOnceUnitState;
24439
29862
class PragmaOnce;
24440
 
class CCExprResolve;
24441
 
class CExprResolve;
 
29863
class CMatchSyntax;
24442
29864
namespace Puma {
24443
29865
 
24444
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29866
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24445
29867
class CT_AccessDecl : public CT_Decl {
24446
 
#line 24447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29868
#line 29869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29869
  friend class ::CCExprResolve;
 
29870
  friend class ::CExprResolve;
24447
29871
  friend class ::WinIfExists;
24448
29872
  friend class ::WinImportHandler;
24449
29873
  friend class ::WinMacros;
24450
 
  friend class ::CMatchSyntax;
24451
 
  friend class ::ExtGnu;
 
29874
  friend class ::WinAsm;
 
29875
  friend class ::WinDeclSpecs;
 
29876
  friend class ::WinMemberExplSpec;
 
29877
  friend class ::WinTypeKeywords;
 
29878
  friend class ::WinFriend;
24452
29879
  friend class ::ExtAC;
24453
29880
  friend class ::ExtACBuilderCoupling;
24454
29881
  friend class ::ExtACSyntaxCoupling;
24455
29882
  friend class ::ExtACTree;
24456
29883
  friend class ::ExtACKeywords;
24457
 
  friend class ::WinAsm;
24458
 
  friend class ::WinDeclSpecs;
24459
 
  friend class ::WinMemberExplSpec;
24460
 
  friend class ::WinTypeKeywords;
 
29884
  friend class ::ExtGnu;
24461
29885
  friend class ::PragmaOnceUnitState;
24462
29886
  friend class ::PragmaOnce;
24463
 
  friend class ::CCExprResolve;
24464
 
  friend class ::CExprResolve;
 
29887
  friend class ::CMatchSyntax;
24465
29888
 
24466
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29889
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24467
29890
 
24468
29891
  CTree *sons[2]; // name, semi_colon
24469
29892
 
24470
29893
public:
24471
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
29894
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
29895
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24472
29896
  static const char *NodeId ();
 
29897
  /** Get the name of the node. Can be compared with NodeId(). */
24473
29898
  const char *NodeName () const { return NodeId (); }
 
29899
  /** Get the number of sons. */
24474
29900
  int Sons () const { return 2; }
 
29901
  /** Get the n-th son.
 
29902
   *  \param n The index of the son.
 
29903
   *  \return The n-th son or NULL. */
24475
29904
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24476
29905
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
29906
  /** Replace a son.
 
29907
   *  \param old_son The son to replace.
 
29908
   *  \param new_son The new son. */
24477
29909
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24478
29910
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24479
29911
  }
24480
29912
};
24481
29913
 
24482
29914
 
24483
 
#line 24484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29915
#line 29916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24484
29916
} // closed Puma
 
29917
class CCExprResolve;
 
29918
class CExprResolve;
24485
29919
class WinIfExists;
24486
29920
class WinImportHandler;
24487
29921
class WinMacros;
24488
 
class CMatchSyntax;
24489
 
class ExtGnu;
 
29922
class WinAsm;
 
29923
class WinDeclSpecs;
 
29924
class WinMemberExplSpec;
 
29925
class WinTypeKeywords;
 
29926
class WinFriend;
24490
29927
class ExtAC;
24491
29928
class ExtACBuilderCoupling;
24492
29929
class ExtACSyntaxCoupling;
24493
29930
class ExtACTree;
24494
29931
class ExtACKeywords;
24495
 
class WinAsm;
24496
 
class WinDeclSpecs;
24497
 
class WinMemberExplSpec;
24498
 
class WinTypeKeywords;
 
29932
class ExtGnu;
24499
29933
class PragmaOnceUnitState;
24500
29934
class PragmaOnce;
24501
 
class CCExprResolve;
24502
 
class CExprResolve;
 
29935
class CMatchSyntax;
24503
29936
namespace Puma {
24504
29937
 
24505
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29938
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24506
29939
class CT_UsingDecl : public CT_AccessDecl {
24507
 
#line 24508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
29940
#line 29941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
29941
  friend class ::CCExprResolve;
 
29942
  friend class ::CExprResolve;
24508
29943
  friend class ::WinIfExists;
24509
29944
  friend class ::WinImportHandler;
24510
29945
  friend class ::WinMacros;
24511
 
  friend class ::CMatchSyntax;
24512
 
  friend class ::ExtGnu;
 
29946
  friend class ::WinAsm;
 
29947
  friend class ::WinDeclSpecs;
 
29948
  friend class ::WinMemberExplSpec;
 
29949
  friend class ::WinTypeKeywords;
 
29950
  friend class ::WinFriend;
24513
29951
  friend class ::ExtAC;
24514
29952
  friend class ::ExtACBuilderCoupling;
24515
29953
  friend class ::ExtACSyntaxCoupling;
24516
29954
  friend class ::ExtACTree;
24517
29955
  friend class ::ExtACKeywords;
24518
 
  friend class ::WinAsm;
24519
 
  friend class ::WinDeclSpecs;
24520
 
  friend class ::WinMemberExplSpec;
24521
 
  friend class ::WinTypeKeywords;
 
29956
  friend class ::ExtGnu;
24522
29957
  friend class ::PragmaOnceUnitState;
24523
29958
  friend class ::PragmaOnce;
24524
 
  friend class ::CCExprResolve;
24525
 
  friend class ::CExprResolve;
 
29959
  friend class ::CMatchSyntax;
24526
29960
 
24527
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29961
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24528
29962
 
24529
29963
  CTree *sons[2]; // using, typename
24530
29964
 
24531
29965
public:
24532
29966
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
24533
 
    sons[0] = u; sons[1] = 0; 
 
29967
    AddSon (sons[0], u); AddSon (sons[1], 0); 
24534
29968
  }
24535
29969
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
24536
 
    sons[0] = u; sons[1] = t; 
 
29970
    AddSon (sons[0], u); AddSon (sons[1], t); 
24537
29971
  }
 
29972
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24538
29973
  static const char *NodeId ();
 
29974
  /** Get the name of the node. Can be compared with NodeId(). */
24539
29975
  const char *NodeName () const { return NodeId (); }
 
29976
  /** Get the number of sons. */
24540
29977
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
29978
  /** Get the n-th son.
 
29979
   *  \param n The index of the son.
 
29980
   *  \return The n-th son or NULL. */
24541
29981
  CTree *Son (int n) const {
24542
29982
    int num = CTree::Sons (sons, 2);
24543
29983
    CTree *result = CTree::Son (sons, 2, n);
24544
29984
    return result ? result : CT_AccessDecl::Son (n-num);
24545
29985
  }
24546
29986
  CTree *Typename () const { return sons[1]; }
 
29987
  /** Replace a son.
 
29988
   *  \param old_son The son to replace.
 
29989
   *  \param new_son The new son. */
24547
29990
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24548
29991
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24549
29992
    CT_AccessDecl::ReplaceSon (old_son, new_son);
24557
30000
/*****************************************************************************/
24558
30001
 
24559
30002
 
24560
 
#line 24561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30003
#line 30004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24561
30004
} // closed Puma
 
30005
class CCExprResolve;
 
30006
class CExprResolve;
24562
30007
class WinIfExists;
24563
30008
class WinImportHandler;
24564
30009
class WinMacros;
24565
 
class CMatchSyntax;
24566
 
class ExtGnu;
 
30010
class WinAsm;
 
30011
class WinDeclSpecs;
 
30012
class WinMemberExplSpec;
 
30013
class WinTypeKeywords;
 
30014
class WinFriend;
24567
30015
class ExtAC;
24568
30016
class ExtACBuilderCoupling;
24569
30017
class ExtACSyntaxCoupling;
24570
30018
class ExtACTree;
24571
30019
class ExtACKeywords;
24572
 
class WinAsm;
24573
 
class WinDeclSpecs;
24574
 
class WinMemberExplSpec;
24575
 
class WinTypeKeywords;
 
30020
class ExtGnu;
24576
30021
class PragmaOnceUnitState;
24577
30022
class PragmaOnce;
24578
 
class CCExprResolve;
24579
 
class CExprResolve;
 
30023
class CMatchSyntax;
24580
30024
namespace Puma {
24581
30025
 
24582
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30026
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24583
30027
class CT_Any : public CTree {
24584
 
#line 24585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30028
#line 30029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30029
  friend class ::CCExprResolve;
 
30030
  friend class ::CExprResolve;
24585
30031
  friend class ::WinIfExists;
24586
30032
  friend class ::WinImportHandler;
24587
30033
  friend class ::WinMacros;
24588
 
  friend class ::CMatchSyntax;
24589
 
  friend class ::ExtGnu;
 
30034
  friend class ::WinAsm;
 
30035
  friend class ::WinDeclSpecs;
 
30036
  friend class ::WinMemberExplSpec;
 
30037
  friend class ::WinTypeKeywords;
 
30038
  friend class ::WinFriend;
24590
30039
  friend class ::ExtAC;
24591
30040
  friend class ::ExtACBuilderCoupling;
24592
30041
  friend class ::ExtACSyntaxCoupling;
24593
30042
  friend class ::ExtACTree;
24594
30043
  friend class ::ExtACKeywords;
24595
 
  friend class ::WinAsm;
24596
 
  friend class ::WinDeclSpecs;
24597
 
  friend class ::WinMemberExplSpec;
24598
 
  friend class ::WinTypeKeywords;
 
30044
  friend class ::ExtGnu;
24599
30045
  friend class ::PragmaOnceUnitState;
24600
30046
  friend class ::PragmaOnce;
24601
 
  friend class ::CCExprResolve;
24602
 
  friend class ::CExprResolve;
 
30047
  friend class ::CMatchSyntax;
24603
30048
 
24604
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30049
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24605
30050
 
24606
30051
  CTree *sons[2]; // keyword, extension
24607
30052
 
24608
30053
public:
24609
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
30054
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
30055
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24610
30056
  static const char *NodeId ();
 
30057
  /** Get the name of the node. Can be compared with NodeId(). */
24611
30058
  const char *NodeName () const { return NodeId (); }
 
30059
  /** Get the number of sons. */
24612
30060
  int Sons () const { return CTree::Sons (sons, 2); }
 
30061
  /** Get the n-th son.
 
30062
   *  \param n The index of the son.
 
30063
   *  \return The n-th son or NULL. */
24613
30064
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
30065
  /** Replace a son.
 
30066
   *  \param old_son The son to replace.
 
30067
   *  \param new_son The new son. */
24614
30068
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24615
30069
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24616
30070
  }
24619
30073
};
24620
30074
 
24621
30075
 
24622
 
#line 24623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30076
#line 30077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24623
30077
} // closed Puma
 
30078
class CCExprResolve;
 
30079
class CExprResolve;
24624
30080
class WinIfExists;
24625
30081
class WinImportHandler;
24626
30082
class WinMacros;
24627
 
class CMatchSyntax;
24628
 
class ExtGnu;
 
30083
class WinAsm;
 
30084
class WinDeclSpecs;
 
30085
class WinMemberExplSpec;
 
30086
class WinTypeKeywords;
 
30087
class WinFriend;
24629
30088
class ExtAC;
24630
30089
class ExtACBuilderCoupling;
24631
30090
class ExtACSyntaxCoupling;
24632
30091
class ExtACTree;
24633
30092
class ExtACKeywords;
24634
 
class WinAsm;
24635
 
class WinDeclSpecs;
24636
 
class WinMemberExplSpec;
24637
 
class WinTypeKeywords;
 
30093
class ExtGnu;
24638
30094
class PragmaOnceUnitState;
24639
30095
class PragmaOnce;
24640
 
class CCExprResolve;
24641
 
class CExprResolve;
 
30096
class CMatchSyntax;
24642
30097
namespace Puma {
24643
30098
 
24644
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30099
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24645
30100
class CT_AnyList : public CT_Any {
24646
 
#line 24647 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30101
#line 30102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30102
  friend class ::CCExprResolve;
 
30103
  friend class ::CExprResolve;
24647
30104
  friend class ::WinIfExists;
24648
30105
  friend class ::WinImportHandler;
24649
30106
  friend class ::WinMacros;
24650
 
  friend class ::CMatchSyntax;
24651
 
  friend class ::ExtGnu;
 
30107
  friend class ::WinAsm;
 
30108
  friend class ::WinDeclSpecs;
 
30109
  friend class ::WinMemberExplSpec;
 
30110
  friend class ::WinTypeKeywords;
 
30111
  friend class ::WinFriend;
24652
30112
  friend class ::ExtAC;
24653
30113
  friend class ::ExtACBuilderCoupling;
24654
30114
  friend class ::ExtACSyntaxCoupling;
24655
30115
  friend class ::ExtACTree;
24656
30116
  friend class ::ExtACKeywords;
24657
 
  friend class ::WinAsm;
24658
 
  friend class ::WinDeclSpecs;
24659
 
  friend class ::WinMemberExplSpec;
24660
 
  friend class ::WinTypeKeywords;
 
30117
  friend class ::ExtGnu;
24661
30118
  friend class ::PragmaOnceUnitState;
24662
30119
  friend class ::PragmaOnce;
24663
 
  friend class ::CCExprResolve;
24664
 
  friend class ::CExprResolve;
 
30120
  friend class ::CMatchSyntax;
24665
30121
 
24666
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30122
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24667
30123
 
24668
30124
public:
24669
30125
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
30126
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24670
30127
  static const char *NodeId ();
 
30128
  /** Get the name of the node. Can be compared with NodeId(). */
24671
30129
  const char *NodeName () const { return NodeId (); }
24672
30130
};
24673
30131
 
24674
30132
 
24675
 
#line 24676 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30133
#line 30134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24676
30134
} // closed Puma
 
30135
class CCExprResolve;
 
30136
class CExprResolve;
24677
30137
class WinIfExists;
24678
30138
class WinImportHandler;
24679
30139
class WinMacros;
24680
 
class CMatchSyntax;
24681
 
class ExtGnu;
 
30140
class WinAsm;
 
30141
class WinDeclSpecs;
 
30142
class WinMemberExplSpec;
 
30143
class WinTypeKeywords;
 
30144
class WinFriend;
24682
30145
class ExtAC;
24683
30146
class ExtACBuilderCoupling;
24684
30147
class ExtACSyntaxCoupling;
24685
30148
class ExtACTree;
24686
30149
class ExtACKeywords;
24687
 
class WinAsm;
24688
 
class WinDeclSpecs;
24689
 
class WinMemberExplSpec;
24690
 
class WinTypeKeywords;
 
30150
class ExtGnu;
24691
30151
class PragmaOnceUnitState;
24692
30152
class PragmaOnce;
24693
 
class CCExprResolve;
24694
 
class CExprResolve;
 
30153
class CMatchSyntax;
24695
30154
namespace Puma {
24696
30155
 
24697
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30156
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24698
30157
class CT_AnyExtension : public CTree, public CSemValue {
24699
 
#line 24700 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30158
#line 30159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30159
  friend class ::CCExprResolve;
 
30160
  friend class ::CExprResolve;
24700
30161
  friend class ::WinIfExists;
24701
30162
  friend class ::WinImportHandler;
24702
30163
  friend class ::WinMacros;
24703
 
  friend class ::CMatchSyntax;
24704
 
  friend class ::ExtGnu;
 
30164
  friend class ::WinAsm;
 
30165
  friend class ::WinDeclSpecs;
 
30166
  friend class ::WinMemberExplSpec;
 
30167
  friend class ::WinTypeKeywords;
 
30168
  friend class ::WinFriend;
24705
30169
  friend class ::ExtAC;
24706
30170
  friend class ::ExtACBuilderCoupling;
24707
30171
  friend class ::ExtACSyntaxCoupling;
24708
30172
  friend class ::ExtACTree;
24709
30173
  friend class ::ExtACKeywords;
24710
 
  friend class ::WinAsm;
24711
 
  friend class ::WinDeclSpecs;
24712
 
  friend class ::WinMemberExplSpec;
24713
 
  friend class ::WinTypeKeywords;
 
30174
  friend class ::ExtGnu;
24714
30175
  friend class ::PragmaOnceUnitState;
24715
30176
  friend class ::PragmaOnce;
24716
 
  friend class ::CCExprResolve;
24717
 
  friend class ::CExprResolve;
 
30177
  friend class ::CMatchSyntax;
24718
30178
 
24719
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30179
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24720
30180
 
24721
30181
  CTree *sons[5]; // open, string, comma, cond, close
24722
30182
 
24723
30183
public:
24724
30184
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
24725
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
30185
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
30186
    AddSon (sons[3], c); AddSon (sons[4], cr); 
24726
30187
  }
 
30188
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24727
30189
  static const char *NodeId ();
 
30190
  /** Get the name of the node. Can be compared with NodeId(). */
24728
30191
  const char *NodeName () const { return NodeId (); }
 
30192
  /** Get the number of sons. */
24729
30193
  int Sons () const { return CTree::Sons (sons, 5); }
 
30194
  /** Get the n-th son.
 
30195
   *  \param n The index of the son.
 
30196
   *  \return The n-th son or NULL. */
24730
30197
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
30198
  /** Replace a son.
 
30199
   *  \param old_son The son to replace.
 
30200
   *  \param new_son The new son. */
24731
30201
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24732
30202
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24733
30203
  }
24741
30211
};
24742
30212
 
24743
30213
 
24744
 
#line 24745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30214
#line 30215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24745
30215
} // closed Puma
 
30216
class CCExprResolve;
 
30217
class CExprResolve;
24746
30218
class WinIfExists;
24747
30219
class WinImportHandler;
24748
30220
class WinMacros;
24749
 
class CMatchSyntax;
24750
 
class ExtGnu;
 
30221
class WinAsm;
 
30222
class WinDeclSpecs;
 
30223
class WinMemberExplSpec;
 
30224
class WinTypeKeywords;
 
30225
class WinFriend;
24751
30226
class ExtAC;
24752
30227
class ExtACBuilderCoupling;
24753
30228
class ExtACSyntaxCoupling;
24754
30229
class ExtACTree;
24755
30230
class ExtACKeywords;
24756
 
class WinAsm;
24757
 
class WinDeclSpecs;
24758
 
class WinMemberExplSpec;
24759
 
class WinTypeKeywords;
 
30231
class ExtGnu;
24760
30232
class PragmaOnceUnitState;
24761
30233
class PragmaOnce;
24762
 
class CCExprResolve;
24763
 
class CExprResolve;
 
30234
class CMatchSyntax;
24764
30235
namespace Puma {
24765
30236
 
24766
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30237
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24767
30238
class CT_AnyCondition : public CTree {
24768
 
#line 24769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30239
#line 30240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30240
  friend class ::CCExprResolve;
 
30241
  friend class ::CExprResolve;
24769
30242
  friend class ::WinIfExists;
24770
30243
  friend class ::WinImportHandler;
24771
30244
  friend class ::WinMacros;
24772
 
  friend class ::CMatchSyntax;
24773
 
  friend class ::ExtGnu;
 
30245
  friend class ::WinAsm;
 
30246
  friend class ::WinDeclSpecs;
 
30247
  friend class ::WinMemberExplSpec;
 
30248
  friend class ::WinTypeKeywords;
 
30249
  friend class ::WinFriend;
24774
30250
  friend class ::ExtAC;
24775
30251
  friend class ::ExtACBuilderCoupling;
24776
30252
  friend class ::ExtACSyntaxCoupling;
24777
30253
  friend class ::ExtACTree;
24778
30254
  friend class ::ExtACKeywords;
24779
 
  friend class ::WinAsm;
24780
 
  friend class ::WinDeclSpecs;
24781
 
  friend class ::WinMemberExplSpec;
24782
 
  friend class ::WinTypeKeywords;
 
30255
  friend class ::ExtGnu;
24783
30256
  friend class ::PragmaOnceUnitState;
24784
30257
  friend class ::PragmaOnce;
24785
 
  friend class ::CCExprResolve;
24786
 
  friend class ::CExprResolve;
 
30258
  friend class ::CMatchSyntax;
24787
30259
 
24788
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30260
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24789
30261
 
24790
30262
  CTree *sons[3]; // arg1, arg2, arg3
24791
30263
 
24792
30264
public:
24793
30265
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
24794
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
30266
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
24795
30267
  }
 
30268
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24796
30269
  static const char *NodeId ();
 
30270
  /** Get the name of the node. Can be compared with NodeId(). */
24797
30271
  const char *NodeName () const { return NodeId (); }
 
30272
  /** Get the number of sons. */
24798
30273
  int Sons () const { return CTree::Sons (sons, 3); }
 
30274
  /** Get the n-th son.
 
30275
   *  \param n The index of the son.
 
30276
   *  \return The n-th son or NULL. */
24799
30277
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
30278
  /** Replace a son.
 
30279
   *  \param old_son The son to replace.
 
30280
   *  \param new_son The new son. */
24800
30281
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24801
30282
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24802
30283
  }
24807
30288
 
24808
30289
#endif /* __CTree_h__ */
24809
30290
 
24810
 
#line 24811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
24811
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
24812
 
 
24813
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24814
 
 
24815
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Semantic.h"
 
30291
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Semantic.h"
24816
30292
// This file is part of PUMA.
24817
30293
// Copyright (C) 1999-2003  The PUMA developer team.
24818
30294
//                                                                
24835
30311
#define __Semantic_h__
24836
30312
 
24837
30313
 
24838
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
30314
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
24839
30315
 
24840
 
#line 24841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30316
#line 30317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
24841
30317
 
24842
30318
#ifndef __ac_fwd_ExtAC__
24843
30319
#define __ac_fwd_ExtAC__
24844
30320
class ExtAC;
24845
30321
namespace AC {
24846
30322
  template <class JoinPoint>
24847
 
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
24848
 
  template <class JoinPoint>
24849
 
  inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
24850
 
  template <class JoinPoint>
24851
 
  inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
24852
 
  template <class JoinPoint>
24853
 
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
24854
 
  template <class JoinPoint>
24855
 
  inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
24856
 
  template <class JoinPoint, class Binding>
24857
 
  inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
24858
 
  template <class JoinPoint>
24859
 
  inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
24860
 
  template <class JoinPoint, class Binding>
24861
 
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
24862
 
  template <class JoinPoint>
24863
 
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
24864
 
  template <class JoinPoint>
24865
 
  inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
24866
 
  template <class JoinPoint>
24867
 
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
24868
 
}
24869
 
#endif
24870
 
 
24871
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
24872
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
24873
 
#endif
24874
 
 
24875
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
24876
 
 
24877
 
#line 24878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
24878
 
 
24879
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
24880
 
// This file is part of PUMA.
24881
 
// Copyright (C) 1999-2003  The PUMA developer team.
24882
 
//                                                                
24883
 
// This program is free software;  you can redistribute it and/or 
24884
 
// modify it under the terms of the GNU General Public License as 
24885
 
// published by the Free Software Foundation; either version 2 of 
24886
 
// the License, or (at your option) any later version.            
24887
 
//                                                                
24888
 
// This program is distributed in the hope that it will be useful,
24889
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
24890
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
24891
 
// GNU General Public License for more details.                   
24892
 
//                                                                
24893
 
// You should have received a copy of the GNU General Public      
24894
 
// License along with this program; if not, write to the Free     
24895
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
24896
 
// MA  02111-1307  USA                                            
24897
 
 
24898
 
#ifndef __ext_ac_ah__
24899
 
#define __ext_ac_ah__
24900
 
 
24901
 
 
24902
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
24903
 
// This file is part of PUMA.
24904
 
// Copyright (C) 1999-2003  The PUMA developer team.
24905
 
//                                                                
24906
 
// This program is free software;  you can redistribute it and/or 
24907
 
// modify it under the terms of the GNU General Public License as 
24908
 
// published by the Free Software Foundation; either version 2 of 
24909
 
// the License, or (at your option) any later version.            
24910
 
//                                                                
24911
 
// This program is distributed in the hope that it will be useful,
24912
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
24913
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
24914
 
// GNU General Public License for more details.                   
24915
 
//                                                                
24916
 
// You should have received a copy of the GNU General Public      
24917
 
// License along with this program; if not, write to the Free     
24918
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
24919
 
// MA  02111-1307  USA                                            
24920
 
 
24921
 
#ifndef __ACTree_h__
24922
 
#define __ACTree_h__
24923
 
 
24924
 
 
24925
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24926
 
 
24927
 
#line 24928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
24928
 
 
24929
 
#ifndef __ac_fwd_ExtACTree__
24930
 
#define __ac_fwd_ExtACTree__
24931
 
class ExtACTree;
24932
 
namespace AC {
24933
 
  template <class JoinPoint>
24934
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
24935
 
  template <class JoinPoint>
24936
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
24937
 
}
24938
 
#endif
24939
 
 
24940
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
24941
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
24942
 
#endif
24943
 
 
24944
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24945
 
 
24946
 
#line 24947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
24947
 
 
24948
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24949
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
24950
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
24951
 
 
24952
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24953
 
// This file is part of PUMA.
24954
 
// Copyright (C) 1999-2003  The PUMA developer team.
24955
 
//                                                                
24956
 
// This program is free software;  you can redistribute it and/or 
24957
 
// modify it under the terms of the GNU General Public License as 
24958
 
// published by the Free Software Foundation; either version 2 of 
24959
 
// the License, or (at your option) any later version.            
24960
 
//                                                                
24961
 
// This program is distributed in the hope that it will be useful,
24962
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
24963
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
24964
 
// GNU General Public License for more details.                   
24965
 
//                                                                
24966
 
// You should have received a copy of the GNU General Public      
24967
 
// License along with this program; if not, write to the Free     
24968
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
24969
 
// MA  02111-1307  USA                                            
24970
 
 
24971
 
#ifndef __CTree_h__
24972
 
#define __CTree_h__
24973
 
 
24974
 
namespace Puma {
24975
 
 
24976
 
 
24977
 
// Syntax tree node hierarchy:
24978
 
class CTree;
24979
 
class   CT_Statement;          
24980
 
class     CT_LabelStmt;
24981
 
class     CT_IfStmt;
24982
 
class     CT_IfElseStmt;
24983
 
class     CT_SwitchStmt;
24984
 
class     CT_BreakStmt;
24985
 
class     CT_ExprStmt;
24986
 
class     CT_WhileStmt;
24987
 
class     CT_DoStmt;
24988
 
class     CT_ForStmt;
24989
 
class     CT_ContinueStmt;
24990
 
class     CT_ReturnStmt;
24991
 
class     CT_GotoStmt;
24992
 
class     CT_DeclStmt;
24993
 
class     CT_CaseStmt;
24994
 
class     CT_DefaultStmt;
24995
 
class     CT_TryStmt;
24996
 
class   CT_Expression;
24997
 
class     CT_ThrowExpr;
24998
 
class     CT_NewExpr;
24999
 
class     CT_DeleteExpr;
25000
 
class     CT_ConstructExpr;
25001
 
class     CT_Integer;
25002
 
class     CT_Character;
25003
 
class       CT_WideCharacter;
25004
 
class     CT_Float;
25005
 
class     CT_Bool;
25006
 
class     CT_BracedExpr;
25007
 
class     CT_BinaryExpr;
25008
 
class       CT_MembPtrExpr;
25009
 
class         CT_MembRefExpr;
25010
 
class     CT_UnaryExpr;
25011
 
class       CT_PostfixExpr;
25012
 
class       CT_AddrExpr;
25013
 
class       CT_DerefExpr;
25014
 
class     CT_IfThenExpr;
25015
 
class     CT_CmpdLiteral;
25016
 
class     CT_IndexExpr;
25017
 
class     CT_CallExpr;
25018
 
class     CT_CastExpr;
25019
 
class     CT_StaticCast;
25020
 
class       CT_ConstCast;
25021
 
class       CT_ReintCast;
25022
 
class       CT_DynamicCast;
25023
 
class     CT_TypeidExpr;
25024
 
class     CT_SizeofExpr;
25025
 
class     CT_MembDesignator;
25026
 
class     CT_IndexDesignator;
25027
 
class     CT_ImplicitCast;
25028
 
class   CT_DeclSpec;
25029
 
class     CT_PrimDeclSpec;
25030
 
class     CT_NamedType;
25031
 
class     CT_ClassSpec;
25032
 
class       CT_UnionSpec;
25033
 
class       CT_EnumSpec;
25034
 
class     CT_ExceptionSpec;
25035
 
class   CT_Declarator;
25036
 
class     CT_InitDeclarator;
25037
 
class     CT_BracedDeclarator;
25038
 
class     CT_ArrayDeclarator;
25039
 
class     CT_FctDeclarator;
25040
 
class     CT_RefDeclarator;
25041
 
class     CT_PtrDeclarator;
25042
 
class     CT_MembPtrDeclarator;
25043
 
class     CT_BitFieldDeclarator;
25044
 
class   CT_Decl;
25045
 
class     CT_ObjDecl;
25046
 
class     CT_ArgDecl;
25047
 
class     CT_AccessDecl;
25048
 
class       CT_UsingDecl;
25049
 
class     CT_FctDef;
25050
 
class     CT_AsmDef;
25051
 
class     CT_EnumDef;
25052
 
class     CT_ClassDef;
25053
 
class       CT_UnionDef;
25054
 
class     CT_Enumerator;
25055
 
class     CT_LinkageSpec;
25056
 
class     CT_Handler;
25057
 
class     CT_TemplateDecl;
25058
 
class     CT_TemplateParamDecl;
25059
 
class       CT_TypeParamDecl;
25060
 
class       CT_NonTypeParamDecl;
25061
 
class     CT_NamespaceDef;
25062
 
class     CT_NamespaceAliasDef;
25063
 
class     CT_UsingDirective;
25064
 
class   CT_List;
25065
 
class     CT_CmpdStmt;
25066
 
class     CT_DeclSpecSeq;
25067
 
class     CT_HandlerSeq;
25068
 
class     CT_DesignatorSeq;
25069
 
class     CT_DeclList;
25070
 
class       CT_Program;
25071
 
class       CT_ArgDeclList;
25072
 
class         CT_ArgNameList;
25073
 
class       CT_ArgDeclSeq;
25074
 
class       CT_MembList;
25075
 
class     CT_ExprList;
25076
 
class     CT_DeclaratorList;
25077
 
class     CT_BaseSpecList;
25078
 
class     CT_MembInitList;
25079
 
class     CT_SimpleName;
25080
 
class       CT_SpecialName;
25081
 
class         CT_PrivateName;
25082
 
class         CT_OperatorName;
25083
 
class         CT_DestructorName;
25084
 
class         CT_ConversionName;
25085
 
class         CT_TemplateName;
25086
 
class       CT_QualName;
25087
 
class         CT_RootQualName;
25088
 
class     CT_String;
25089
 
class       CT_WideString;
25090
 
class     CT_TemplateParamList;
25091
 
class     CT_TemplateArgList;
25092
 
class   CT_Token;
25093
 
class   CT_Error;
25094
 
class   CT_Condition;
25095
 
class   CT_BaseSpec;
25096
 
class   CT_AccessSpec;
25097
 
class   CT_ArrayDelimiter;
25098
 
class   CT_Any;
25099
 
class   CT_AnyList;
25100
 
class   CT_AnyExtension;
25101
 
class   CT_AnyCondition;
25102
 
 
25103
 
 
25104
 
} // namespace Puma
25105
 
 
25106
 
#include "Puma/ErrorSeverity.h"
25107
 
#include "Puma/CSemObject.h"
25108
 
#include "Puma/CSemScope.h"
25109
 
#include "Puma/CSemValue.h"
25110
 
#include "Puma/CExprValue.h"
25111
 
#include "Puma/CStrLiteral.h"
25112
 
#include "Puma/CTypeInfo.h"
25113
 
#include "Puma/Printable.h"
25114
 
#include "Puma/CTokens.h"
25115
 
#include "Puma/Token.h"
25116
 
 
25117
 
#include <iostream>
25118
 
#include <string.h>
25119
 
using namespace std;
25120
 
 
25121
 
namespace Puma {
25122
 
 
25123
 
 
25124
 
class ErrorStream;
25125
 
class CObjectInfo;
25126
 
class CStructure;
25127
 
 
25128
 
/*****************************************************************************/
25129
 
/*                                                                           */
25130
 
/*                    S y n t a x  t r e e  n o d e s                        */
25131
 
/*                                                                           */
25132
 
/*****************************************************************************/
25133
 
 
25134
 
 
25135
 
#line 25136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25136
 
} // closed Puma
25137
 
class WinIfExists;
25138
 
class WinImportHandler;
25139
 
class WinMacros;
25140
 
class CMatchSyntax;
25141
 
class ExtGnu;
25142
 
class ExtAC;
25143
 
class ExtACBuilderCoupling;
25144
 
class ExtACSyntaxCoupling;
25145
 
class ExtACTree;
25146
 
class ExtACKeywords;
25147
 
class WinAsm;
25148
 
class WinDeclSpecs;
25149
 
class WinMemberExplSpec;
25150
 
class WinTypeKeywords;
25151
 
class PragmaOnceUnitState;
25152
 
class PragmaOnce;
25153
 
class CCExprResolve;
25154
 
class CExprResolve;
25155
 
namespace Puma {
25156
 
 
25157
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25158
 
class CTree {
25159
 
#line 25160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25160
 
  friend class ::WinIfExists;
25161
 
  friend class ::WinImportHandler;
25162
 
  friend class ::WinMacros;
25163
 
  friend class ::CMatchSyntax;
25164
 
  friend class ::ExtGnu;
25165
 
  friend class ::ExtAC;
25166
 
  friend class ::ExtACBuilderCoupling;
25167
 
  friend class ::ExtACSyntaxCoupling;
25168
 
  friend class ::ExtACTree;
25169
 
  friend class ::ExtACKeywords;
25170
 
  friend class ::WinAsm;
25171
 
  friend class ::WinDeclSpecs;
25172
 
  friend class ::WinMemberExplSpec;
25173
 
  friend class ::WinTypeKeywords;
25174
 
  friend class ::PragmaOnceUnitState;
25175
 
  friend class ::PragmaOnce;
25176
 
  friend class ::CCExprResolve;
25177
 
  friend class ::CExprResolve;
25178
 
 
25179
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25180
 
 
25181
 
public:
25182
 
  /*DEBUG*/static int alloc;
25183
 
  /*DEBUG*/static int release;
25184
 
 
25185
 
protected:
25186
 
  CTree *Son (CTree * const *, int, int) const;
25187
 
  int Sons (CTree * const *, int) const;
25188
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
25189
 
  
25190
 
protected:
25191
 
  CTree () { /*DEBUG*/alloc++; }
25192
 
 
25193
 
public:
25194
 
  virtual ~CTree () { /*DEBUG*/release++; }
25195
 
  virtual int Sons () const = 0;
25196
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
25197
 
  virtual const char *NodeName () const = 0;
25198
 
  virtual Token *token () const;
25199
 
  virtual Token *end_token () const;
25200
 
  virtual CT_Token *token_node () const;
25201
 
  virtual CT_Token *end_token_node () const;
25202
 
  virtual void ReplaceSon (CTree *, CTree *) {}
25203
 
 
25204
 
public: // semantic information
25205
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
25206
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
25207
 
  
25208
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
25209
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
25210
 
  
25211
 
public: // node classification function
25212
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
25213
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
25214
 
   private:
25215
 
  typedef CTree CCExprResolveCTree;
25216
 
 
25217
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
25218
 
 public :
25219
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
25220
 
  typedef CTree CExprResolveCTree;
25221
 
 
25222
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
25223
 
 public :
25224
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
25225
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25226
 
};
25227
 
 
25228
 
 
25229
 
#line 25230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25230
 
} // closed Puma
25231
 
class WinIfExists;
25232
 
class WinImportHandler;
25233
 
class WinMacros;
25234
 
class CMatchSyntax;
25235
 
class ExtGnu;
25236
 
class ExtAC;
25237
 
class ExtACBuilderCoupling;
25238
 
class ExtACSyntaxCoupling;
25239
 
class ExtACTree;
25240
 
class ExtACKeywords;
25241
 
class WinAsm;
25242
 
class WinDeclSpecs;
25243
 
class WinMemberExplSpec;
25244
 
class WinTypeKeywords;
25245
 
class PragmaOnceUnitState;
25246
 
class PragmaOnce;
25247
 
class CCExprResolve;
25248
 
class CExprResolve;
25249
 
namespace Puma {
25250
 
 
25251
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25252
 
class CT_Error : public CTree {
25253
 
#line 25254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25254
 
  friend class ::WinIfExists;
25255
 
  friend class ::WinImportHandler;
25256
 
  friend class ::WinMacros;
25257
 
  friend class ::CMatchSyntax;
25258
 
  friend class ::ExtGnu;
25259
 
  friend class ::ExtAC;
25260
 
  friend class ::ExtACBuilderCoupling;
25261
 
  friend class ::ExtACSyntaxCoupling;
25262
 
  friend class ::ExtACTree;
25263
 
  friend class ::ExtACKeywords;
25264
 
  friend class ::WinAsm;
25265
 
  friend class ::WinDeclSpecs;
25266
 
  friend class ::WinMemberExplSpec;
25267
 
  friend class ::WinTypeKeywords;
25268
 
  friend class ::PragmaOnceUnitState;
25269
 
  friend class ::PragmaOnce;
25270
 
  friend class ::CCExprResolve;
25271
 
  friend class ::CExprResolve;
25272
 
 
25273
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25274
 
 
25275
 
public:
25276
 
  static const char *NodeId ();
25277
 
  const char *NodeName () const { return NodeId (); }
25278
 
  int Sons () const { return 0; }
25279
 
};
25280
 
 
25281
 
 
25282
 
#line 25283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25283
 
} // closed Puma
25284
 
class WinIfExists;
25285
 
class WinImportHandler;
25286
 
class WinMacros;
25287
 
class CMatchSyntax;
25288
 
class ExtGnu;
25289
 
class ExtAC;
25290
 
class ExtACBuilderCoupling;
25291
 
class ExtACSyntaxCoupling;
25292
 
class ExtACTree;
25293
 
class ExtACKeywords;
25294
 
class WinAsm;
25295
 
class WinDeclSpecs;
25296
 
class WinMemberExplSpec;
25297
 
class WinTypeKeywords;
25298
 
class PragmaOnceUnitState;
25299
 
class PragmaOnce;
25300
 
class CCExprResolve;
25301
 
class CExprResolve;
25302
 
namespace Puma {
25303
 
 
25304
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25305
 
class CT_Token : public CTree {
25306
 
#line 25307 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25307
 
  friend class ::WinIfExists;
25308
 
  friend class ::WinImportHandler;
25309
 
  friend class ::WinMacros;
25310
 
  friend class ::CMatchSyntax;
25311
 
  friend class ::ExtGnu;
25312
 
  friend class ::ExtAC;
25313
 
  friend class ::ExtACBuilderCoupling;
25314
 
  friend class ::ExtACSyntaxCoupling;
25315
 
  friend class ::ExtACTree;
25316
 
  friend class ::ExtACKeywords;
25317
 
  friend class ::WinAsm;
25318
 
  friend class ::WinDeclSpecs;
25319
 
  friend class ::WinMemberExplSpec;
25320
 
  friend class ::WinTypeKeywords;
25321
 
  friend class ::PragmaOnceUnitState;
25322
 
  friend class ::PragmaOnce;
25323
 
  friend class ::CCExprResolve;
25324
 
  friend class ::CExprResolve;
25325
 
 
25326
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25327
 
 
25328
 
  Token *_token;
25329
 
  unsigned long int _number;
25330
 
  
25331
 
public:
25332
 
  CT_Token (Token *t, unsigned long int n = 0) : 
25333
 
    _token (t), _number (n) {}
25334
 
  static const char *NodeId ();
25335
 
  const char *NodeName () const { return NodeId (); }
25336
 
  int Sons () const { return 0; }
25337
 
  Token *token () const { return _token; }
25338
 
  Token *end_token () const { return _token; }
25339
 
  CT_Token *token_node () const { return (CT_Token*)this; }
25340
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
25341
 
  void Number (unsigned long int n) { _number = n; }
25342
 
  unsigned long int Number () const { return _number; }
25343
 
  // special new / delete with reusing memory
25344
 
  void *operator new (size_t);
25345
 
  void  operator delete (void *);
25346
 
};
25347
 
 
25348
 
/*****************************************************************************/
25349
 
/*                                                                           */
25350
 
/*                              List nodes                                   */
25351
 
/*                                                                           */
25352
 
/*****************************************************************************/
25353
 
 
25354
 
 
25355
 
#line 25356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25356
 
} // closed Puma
25357
 
class WinIfExists;
25358
 
class WinImportHandler;
25359
 
class WinMacros;
25360
 
class CMatchSyntax;
25361
 
class ExtGnu;
25362
 
class ExtAC;
25363
 
class ExtACBuilderCoupling;
25364
 
class ExtACSyntaxCoupling;
25365
 
class ExtACTree;
25366
 
class ExtACKeywords;
25367
 
class WinAsm;
25368
 
class WinDeclSpecs;
25369
 
class WinMemberExplSpec;
25370
 
class WinTypeKeywords;
25371
 
class PragmaOnceUnitState;
25372
 
class PragmaOnce;
25373
 
class CCExprResolve;
25374
 
class CExprResolve;
25375
 
namespace Puma {
25376
 
 
25377
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25378
 
class CT_List : public CTree {
25379
 
#line 25380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25380
 
  friend class ::WinIfExists;
25381
 
  friend class ::WinImportHandler;
25382
 
  friend class ::WinMacros;
25383
 
  friend class ::CMatchSyntax;
25384
 
  friend class ::ExtGnu;
25385
 
  friend class ::ExtAC;
25386
 
  friend class ::ExtACBuilderCoupling;
25387
 
  friend class ::ExtACSyntaxCoupling;
25388
 
  friend class ::ExtACTree;
25389
 
  friend class ::ExtACKeywords;
25390
 
  friend class ::WinAsm;
25391
 
  friend class ::WinDeclSpecs;
25392
 
  friend class ::WinMemberExplSpec;
25393
 
  friend class ::WinTypeKeywords;
25394
 
  friend class ::PragmaOnceUnitState;
25395
 
  friend class ::PragmaOnce;
25396
 
  friend class ::CCExprResolve;
25397
 
  friend class ::CExprResolve;
25398
 
 
25399
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25400
 
 
25401
 
  Array<CTree*> _sons;
25402
 
  int _properties;
25403
 
 
25404
 
protected:
25405
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
25406
 
    _sons (size, incr), _properties (props) {}
25407
 
 
25408
 
public:
25409
 
  enum {
25410
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
25411
 
    CLOSE = 2,
25412
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
25413
 
    SEPARATORS = 4,   // the list has separators like ','
25414
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
25415
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
25416
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
25417
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
25418
 
  };
25419
 
 
25420
 
  int Entries () const;
25421
 
  CTree *Entry (int no) const;
25422
 
  int Sons () const { return _sons.length (); }
25423
 
  CTree *Son (int n) const { return _sons.lookup (n); }
25424
 
  int GetProperties () const { return _properties; }
25425
 
  void AddProperties (int p) { _properties |= p; }
25426
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
25427
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
25428
 
  void InsertSon (CTree *, CTree *);  // before given son
25429
 
  void ReplaceSon (CTree *, CTree *);
25430
 
  void RemoveSon (CTree *);
25431
 
  void InsertSon (int idx, CTree *s)
25432
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
25433
 
  void ReplaceSon (int idx, CTree *s) 
25434
 
   { if (idx < Sons ()) _sons[idx] = s; }
25435
 
  void RemoveSon (int idx) 
25436
 
   { if (idx < Sons ()) _sons.remove (idx); }
25437
 
};
25438
 
 
25439
 
 
25440
 
#line 25441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25441
 
} // closed Puma
25442
 
class WinIfExists;
25443
 
class WinImportHandler;
25444
 
class WinMacros;
25445
 
class CMatchSyntax;
25446
 
class ExtGnu;
25447
 
class ExtAC;
25448
 
class ExtACBuilderCoupling;
25449
 
class ExtACSyntaxCoupling;
25450
 
class ExtACTree;
25451
 
class ExtACKeywords;
25452
 
class WinAsm;
25453
 
class WinDeclSpecs;
25454
 
class WinMemberExplSpec;
25455
 
class WinTypeKeywords;
25456
 
class PragmaOnceUnitState;
25457
 
class PragmaOnce;
25458
 
class CCExprResolve;
25459
 
class CExprResolve;
25460
 
namespace Puma {
25461
 
 
25462
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25463
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
25464
 
#line 25465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25465
 
  friend class ::WinIfExists;
25466
 
  friend class ::WinImportHandler;
25467
 
  friend class ::WinMacros;
25468
 
  friend class ::CMatchSyntax;
25469
 
  friend class ::ExtGnu;
25470
 
  friend class ::ExtAC;
25471
 
  friend class ::ExtACBuilderCoupling;
25472
 
  friend class ::ExtACSyntaxCoupling;
25473
 
  friend class ::ExtACTree;
25474
 
  friend class ::ExtACKeywords;
25475
 
  friend class ::WinAsm;
25476
 
  friend class ::WinDeclSpecs;
25477
 
  friend class ::WinMemberExplSpec;
25478
 
  friend class ::WinTypeKeywords;
25479
 
  friend class ::PragmaOnceUnitState;
25480
 
  friend class ::PragmaOnce;
25481
 
  friend class ::CCExprResolve;
25482
 
  friend class ::CExprResolve;
25483
 
 
25484
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25485
 
 
25486
 
public:
25487
 
  CT_ExprList () { AddProperties (SEPARATORS); }
25488
 
  static const char *NodeId ();
25489
 
  const char *NodeName () const { return NodeId (); }
25490
 
 
25491
 
  CTypeInfo *Type () const { return type; }
25492
 
  CExprValue *Value () const { return value; }
25493
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
25494
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
25495
 
};
25496
 
 
25497
 
 
25498
 
#line 25499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25499
 
} // closed Puma
25500
 
class WinIfExists;
25501
 
class WinImportHandler;
25502
 
class WinMacros;
25503
 
class CMatchSyntax;
25504
 
class ExtGnu;
25505
 
class ExtAC;
25506
 
class ExtACBuilderCoupling;
25507
 
class ExtACSyntaxCoupling;
25508
 
class ExtACTree;
25509
 
class ExtACKeywords;
25510
 
class WinAsm;
25511
 
class WinDeclSpecs;
25512
 
class WinMemberExplSpec;
25513
 
class WinTypeKeywords;
25514
 
class PragmaOnceUnitState;
25515
 
class PragmaOnce;
25516
 
class CCExprResolve;
25517
 
class CExprResolve;
25518
 
namespace Puma {
25519
 
 
25520
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25521
 
class CT_DeclaratorList : public CT_List {
25522
 
#line 25523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25523
 
  friend class ::WinIfExists;
25524
 
  friend class ::WinImportHandler;
25525
 
  friend class ::WinMacros;
25526
 
  friend class ::CMatchSyntax;
25527
 
  friend class ::ExtGnu;
25528
 
  friend class ::ExtAC;
25529
 
  friend class ::ExtACBuilderCoupling;
25530
 
  friend class ::ExtACSyntaxCoupling;
25531
 
  friend class ::ExtACTree;
25532
 
  friend class ::ExtACKeywords;
25533
 
  friend class ::WinAsm;
25534
 
  friend class ::WinDeclSpecs;
25535
 
  friend class ::WinMemberExplSpec;
25536
 
  friend class ::WinTypeKeywords;
25537
 
  friend class ::PragmaOnceUnitState;
25538
 
  friend class ::PragmaOnce;
25539
 
  friend class ::CCExprResolve;
25540
 
  friend class ::CExprResolve;
25541
 
 
25542
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25543
 
 
25544
 
public:
25545
 
  static const char *NodeId ();
25546
 
  const char *NodeName () const { return NodeId (); }
25547
 
};
25548
 
 
25549
 
 
25550
 
#line 25551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25551
 
} // closed Puma
25552
 
class WinIfExists;
25553
 
class WinImportHandler;
25554
 
class WinMacros;
25555
 
class CMatchSyntax;
25556
 
class ExtGnu;
25557
 
class ExtAC;
25558
 
class ExtACBuilderCoupling;
25559
 
class ExtACSyntaxCoupling;
25560
 
class ExtACTree;
25561
 
class ExtACKeywords;
25562
 
class WinAsm;
25563
 
class WinDeclSpecs;
25564
 
class WinMemberExplSpec;
25565
 
class WinTypeKeywords;
25566
 
class PragmaOnceUnitState;
25567
 
class PragmaOnce;
25568
 
class CCExprResolve;
25569
 
class CExprResolve;
25570
 
namespace Puma {
25571
 
 
25572
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25573
 
class CT_EnumeratorList : public CT_List {
25574
 
#line 25575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25575
 
  friend class ::WinIfExists;
25576
 
  friend class ::WinImportHandler;
25577
 
  friend class ::WinMacros;
25578
 
  friend class ::CMatchSyntax;
25579
 
  friend class ::ExtGnu;
25580
 
  friend class ::ExtAC;
25581
 
  friend class ::ExtACBuilderCoupling;
25582
 
  friend class ::ExtACSyntaxCoupling;
25583
 
  friend class ::ExtACTree;
25584
 
  friend class ::ExtACKeywords;
25585
 
  friend class ::WinAsm;
25586
 
  friend class ::WinDeclSpecs;
25587
 
  friend class ::WinMemberExplSpec;
25588
 
  friend class ::WinTypeKeywords;
25589
 
  friend class ::PragmaOnceUnitState;
25590
 
  friend class ::PragmaOnce;
25591
 
  friend class ::CCExprResolve;
25592
 
  friend class ::CExprResolve;
25593
 
 
25594
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25595
 
 
25596
 
public:
25597
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
25598
 
  static const char *NodeId ();
25599
 
  const char *NodeName () const { return NodeId (); }
25600
 
};
25601
 
   
25602
 
 
25603
 
#line 25604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25604
 
} // closed Puma
25605
 
class WinIfExists;
25606
 
class WinImportHandler;
25607
 
class WinMacros;
25608
 
class CMatchSyntax;
25609
 
class ExtGnu;
25610
 
class ExtAC;
25611
 
class ExtACBuilderCoupling;
25612
 
class ExtACSyntaxCoupling;
25613
 
class ExtACTree;
25614
 
class ExtACKeywords;
25615
 
class WinAsm;
25616
 
class WinDeclSpecs;
25617
 
class WinMemberExplSpec;
25618
 
class WinTypeKeywords;
25619
 
class PragmaOnceUnitState;
25620
 
class PragmaOnce;
25621
 
class CCExprResolve;
25622
 
class CExprResolve;
25623
 
namespace Puma {
25624
 
 
25625
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25626
 
class CT_DeclList : public CT_List {
25627
 
#line 25628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25628
 
  friend class ::WinIfExists;
25629
 
  friend class ::WinImportHandler;
25630
 
  friend class ::WinMacros;
25631
 
  friend class ::CMatchSyntax;
25632
 
  friend class ::ExtGnu;
25633
 
  friend class ::ExtAC;
25634
 
  friend class ::ExtACBuilderCoupling;
25635
 
  friend class ::ExtACSyntaxCoupling;
25636
 
  friend class ::ExtACTree;
25637
 
  friend class ::ExtACKeywords;
25638
 
  friend class ::WinAsm;
25639
 
  friend class ::WinDeclSpecs;
25640
 
  friend class ::WinMemberExplSpec;
25641
 
  friend class ::WinTypeKeywords;
25642
 
  friend class ::PragmaOnceUnitState;
25643
 
  friend class ::PragmaOnce;
25644
 
  friend class ::CCExprResolve;
25645
 
  friend class ::CExprResolve;
25646
 
 
25647
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25648
 
 
25649
 
public:
25650
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
25651
 
  static const char *NodeId ();
25652
 
  const char *NodeName () const { return NodeId (); }
25653
 
  void Linkage (CT_LinkageSpec *l);
25654
 
};
25655
 
 
25656
 
 
25657
 
#line 25658 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25658
 
} // closed Puma
25659
 
class WinIfExists;
25660
 
class WinImportHandler;
25661
 
class WinMacros;
25662
 
class CMatchSyntax;
25663
 
class ExtGnu;
25664
 
class ExtAC;
25665
 
class ExtACBuilderCoupling;
25666
 
class ExtACSyntaxCoupling;
25667
 
class ExtACTree;
25668
 
class ExtACKeywords;
25669
 
class WinAsm;
25670
 
class WinDeclSpecs;
25671
 
class WinMemberExplSpec;
25672
 
class WinTypeKeywords;
25673
 
class PragmaOnceUnitState;
25674
 
class PragmaOnce;
25675
 
class CCExprResolve;
25676
 
class CExprResolve;
25677
 
namespace Puma {
25678
 
 
25679
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25680
 
class CT_DeclSpecSeq : public CT_List {
25681
 
#line 25682 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25682
 
  friend class ::WinIfExists;
25683
 
  friend class ::WinImportHandler;
25684
 
  friend class ::WinMacros;
25685
 
  friend class ::CMatchSyntax;
25686
 
  friend class ::ExtGnu;
25687
 
  friend class ::ExtAC;
25688
 
  friend class ::ExtACBuilderCoupling;
25689
 
  friend class ::ExtACSyntaxCoupling;
25690
 
  friend class ::ExtACTree;
25691
 
  friend class ::ExtACKeywords;
25692
 
  friend class ::WinAsm;
25693
 
  friend class ::WinDeclSpecs;
25694
 
  friend class ::WinMemberExplSpec;
25695
 
  friend class ::WinTypeKeywords;
25696
 
  friend class ::PragmaOnceUnitState;
25697
 
  friend class ::PragmaOnce;
25698
 
  friend class ::CCExprResolve;
25699
 
  friend class ::CExprResolve;
25700
 
 
25701
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25702
 
 
25703
 
public:
25704
 
  static const char *NodeId ();
25705
 
  const char *NodeName () const { return NodeId (); }
25706
 
};
25707
 
 
25708
 
 
25709
 
#line 25710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25710
 
} // closed Puma
25711
 
class WinIfExists;
25712
 
class WinImportHandler;
25713
 
class WinMacros;
25714
 
class CMatchSyntax;
25715
 
class ExtGnu;
25716
 
class ExtAC;
25717
 
class ExtACBuilderCoupling;
25718
 
class ExtACSyntaxCoupling;
25719
 
class ExtACTree;
25720
 
class ExtACKeywords;
25721
 
class WinAsm;
25722
 
class WinDeclSpecs;
25723
 
class WinMemberExplSpec;
25724
 
class WinTypeKeywords;
25725
 
class PragmaOnceUnitState;
25726
 
class PragmaOnce;
25727
 
class CCExprResolve;
25728
 
class CExprResolve;
25729
 
namespace Puma {
25730
 
 
25731
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25732
 
class CT_CmpdStmt : public CT_List, public CSemScope {
25733
 
#line 25734 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25734
 
  friend class ::WinIfExists;
25735
 
  friend class ::WinImportHandler;
25736
 
  friend class ::WinMacros;
25737
 
  friend class ::CMatchSyntax;
25738
 
  friend class ::ExtGnu;
25739
 
  friend class ::ExtAC;
25740
 
  friend class ::ExtACBuilderCoupling;
25741
 
  friend class ::ExtACSyntaxCoupling;
25742
 
  friend class ::ExtACTree;
25743
 
  friend class ::ExtACKeywords;
25744
 
  friend class ::WinAsm;
25745
 
  friend class ::WinDeclSpecs;
25746
 
  friend class ::WinMemberExplSpec;
25747
 
  friend class ::WinTypeKeywords;
25748
 
  friend class ::PragmaOnceUnitState;
25749
 
  friend class ::PragmaOnce;
25750
 
  friend class ::CCExprResolve;
25751
 
  friend class ::CExprResolve;
25752
 
 
25753
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25754
 
 
25755
 
public:
25756
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
25757
 
  static const char *NodeId ();
25758
 
  const char *NodeName () const { return NodeId (); }
25759
 
};
25760
 
 
25761
 
 
25762
 
#line 25763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25763
 
} // closed Puma
25764
 
class WinIfExists;
25765
 
class WinImportHandler;
25766
 
class WinMacros;
25767
 
class CMatchSyntax;
25768
 
class ExtGnu;
25769
 
class ExtAC;
25770
 
class ExtACBuilderCoupling;
25771
 
class ExtACSyntaxCoupling;
25772
 
class ExtACTree;
25773
 
class ExtACKeywords;
25774
 
class WinAsm;
25775
 
class WinDeclSpecs;
25776
 
class WinMemberExplSpec;
25777
 
class WinTypeKeywords;
25778
 
class PragmaOnceUnitState;
25779
 
class PragmaOnce;
25780
 
class CCExprResolve;
25781
 
class CExprResolve;
25782
 
namespace Puma {
25783
 
 
25784
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25785
 
class CT_HandlerSeq : public CT_List {
25786
 
#line 25787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25787
 
  friend class ::WinIfExists;
25788
 
  friend class ::WinImportHandler;
25789
 
  friend class ::WinMacros;
25790
 
  friend class ::CMatchSyntax;
25791
 
  friend class ::ExtGnu;
25792
 
  friend class ::ExtAC;
25793
 
  friend class ::ExtACBuilderCoupling;
25794
 
  friend class ::ExtACSyntaxCoupling;
25795
 
  friend class ::ExtACTree;
25796
 
  friend class ::ExtACKeywords;
25797
 
  friend class ::WinAsm;
25798
 
  friend class ::WinDeclSpecs;
25799
 
  friend class ::WinMemberExplSpec;
25800
 
  friend class ::WinTypeKeywords;
25801
 
  friend class ::PragmaOnceUnitState;
25802
 
  friend class ::PragmaOnce;
25803
 
  friend class ::CCExprResolve;
25804
 
  friend class ::CExprResolve;
25805
 
 
25806
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25807
 
 
25808
 
public:
25809
 
  static const char *NodeId ();
25810
 
  const char *NodeName () const { return NodeId (); }
25811
 
};
25812
 
 
25813
 
 
25814
 
#line 25815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25815
 
} // closed Puma
25816
 
class WinIfExists;
25817
 
class WinImportHandler;
25818
 
class WinMacros;
25819
 
class CMatchSyntax;
25820
 
class ExtGnu;
25821
 
class ExtAC;
25822
 
class ExtACBuilderCoupling;
25823
 
class ExtACSyntaxCoupling;
25824
 
class ExtACTree;
25825
 
class ExtACKeywords;
25826
 
class WinAsm;
25827
 
class WinDeclSpecs;
25828
 
class WinMemberExplSpec;
25829
 
class WinTypeKeywords;
25830
 
class PragmaOnceUnitState;
25831
 
class PragmaOnce;
25832
 
class CCExprResolve;
25833
 
class CExprResolve;
25834
 
namespace Puma {
25835
 
 
25836
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25837
 
class CT_TemplateParamList : public CT_List, public CSemScope {
25838
 
#line 25839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25839
 
  friend class ::WinIfExists;
25840
 
  friend class ::WinImportHandler;
25841
 
  friend class ::WinMacros;
25842
 
  friend class ::CMatchSyntax;
25843
 
  friend class ::ExtGnu;
25844
 
  friend class ::ExtAC;
25845
 
  friend class ::ExtACBuilderCoupling;
25846
 
  friend class ::ExtACSyntaxCoupling;
25847
 
  friend class ::ExtACTree;
25848
 
  friend class ::ExtACKeywords;
25849
 
  friend class ::WinAsm;
25850
 
  friend class ::WinDeclSpecs;
25851
 
  friend class ::WinMemberExplSpec;
25852
 
  friend class ::WinTypeKeywords;
25853
 
  friend class ::PragmaOnceUnitState;
25854
 
  friend class ::PragmaOnce;
25855
 
  friend class ::CCExprResolve;
25856
 
  friend class ::CExprResolve;
25857
 
 
25858
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25859
 
 
25860
 
public:
25861
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
25862
 
  static const char *NodeId ();
25863
 
  const char *NodeName () const { return NodeId (); }
25864
 
};
25865
 
 
25866
 
 
25867
 
#line 25868 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25868
 
} // closed Puma
25869
 
class WinIfExists;
25870
 
class WinImportHandler;
25871
 
class WinMacros;
25872
 
class CMatchSyntax;
25873
 
class ExtGnu;
25874
 
class ExtAC;
25875
 
class ExtACBuilderCoupling;
25876
 
class ExtACSyntaxCoupling;
25877
 
class ExtACTree;
25878
 
class ExtACKeywords;
25879
 
class WinAsm;
25880
 
class WinDeclSpecs;
25881
 
class WinMemberExplSpec;
25882
 
class WinTypeKeywords;
25883
 
class PragmaOnceUnitState;
25884
 
class PragmaOnce;
25885
 
class CCExprResolve;
25886
 
class CExprResolve;
25887
 
namespace Puma {
25888
 
 
25889
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25890
 
class CT_TemplateArgList : public CT_List {
25891
 
#line 25892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25892
 
  friend class ::WinIfExists;
25893
 
  friend class ::WinImportHandler;
25894
 
  friend class ::WinMacros;
25895
 
  friend class ::CMatchSyntax;
25896
 
  friend class ::ExtGnu;
25897
 
  friend class ::ExtAC;
25898
 
  friend class ::ExtACBuilderCoupling;
25899
 
  friend class ::ExtACSyntaxCoupling;
25900
 
  friend class ::ExtACTree;
25901
 
  friend class ::ExtACKeywords;
25902
 
  friend class ::WinAsm;
25903
 
  friend class ::WinDeclSpecs;
25904
 
  friend class ::WinMemberExplSpec;
25905
 
  friend class ::WinTypeKeywords;
25906
 
  friend class ::PragmaOnceUnitState;
25907
 
  friend class ::PragmaOnce;
25908
 
  friend class ::CCExprResolve;
25909
 
  friend class ::CExprResolve;
25910
 
 
25911
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25912
 
 
25913
 
public:
25914
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
25915
 
  static const char *NodeId ();
25916
 
  const char *NodeName () const { return NodeId (); }
25917
 
};
25918
 
 
25919
 
/*****************************************************************************/
25920
 
/*                                                                           */
25921
 
/*                              Expressions                                  */
25922
 
/*                                                                           */
25923
 
/*****************************************************************************/
25924
 
 
25925
 
 
25926
 
#line 25927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25927
 
} // closed Puma
25928
 
class WinIfExists;
25929
 
class WinImportHandler;
25930
 
class WinMacros;
25931
 
class CMatchSyntax;
25932
 
class ExtGnu;
25933
 
class ExtAC;
25934
 
class ExtACBuilderCoupling;
25935
 
class ExtACSyntaxCoupling;
25936
 
class ExtACTree;
25937
 
class ExtACKeywords;
25938
 
class WinAsm;
25939
 
class WinDeclSpecs;
25940
 
class WinMemberExplSpec;
25941
 
class WinTypeKeywords;
25942
 
class PragmaOnceUnitState;
25943
 
class PragmaOnce;
25944
 
class CCExprResolve;
25945
 
class CExprResolve;
25946
 
namespace Puma {
25947
 
 
25948
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25949
 
class CT_Expression : public CTree, public CSemValue {
25950
 
#line 25951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25951
 
  friend class ::WinIfExists;
25952
 
  friend class ::WinImportHandler;
25953
 
  friend class ::WinMacros;
25954
 
  friend class ::CMatchSyntax;
25955
 
  friend class ::ExtGnu;
25956
 
  friend class ::ExtAC;
25957
 
  friend class ::ExtACBuilderCoupling;
25958
 
  friend class ::ExtACSyntaxCoupling;
25959
 
  friend class ::ExtACTree;
25960
 
  friend class ::ExtACKeywords;
25961
 
  friend class ::WinAsm;
25962
 
  friend class ::WinDeclSpecs;
25963
 
  friend class ::WinMemberExplSpec;
25964
 
  friend class ::WinTypeKeywords;
25965
 
  friend class ::PragmaOnceUnitState;
25966
 
  friend class ::PragmaOnce;
25967
 
  friend class ::CCExprResolve;
25968
 
  friend class ::CExprResolve;
25969
 
 
25970
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25971
 
 
25972
 
protected:
25973
 
  CT_Expression () {}
25974
 
 
25975
 
public:
25976
 
  static const char *NodeId ();
25977
 
  const char *NodeName () const { return NodeId (); }
25978
 
  CTypeInfo *Type () const { return type; }
25979
 
  CExprValue *Value () const { return value; }
25980
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
25981
 
   private:
25982
 
  typedef CT_Expression CCExprResolveExpr;
25983
 
 
25984
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
25985
 
 public :
25986
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
25987
 
  typedef CT_Expression CExprResolveExpr;
25988
 
 
25989
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
25990
 
 public :
25991
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
25992
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25993
 
};
25994
 
 
25995
 
 
25996
 
#line 25997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
25997
 
} // closed Puma
25998
 
class WinIfExists;
25999
 
class WinImportHandler;
26000
 
class WinMacros;
26001
 
class CMatchSyntax;
26002
 
class ExtGnu;
26003
 
class ExtAC;
26004
 
class ExtACBuilderCoupling;
26005
 
class ExtACSyntaxCoupling;
26006
 
class ExtACTree;
26007
 
class ExtACKeywords;
26008
 
class WinAsm;
26009
 
class WinDeclSpecs;
26010
 
class WinMemberExplSpec;
26011
 
class WinTypeKeywords;
26012
 
class PragmaOnceUnitState;
26013
 
class PragmaOnce;
26014
 
class CCExprResolve;
26015
 
class CExprResolve;
26016
 
namespace Puma {
26017
 
 
26018
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26019
 
class CT_String : public CT_List, public CSemValue {
26020
 
#line 26021 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26021
 
  friend class ::WinIfExists;
26022
 
  friend class ::WinImportHandler;
26023
 
  friend class ::WinMacros;
26024
 
  friend class ::CMatchSyntax;
26025
 
  friend class ::ExtGnu;
26026
 
  friend class ::ExtAC;
26027
 
  friend class ::ExtACBuilderCoupling;
26028
 
  friend class ::ExtACSyntaxCoupling;
26029
 
  friend class ::ExtACTree;
26030
 
  friend class ::ExtACKeywords;
26031
 
  friend class ::WinAsm;
26032
 
  friend class ::WinDeclSpecs;
26033
 
  friend class ::WinMemberExplSpec;
26034
 
  friend class ::WinTypeKeywords;
26035
 
  friend class ::PragmaOnceUnitState;
26036
 
  friend class ::PragmaOnce;
26037
 
  friend class ::CCExprResolve;
26038
 
  friend class ::CExprResolve;
26039
 
 
26040
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26041
 
 
26042
 
public:
26043
 
  CT_String (int size) : CT_List (size, 1) {}
26044
 
  static const char *NodeId ();
26045
 
  const char *NodeName () const { return NodeId (); }
26046
 
 
26047
 
  CTypeInfo *Type () const { return type; }
26048
 
  CExprValue *Value () const { return value; }
26049
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
26050
 
   private:
26051
 
  typedef CT_String CCExprResolveExpr;
26052
 
 
26053
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26054
 
 public :
26055
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26056
 
  typedef CT_String CExprResolveExpr;
26057
 
 
26058
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26059
 
 public :
26060
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26061
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26062
 
};
26063
 
 
26064
 
 
26065
 
#line 26066 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26066
 
} // closed Puma
26067
 
class WinIfExists;
26068
 
class WinImportHandler;
26069
 
class WinMacros;
26070
 
class CMatchSyntax;
26071
 
class ExtGnu;
26072
 
class ExtAC;
26073
 
class ExtACBuilderCoupling;
26074
 
class ExtACSyntaxCoupling;
26075
 
class ExtACTree;
26076
 
class ExtACKeywords;
26077
 
class WinAsm;
26078
 
class WinDeclSpecs;
26079
 
class WinMemberExplSpec;
26080
 
class WinTypeKeywords;
26081
 
class PragmaOnceUnitState;
26082
 
class PragmaOnce;
26083
 
class CCExprResolve;
26084
 
class CExprResolve;
26085
 
namespace Puma {
26086
 
 
26087
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26088
 
class CT_WideString : public CT_String {
26089
 
#line 26090 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26090
 
  friend class ::WinIfExists;
26091
 
  friend class ::WinImportHandler;
26092
 
  friend class ::WinMacros;
26093
 
  friend class ::CMatchSyntax;
26094
 
  friend class ::ExtGnu;
26095
 
  friend class ::ExtAC;
26096
 
  friend class ::ExtACBuilderCoupling;
26097
 
  friend class ::ExtACSyntaxCoupling;
26098
 
  friend class ::ExtACTree;
26099
 
  friend class ::ExtACKeywords;
26100
 
  friend class ::WinAsm;
26101
 
  friend class ::WinDeclSpecs;
26102
 
  friend class ::WinMemberExplSpec;
26103
 
  friend class ::WinTypeKeywords;
26104
 
  friend class ::PragmaOnceUnitState;
26105
 
  friend class ::PragmaOnce;
26106
 
  friend class ::CCExprResolve;
26107
 
  friend class ::CExprResolve;
26108
 
 
26109
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26110
 
 
26111
 
public:
26112
 
  CT_WideString (int size) : CT_String (size) {}
26113
 
  static const char *NodeId ();
26114
 
  const char *NodeName () const { return NodeId (); }
26115
 
   private:
26116
 
  typedef CT_WideString CCExprResolveExpr;
26117
 
 
26118
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26119
 
 public :
26120
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26121
 
  typedef CT_WideString CExprResolveExpr;
26122
 
 
26123
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26124
 
 public :
26125
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26126
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26127
 
};
26128
 
 
26129
 
 
26130
 
#line 26131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26131
 
} // closed Puma
26132
 
class WinIfExists;
26133
 
class WinImportHandler;
26134
 
class WinMacros;
26135
 
class CMatchSyntax;
26136
 
class ExtGnu;
26137
 
class ExtAC;
26138
 
class ExtACBuilderCoupling;
26139
 
class ExtACSyntaxCoupling;
26140
 
class ExtACTree;
26141
 
class ExtACKeywords;
26142
 
class WinAsm;
26143
 
class WinDeclSpecs;
26144
 
class WinMemberExplSpec;
26145
 
class WinTypeKeywords;
26146
 
class PragmaOnceUnitState;
26147
 
class PragmaOnce;
26148
 
class CCExprResolve;
26149
 
class CExprResolve;
26150
 
namespace Puma {
26151
 
 
26152
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26153
 
class CT_Integer : public CT_Expression {
26154
 
#line 26155 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26155
 
  friend class ::WinIfExists;
26156
 
  friend class ::WinImportHandler;
26157
 
  friend class ::WinMacros;
26158
 
  friend class ::CMatchSyntax;
26159
 
  friend class ::ExtGnu;
26160
 
  friend class ::ExtAC;
26161
 
  friend class ::ExtACBuilderCoupling;
26162
 
  friend class ::ExtACSyntaxCoupling;
26163
 
  friend class ::ExtACTree;
26164
 
  friend class ::ExtACKeywords;
26165
 
  friend class ::WinAsm;
26166
 
  friend class ::WinDeclSpecs;
26167
 
  friend class ::WinMemberExplSpec;
26168
 
  friend class ::WinTypeKeywords;
26169
 
  friend class ::PragmaOnceUnitState;
26170
 
  friend class ::PragmaOnce;
26171
 
  friend class ::CCExprResolve;
26172
 
  friend class ::CExprResolve;
26173
 
 
26174
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26175
 
 
26176
 
  CTree *_value;  // CT_Token
26177
 
 
26178
 
public:
26179
 
  CT_Integer (CTree *t) : _value (t) {}
26180
 
  static const char *NodeId ();
26181
 
  const char *NodeName () const { return NodeId (); }
26182
 
  int Sons () const { return _value ? 1 : 0; }
26183
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
26184
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
26185
 
   { if (old_son == _value) _value = new_son; }
26186
 
   private:
26187
 
  typedef CT_Integer CCExprResolveExpr;
26188
 
 
26189
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26190
 
 public :
26191
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26192
 
  typedef CT_Integer CExprResolveExpr;
26193
 
 
26194
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26195
 
 public :
26196
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26197
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26198
 
};
26199
 
 
26200
 
 
26201
 
#line 26202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26202
 
} // closed Puma
26203
 
class WinIfExists;
26204
 
class WinImportHandler;
26205
 
class WinMacros;
26206
 
class CMatchSyntax;
26207
 
class ExtGnu;
26208
 
class ExtAC;
26209
 
class ExtACBuilderCoupling;
26210
 
class ExtACSyntaxCoupling;
26211
 
class ExtACTree;
26212
 
class ExtACKeywords;
26213
 
class WinAsm;
26214
 
class WinDeclSpecs;
26215
 
class WinMemberExplSpec;
26216
 
class WinTypeKeywords;
26217
 
class PragmaOnceUnitState;
26218
 
class PragmaOnce;
26219
 
class CCExprResolve;
26220
 
class CExprResolve;
26221
 
namespace Puma {
26222
 
 
26223
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26224
 
class CT_Character : public CT_Expression {
26225
 
#line 26226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26226
 
  friend class ::WinIfExists;
26227
 
  friend class ::WinImportHandler;
26228
 
  friend class ::WinMacros;
26229
 
  friend class ::CMatchSyntax;
26230
 
  friend class ::ExtGnu;
26231
 
  friend class ::ExtAC;
26232
 
  friend class ::ExtACBuilderCoupling;
26233
 
  friend class ::ExtACSyntaxCoupling;
26234
 
  friend class ::ExtACTree;
26235
 
  friend class ::ExtACKeywords;
26236
 
  friend class ::WinAsm;
26237
 
  friend class ::WinDeclSpecs;
26238
 
  friend class ::WinMemberExplSpec;
26239
 
  friend class ::WinTypeKeywords;
26240
 
  friend class ::PragmaOnceUnitState;
26241
 
  friend class ::PragmaOnce;
26242
 
  friend class ::CCExprResolve;
26243
 
  friend class ::CExprResolve;
26244
 
 
26245
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26246
 
 
26247
 
  CTree *_value;  // CT_Token
26248
 
 
26249
 
public:
26250
 
  CT_Character (CTree *t) : _value (t) {}
26251
 
  static const char *NodeId ();
26252
 
  const char *NodeName () const { return NodeId (); }
26253
 
  int Sons () const { return 1; }
26254
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
26255
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
26256
 
   { if (old_son == _value) _value = new_son; }
26257
 
   private:
26258
 
  typedef CT_Character CCExprResolveExpr;
26259
 
 
26260
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26261
 
 public :
26262
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26263
 
  typedef CT_Character CExprResolveExpr;
26264
 
 
26265
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26266
 
 public :
26267
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26268
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26269
 
};
26270
 
 
26271
 
 
26272
 
#line 26273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26273
 
} // closed Puma
26274
 
class WinIfExists;
26275
 
class WinImportHandler;
26276
 
class WinMacros;
26277
 
class CMatchSyntax;
26278
 
class ExtGnu;
26279
 
class ExtAC;
26280
 
class ExtACBuilderCoupling;
26281
 
class ExtACSyntaxCoupling;
26282
 
class ExtACTree;
26283
 
class ExtACKeywords;
26284
 
class WinAsm;
26285
 
class WinDeclSpecs;
26286
 
class WinMemberExplSpec;
26287
 
class WinTypeKeywords;
26288
 
class PragmaOnceUnitState;
26289
 
class PragmaOnce;
26290
 
class CCExprResolve;
26291
 
class CExprResolve;
26292
 
namespace Puma {
26293
 
 
26294
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26295
 
class CT_WideCharacter : public CT_Character {
26296
 
#line 26297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26297
 
  friend class ::WinIfExists;
26298
 
  friend class ::WinImportHandler;
26299
 
  friend class ::WinMacros;
26300
 
  friend class ::CMatchSyntax;
26301
 
  friend class ::ExtGnu;
26302
 
  friend class ::ExtAC;
26303
 
  friend class ::ExtACBuilderCoupling;
26304
 
  friend class ::ExtACSyntaxCoupling;
26305
 
  friend class ::ExtACTree;
26306
 
  friend class ::ExtACKeywords;
26307
 
  friend class ::WinAsm;
26308
 
  friend class ::WinDeclSpecs;
26309
 
  friend class ::WinMemberExplSpec;
26310
 
  friend class ::WinTypeKeywords;
26311
 
  friend class ::PragmaOnceUnitState;
26312
 
  friend class ::PragmaOnce;
26313
 
  friend class ::CCExprResolve;
26314
 
  friend class ::CExprResolve;
26315
 
 
26316
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26317
 
 
26318
 
  CTree *_value;  // CT_Token
26319
 
 
26320
 
public:
26321
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
26322
 
  static const char *NodeId ();
26323
 
  const char *NodeName () const { return NodeId (); }
26324
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
26325
 
   { if (old_son == _value) _value = new_son; }
26326
 
   private:
26327
 
  typedef CT_WideCharacter CCExprResolveExpr;
26328
 
 
26329
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26330
 
 public :
26331
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26332
 
  typedef CT_WideCharacter CExprResolveExpr;
26333
 
 
26334
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26335
 
 public :
26336
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26337
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26338
 
};
26339
 
 
26340
 
 
26341
 
#line 26342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26342
 
} // closed Puma
26343
 
class WinIfExists;
26344
 
class WinImportHandler;
26345
 
class WinMacros;
26346
 
class CMatchSyntax;
26347
 
class ExtGnu;
26348
 
class ExtAC;
26349
 
class ExtACBuilderCoupling;
26350
 
class ExtACSyntaxCoupling;
26351
 
class ExtACTree;
26352
 
class ExtACKeywords;
26353
 
class WinAsm;
26354
 
class WinDeclSpecs;
26355
 
class WinMemberExplSpec;
26356
 
class WinTypeKeywords;
26357
 
class PragmaOnceUnitState;
26358
 
class PragmaOnce;
26359
 
class CCExprResolve;
26360
 
class CExprResolve;
26361
 
namespace Puma {
26362
 
 
26363
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26364
 
class CT_Float : public CT_Expression {
26365
 
#line 26366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26366
 
  friend class ::WinIfExists;
26367
 
  friend class ::WinImportHandler;
26368
 
  friend class ::WinMacros;
26369
 
  friend class ::CMatchSyntax;
26370
 
  friend class ::ExtGnu;
26371
 
  friend class ::ExtAC;
26372
 
  friend class ::ExtACBuilderCoupling;
26373
 
  friend class ::ExtACSyntaxCoupling;
26374
 
  friend class ::ExtACTree;
26375
 
  friend class ::ExtACKeywords;
26376
 
  friend class ::WinAsm;
26377
 
  friend class ::WinDeclSpecs;
26378
 
  friend class ::WinMemberExplSpec;
26379
 
  friend class ::WinTypeKeywords;
26380
 
  friend class ::PragmaOnceUnitState;
26381
 
  friend class ::PragmaOnce;
26382
 
  friend class ::CCExprResolve;
26383
 
  friend class ::CExprResolve;
26384
 
 
26385
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26386
 
 
26387
 
  CTree *_value;  // CT_Token
26388
 
 
26389
 
public:
26390
 
  CT_Float (CTree *t) : _value (t) {}
26391
 
  static const char *NodeId ();
26392
 
  const char *NodeName () const { return NodeId (); }
26393
 
  int Sons () const { return 1; }
26394
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
26395
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
26396
 
   { if (old_son == _value) _value = new_son; }
26397
 
   private:
26398
 
  typedef CT_Float CCExprResolveExpr;
26399
 
 
26400
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26401
 
 public :
26402
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26403
 
  typedef CT_Float CExprResolveExpr;
26404
 
 
26405
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26406
 
 public :
26407
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26408
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26409
 
};
26410
 
 
26411
 
 
26412
 
#line 26413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26413
 
} // closed Puma
26414
 
class WinIfExists;
26415
 
class WinImportHandler;
26416
 
class WinMacros;
26417
 
class CMatchSyntax;
26418
 
class ExtGnu;
26419
 
class ExtAC;
26420
 
class ExtACBuilderCoupling;
26421
 
class ExtACSyntaxCoupling;
26422
 
class ExtACTree;
26423
 
class ExtACKeywords;
26424
 
class WinAsm;
26425
 
class WinDeclSpecs;
26426
 
class WinMemberExplSpec;
26427
 
class WinTypeKeywords;
26428
 
class PragmaOnceUnitState;
26429
 
class PragmaOnce;
26430
 
class CCExprResolve;
26431
 
class CExprResolve;
26432
 
namespace Puma {
26433
 
 
26434
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26435
 
class CT_Bool : public CT_Expression {
26436
 
#line 26437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26437
 
  friend class ::WinIfExists;
26438
 
  friend class ::WinImportHandler;
26439
 
  friend class ::WinMacros;
26440
 
  friend class ::CMatchSyntax;
26441
 
  friend class ::ExtGnu;
26442
 
  friend class ::ExtAC;
26443
 
  friend class ::ExtACBuilderCoupling;
26444
 
  friend class ::ExtACSyntaxCoupling;
26445
 
  friend class ::ExtACTree;
26446
 
  friend class ::ExtACKeywords;
26447
 
  friend class ::WinAsm;
26448
 
  friend class ::WinDeclSpecs;
26449
 
  friend class ::WinMemberExplSpec;
26450
 
  friend class ::WinTypeKeywords;
26451
 
  friend class ::PragmaOnceUnitState;
26452
 
  friend class ::PragmaOnce;
26453
 
  friend class ::CCExprResolve;
26454
 
  friend class ::CExprResolve;
26455
 
 
26456
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26457
 
 
26458
 
  CTree *_value;  // CT_Token
26459
 
 
26460
 
public:
26461
 
  CT_Bool (CTree *t) : _value (t) {}
26462
 
  static const char *NodeId ();
26463
 
  const char *NodeName () const { return NodeId (); }
26464
 
  int Sons () const { return 1; }
26465
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
26466
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
26467
 
   { if (old_son == _value) _value = new_son; }
26468
 
   private:
26469
 
  typedef CT_Bool CCExprResolveExpr;
26470
 
 
26471
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26472
 
 public :
26473
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26474
 
  typedef CT_Bool CExprResolveExpr;
26475
 
 
26476
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26477
 
 public :
26478
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26479
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26480
 
};
26481
 
 
26482
 
 
26483
 
#line 26484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26484
 
} // closed Puma
26485
 
class WinIfExists;
26486
 
class WinImportHandler;
26487
 
class WinMacros;
26488
 
class CMatchSyntax;
26489
 
class ExtGnu;
26490
 
class ExtAC;
26491
 
class ExtACBuilderCoupling;
26492
 
class ExtACSyntaxCoupling;
26493
 
class ExtACTree;
26494
 
class ExtACKeywords;
26495
 
class WinAsm;
26496
 
class WinDeclSpecs;
26497
 
class WinMemberExplSpec;
26498
 
class WinTypeKeywords;
26499
 
class PragmaOnceUnitState;
26500
 
class PragmaOnce;
26501
 
class CCExprResolve;
26502
 
class CExprResolve;
26503
 
namespace Puma {
26504
 
 
26505
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26506
 
class CT_BracedExpr : public CT_Expression {
26507
 
#line 26508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26508
 
  friend class ::WinIfExists;
26509
 
  friend class ::WinImportHandler;
26510
 
  friend class ::WinMacros;
26511
 
  friend class ::CMatchSyntax;
26512
 
  friend class ::ExtGnu;
26513
 
  friend class ::ExtAC;
26514
 
  friend class ::ExtACBuilderCoupling;
26515
 
  friend class ::ExtACSyntaxCoupling;
26516
 
  friend class ::ExtACTree;
26517
 
  friend class ::ExtACKeywords;
26518
 
  friend class ::WinAsm;
26519
 
  friend class ::WinDeclSpecs;
26520
 
  friend class ::WinMemberExplSpec;
26521
 
  friend class ::WinTypeKeywords;
26522
 
  friend class ::PragmaOnceUnitState;
26523
 
  friend class ::PragmaOnce;
26524
 
  friend class ::CCExprResolve;
26525
 
  friend class ::CExprResolve;
26526
 
 
26527
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26528
 
 
26529
 
  CTree *sons[3]; // open, expr, close
26530
 
 
26531
 
public:
26532
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
26533
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
26534
 
  }
26535
 
  static const char *NodeId ();
26536
 
  const char *NodeName () const { return NodeId (); }
26537
 
  int Sons () const { return 3; }
26538
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
26539
 
  CTree *Expr () const { return sons[1]; }
26540
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
26541
 
  CExprValue *Value () const { return Expr ()->Value (); }
26542
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
26543
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26544
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26545
 
  }
26546
 
   private:
26547
 
  typedef CT_BracedExpr CCExprResolveExpr;
26548
 
 
26549
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26550
 
 public :
26551
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26552
 
  typedef CT_BracedExpr CExprResolveExpr;
26553
 
 
26554
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26555
 
 public :
26556
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26557
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26558
 
};
26559
 
 
26560
 
 
26561
 
#line 26562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26562
 
} // closed Puma
26563
 
class WinIfExists;
26564
 
class WinImportHandler;
26565
 
class WinMacros;
26566
 
class CMatchSyntax;
26567
 
class ExtGnu;
26568
 
class ExtAC;
26569
 
class ExtACBuilderCoupling;
26570
 
class ExtACSyntaxCoupling;
26571
 
class ExtACTree;
26572
 
class ExtACKeywords;
26573
 
class WinAsm;
26574
 
class WinDeclSpecs;
26575
 
class WinMemberExplSpec;
26576
 
class WinTypeKeywords;
26577
 
class PragmaOnceUnitState;
26578
 
class PragmaOnce;
26579
 
class CCExprResolve;
26580
 
class CExprResolve;
26581
 
namespace Puma {
26582
 
 
26583
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26584
 
class CT_SimpleName : public CT_List, public Printable, 
26585
 
                      public CSemValue, public CSemObject {
26586
 
#line 26587 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26587
 
  friend class ::WinIfExists;
26588
 
  friend class ::WinImportHandler;
26589
 
  friend class ::WinMacros;
26590
 
  friend class ::CMatchSyntax;
26591
 
  friend class ::ExtGnu;
26592
 
  friend class ::ExtAC;
26593
 
  friend class ::ExtACBuilderCoupling;
26594
 
  friend class ::ExtACSyntaxCoupling;
26595
 
  friend class ::ExtACTree;
26596
 
  friend class ::ExtACKeywords;
26597
 
  friend class ::WinAsm;
26598
 
  friend class ::WinDeclSpecs;
26599
 
  friend class ::WinMemberExplSpec;
26600
 
  friend class ::WinTypeKeywords;
26601
 
  friend class ::PragmaOnceUnitState;
26602
 
  friend class ::PragmaOnce;
26603
 
  friend class ::CCExprResolve;
26604
 
  friend class ::CExprResolve;
26605
 
 
26606
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26607
 
 
26608
 
protected:
26609
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
26610
 
  CT_SimpleName (int size, int properties) : 
26611
 
    CT_List (size, 2, properties) {}
26612
 
  
26613
 
public:
26614
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
26615
 
  static const char *NodeId ();
26616
 
  const char *NodeName () const { return NodeId (); }
26617
 
  virtual const char *Text () const 
26618
 
   { return Son (Sons ()-1)->token ()->text (); }
26619
 
  virtual void print (ostream &os) const { os << Text (); }
26620
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
26621
 
  CTypeInfo *Type () const { return type; }
26622
 
  CExprValue *Value () const { return value; }
26623
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
26624
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
26625
 
  // special new / delete with reusing memory
26626
 
  void *operator new (size_t);
26627
 
  void  operator delete (void *);
26628
 
  // classification function
26629
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
26630
 
   private:
26631
 
  typedef CT_SimpleName CCExprResolveExpr;
26632
 
 
26633
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26634
 
 public :
26635
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26636
 
  typedef CT_SimpleName CExprResolveExpr;
26637
 
 
26638
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26639
 
 public :
26640
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26641
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26642
 
};
26643
 
 
26644
 
 
26645
 
#line 26646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26646
 
} // closed Puma
26647
 
class WinIfExists;
26648
 
class WinImportHandler;
26649
 
class WinMacros;
26650
 
class CMatchSyntax;
26651
 
class ExtGnu;
26652
 
class ExtAC;
26653
 
class ExtACBuilderCoupling;
26654
 
class ExtACSyntaxCoupling;
26655
 
class ExtACTree;
26656
 
class ExtACKeywords;
26657
 
class WinAsm;
26658
 
class WinDeclSpecs;
26659
 
class WinMemberExplSpec;
26660
 
class WinTypeKeywords;
26661
 
class PragmaOnceUnitState;
26662
 
class PragmaOnce;
26663
 
class CCExprResolve;
26664
 
class CExprResolve;
26665
 
namespace Puma {
26666
 
 
26667
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26668
 
class CT_SpecialName : public CT_SimpleName {
26669
 
#line 26670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26670
 
  friend class ::WinIfExists;
26671
 
  friend class ::WinImportHandler;
26672
 
  friend class ::WinMacros;
26673
 
  friend class ::CMatchSyntax;
26674
 
  friend class ::ExtGnu;
26675
 
  friend class ::ExtAC;
26676
 
  friend class ::ExtACBuilderCoupling;
26677
 
  friend class ::ExtACSyntaxCoupling;
26678
 
  friend class ::ExtACTree;
26679
 
  friend class ::ExtACKeywords;
26680
 
  friend class ::WinAsm;
26681
 
  friend class ::WinDeclSpecs;
26682
 
  friend class ::WinMemberExplSpec;
26683
 
  friend class ::WinTypeKeywords;
26684
 
  friend class ::PragmaOnceUnitState;
26685
 
  friend class ::PragmaOnce;
26686
 
  friend class ::CCExprResolve;
26687
 
  friend class ::CExprResolve;
26688
 
 
26689
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26690
 
 
26691
 
  char *_name;
26692
 
  
26693
 
protected:
26694
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
26695
 
  
26696
 
public:
26697
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
26698
 
  const char *Text () const { return _name; }
26699
 
  void Name (const char *n) { 
26700
 
    if (n) { 
26701
 
      _name = new char[strlen(n) + 1];
26702
 
      strcpy (_name,n);
26703
 
    }
26704
 
  }
26705
 
  // special new / delete with reusing memory
26706
 
  void *operator new (size_t);
26707
 
  void  operator delete (void *);
26708
 
   private:
26709
 
  typedef CT_SpecialName CCExprResolveExpr;
26710
 
 
26711
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26712
 
 public :
26713
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26714
 
  typedef CT_SpecialName CExprResolveExpr;
26715
 
 
26716
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26717
 
 public :
26718
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26719
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26720
 
};
26721
 
 
26722
 
 
26723
 
#line 26724 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26724
 
} // closed Puma
26725
 
class WinIfExists;
26726
 
class WinImportHandler;
26727
 
class WinMacros;
26728
 
class CMatchSyntax;
26729
 
class ExtGnu;
26730
 
class ExtAC;
26731
 
class ExtACBuilderCoupling;
26732
 
class ExtACSyntaxCoupling;
26733
 
class ExtACTree;
26734
 
class ExtACKeywords;
26735
 
class WinAsm;
26736
 
class WinDeclSpecs;
26737
 
class WinMemberExplSpec;
26738
 
class WinTypeKeywords;
26739
 
class PragmaOnceUnitState;
26740
 
class PragmaOnce;
26741
 
class CCExprResolve;
26742
 
class CExprResolve;
26743
 
namespace Puma {
26744
 
 
26745
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26746
 
class CT_PrivateName : public CT_SpecialName {
26747
 
#line 26748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26748
 
  friend class ::WinIfExists;
26749
 
  friend class ::WinImportHandler;
26750
 
  friend class ::WinMacros;
26751
 
  friend class ::CMatchSyntax;
26752
 
  friend class ::ExtGnu;
26753
 
  friend class ::ExtAC;
26754
 
  friend class ::ExtACBuilderCoupling;
26755
 
  friend class ::ExtACSyntaxCoupling;
26756
 
  friend class ::ExtACTree;
26757
 
  friend class ::ExtACKeywords;
26758
 
  friend class ::WinAsm;
26759
 
  friend class ::WinDeclSpecs;
26760
 
  friend class ::WinMemberExplSpec;
26761
 
  friend class ::WinTypeKeywords;
26762
 
  friend class ::PragmaOnceUnitState;
26763
 
  friend class ::PragmaOnce;
26764
 
  friend class ::CCExprResolve;
26765
 
  friend class ::CExprResolve;
26766
 
 
26767
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26768
 
 
26769
 
public:
26770
 
  CT_PrivateName (const char *n) { Name (n); }
26771
 
  static const char *NodeId ();
26772
 
  const char *NodeName () const { return NodeId (); }
26773
 
  int Sons () const { return 0; }
26774
 
  CTree *Son (int n) const { return (CTree*)0; }
26775
 
  // special new / delete with reusing memory
26776
 
  void *operator new (size_t);
26777
 
  void  operator delete (void *);
26778
 
   private:
26779
 
  typedef CT_PrivateName CCExprResolveExpr;
26780
 
 
26781
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26782
 
 public :
26783
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26784
 
  typedef CT_PrivateName CExprResolveExpr;
26785
 
 
26786
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26787
 
 public :
26788
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26789
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26790
 
};
26791
 
 
26792
 
 
26793
 
#line 26794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26794
 
} // closed Puma
26795
 
class WinIfExists;
26796
 
class WinImportHandler;
26797
 
class WinMacros;
26798
 
class CMatchSyntax;
26799
 
class ExtGnu;
26800
 
class ExtAC;
26801
 
class ExtACBuilderCoupling;
26802
 
class ExtACSyntaxCoupling;
26803
 
class ExtACTree;
26804
 
class ExtACKeywords;
26805
 
class WinAsm;
26806
 
class WinDeclSpecs;
26807
 
class WinMemberExplSpec;
26808
 
class WinTypeKeywords;
26809
 
class PragmaOnceUnitState;
26810
 
class PragmaOnce;
26811
 
class CCExprResolve;
26812
 
class CExprResolve;
26813
 
namespace Puma {
26814
 
 
26815
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26816
 
class CT_DestructorName : public CT_SpecialName {
26817
 
#line 26818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26818
 
  friend class ::WinIfExists;
26819
 
  friend class ::WinImportHandler;
26820
 
  friend class ::WinMacros;
26821
 
  friend class ::CMatchSyntax;
26822
 
  friend class ::ExtGnu;
26823
 
  friend class ::ExtAC;
26824
 
  friend class ::ExtACBuilderCoupling;
26825
 
  friend class ::ExtACSyntaxCoupling;
26826
 
  friend class ::ExtACTree;
26827
 
  friend class ::ExtACKeywords;
26828
 
  friend class ::WinAsm;
26829
 
  friend class ::WinDeclSpecs;
26830
 
  friend class ::WinMemberExplSpec;
26831
 
  friend class ::WinTypeKeywords;
26832
 
  friend class ::PragmaOnceUnitState;
26833
 
  friend class ::PragmaOnce;
26834
 
  friend class ::CCExprResolve;
26835
 
  friend class ::CExprResolve;
26836
 
 
26837
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26838
 
 
26839
 
public:
26840
 
  CT_DestructorName (CTree *, CTree *);
26841
 
  static const char *NodeId ();
26842
 
  const char *NodeName () const { return NodeId (); }
26843
 
  // special new / delete with reusing memory
26844
 
  void *operator new (size_t);
26845
 
  void  operator delete (void *);
26846
 
   private:
26847
 
  typedef CT_DestructorName CCExprResolveExpr;
26848
 
 
26849
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26850
 
 public :
26851
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26852
 
  typedef CT_DestructorName CExprResolveExpr;
26853
 
 
26854
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26855
 
 public :
26856
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26857
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26858
 
};
26859
 
 
26860
 
 
26861
 
#line 26862 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26862
 
} // closed Puma
26863
 
class WinIfExists;
26864
 
class WinImportHandler;
26865
 
class WinMacros;
26866
 
class CMatchSyntax;
26867
 
class ExtGnu;
26868
 
class ExtAC;
26869
 
class ExtACBuilderCoupling;
26870
 
class ExtACSyntaxCoupling;
26871
 
class ExtACTree;
26872
 
class ExtACKeywords;
26873
 
class WinAsm;
26874
 
class WinDeclSpecs;
26875
 
class WinMemberExplSpec;
26876
 
class WinTypeKeywords;
26877
 
class PragmaOnceUnitState;
26878
 
class PragmaOnce;
26879
 
class CCExprResolve;
26880
 
class CExprResolve;
26881
 
namespace Puma {
26882
 
 
26883
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26884
 
class CT_TemplateName : public CT_SpecialName {
26885
 
#line 26886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26886
 
  friend class ::WinIfExists;
26887
 
  friend class ::WinImportHandler;
26888
 
  friend class ::WinMacros;
26889
 
  friend class ::CMatchSyntax;
26890
 
  friend class ::ExtGnu;
26891
 
  friend class ::ExtAC;
26892
 
  friend class ::ExtACBuilderCoupling;
26893
 
  friend class ::ExtACSyntaxCoupling;
26894
 
  friend class ::ExtACTree;
26895
 
  friend class ::ExtACKeywords;
26896
 
  friend class ::WinAsm;
26897
 
  friend class ::WinDeclSpecs;
26898
 
  friend class ::WinMemberExplSpec;
26899
 
  friend class ::WinTypeKeywords;
26900
 
  friend class ::PragmaOnceUnitState;
26901
 
  friend class ::PragmaOnce;
26902
 
  friend class ::CCExprResolve;
26903
 
  friend class ::CExprResolve;
26904
 
 
26905
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26906
 
 
26907
 
public:
26908
 
  CT_TemplateName (CTree *n, CTree *a) 
26909
 
   { AddSon (n); AddSon (a); }
26910
 
  static const char *NodeId ();
26911
 
  const char *NodeName () const { return NodeId (); }
26912
 
  CT_TemplateArgList *Arguments () const 
26913
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
26914
 
  CT_SimpleName *TemplateName () const 
26915
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
26916
 
  // may change in the future
26917
 
  const char *Text () const { return TemplateName ()->Text (); }
26918
 
  // special new / delete with reusing memory
26919
 
  void *operator new (size_t);
26920
 
  void  operator delete (void *);
26921
 
   private:
26922
 
  typedef CT_TemplateName CCExprResolveExpr;
26923
 
 
26924
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26925
 
 public :
26926
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26927
 
  typedef CT_TemplateName CExprResolveExpr;
26928
 
 
26929
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26930
 
 public :
26931
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26932
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26933
 
};
26934
 
 
26935
 
 
26936
 
#line 26937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26937
 
} // closed Puma
26938
 
class WinIfExists;
26939
 
class WinImportHandler;
26940
 
class WinMacros;
26941
 
class CMatchSyntax;
26942
 
class ExtGnu;
26943
 
class ExtAC;
26944
 
class ExtACBuilderCoupling;
26945
 
class ExtACSyntaxCoupling;
26946
 
class ExtACTree;
26947
 
class ExtACKeywords;
26948
 
class WinAsm;
26949
 
class WinDeclSpecs;
26950
 
class WinMemberExplSpec;
26951
 
class WinTypeKeywords;
26952
 
class PragmaOnceUnitState;
26953
 
class PragmaOnce;
26954
 
class CCExprResolve;
26955
 
class CExprResolve;
26956
 
namespace Puma {
26957
 
 
26958
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26959
 
class CT_OperatorName : public CT_SpecialName {
26960
 
#line 26961 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
26961
 
  friend class ::WinIfExists;
26962
 
  friend class ::WinImportHandler;
26963
 
  friend class ::WinMacros;
26964
 
  friend class ::CMatchSyntax;
26965
 
  friend class ::ExtGnu;
26966
 
  friend class ::ExtAC;
26967
 
  friend class ::ExtACBuilderCoupling;
26968
 
  friend class ::ExtACSyntaxCoupling;
26969
 
  friend class ::ExtACTree;
26970
 
  friend class ::ExtACKeywords;
26971
 
  friend class ::WinAsm;
26972
 
  friend class ::WinDeclSpecs;
26973
 
  friend class ::WinMemberExplSpec;
26974
 
  friend class ::WinTypeKeywords;
26975
 
  friend class ::PragmaOnceUnitState;
26976
 
  friend class ::PragmaOnce;
26977
 
  friend class ::CCExprResolve;
26978
 
  friend class ::CExprResolve;
26979
 
 
26980
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26981
 
 
26982
 
  int _oper;
26983
 
 
26984
 
public:
26985
 
  enum { // complex operators
26986
 
    FCT_CALL = -100,
26987
 
    SUBSCRIPT,
26988
 
    NEW_ARRAY,
26989
 
    DEL_ARRAY
26990
 
  };
26991
 
 
26992
 
public:
26993
 
  CT_OperatorName (CTree *);
26994
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
26995
 
  static const char *NodeId ();
26996
 
  const char *NodeName () const { return NodeId (); }
26997
 
  int Operator () const { return _oper; }
26998
 
  // special new / delete with reusing memory
26999
 
  void *operator new (size_t);
27000
 
  void  operator delete (void *);
27001
 
   private:
27002
 
  typedef CT_OperatorName CCExprResolveExpr;
27003
 
 
27004
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27005
 
 public :
27006
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27007
 
  typedef CT_OperatorName CExprResolveExpr;
27008
 
 
27009
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27010
 
 public :
27011
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27012
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27013
 
};
27014
 
 
27015
 
 
27016
 
#line 27017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27017
 
} // closed Puma
27018
 
class WinIfExists;
27019
 
class WinImportHandler;
27020
 
class WinMacros;
27021
 
class CMatchSyntax;
27022
 
class ExtGnu;
27023
 
class ExtAC;
27024
 
class ExtACBuilderCoupling;
27025
 
class ExtACSyntaxCoupling;
27026
 
class ExtACTree;
27027
 
class ExtACKeywords;
27028
 
class WinAsm;
27029
 
class WinDeclSpecs;
27030
 
class WinMemberExplSpec;
27031
 
class WinTypeKeywords;
27032
 
class PragmaOnceUnitState;
27033
 
class PragmaOnce;
27034
 
class CCExprResolve;
27035
 
class CExprResolve;
27036
 
namespace Puma {
27037
 
 
27038
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27039
 
class CT_ConversionName : public CT_SpecialName {
27040
 
#line 27041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27041
 
  friend class ::WinIfExists;
27042
 
  friend class ::WinImportHandler;
27043
 
  friend class ::WinMacros;
27044
 
  friend class ::CMatchSyntax;
27045
 
  friend class ::ExtGnu;
27046
 
  friend class ::ExtAC;
27047
 
  friend class ::ExtACBuilderCoupling;
27048
 
  friend class ::ExtACSyntaxCoupling;
27049
 
  friend class ::ExtACTree;
27050
 
  friend class ::ExtACKeywords;
27051
 
  friend class ::WinAsm;
27052
 
  friend class ::WinDeclSpecs;
27053
 
  friend class ::WinMemberExplSpec;
27054
 
  friend class ::WinTypeKeywords;
27055
 
  friend class ::PragmaOnceUnitState;
27056
 
  friend class ::PragmaOnce;
27057
 
  friend class ::CCExprResolve;
27058
 
  friend class ::CExprResolve;
27059
 
 
27060
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27061
 
 
27062
 
public:
27063
 
  CT_ConversionName (CTree *, CTree *);
27064
 
  static const char *NodeId ();
27065
 
  const char *NodeName () const { return NodeId (); }
27066
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
27067
 
  // special new / delete with reusing memory
27068
 
  void *operator new (size_t);
27069
 
  void  operator delete (void *);
27070
 
   private:
27071
 
  typedef CT_ConversionName CCExprResolveExpr;
27072
 
 
27073
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27074
 
 public :
27075
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27076
 
  typedef CT_ConversionName CExprResolveExpr;
27077
 
 
27078
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27079
 
 public :
27080
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27081
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27082
 
};
27083
 
 
27084
 
 
27085
 
#line 27086 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27086
 
} // closed Puma
27087
 
class WinIfExists;
27088
 
class WinImportHandler;
27089
 
class WinMacros;
27090
 
class CMatchSyntax;
27091
 
class ExtGnu;
27092
 
class ExtAC;
27093
 
class ExtACBuilderCoupling;
27094
 
class ExtACSyntaxCoupling;
27095
 
class ExtACTree;
27096
 
class ExtACKeywords;
27097
 
class WinAsm;
27098
 
class WinDeclSpecs;
27099
 
class WinMemberExplSpec;
27100
 
class WinTypeKeywords;
27101
 
class PragmaOnceUnitState;
27102
 
class PragmaOnce;
27103
 
class CCExprResolve;
27104
 
class CExprResolve;
27105
 
namespace Puma {
27106
 
 
27107
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27108
 
class CT_QualName : public CT_SimpleName {
27109
 
#line 27110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27110
 
  friend class ::WinIfExists;
27111
 
  friend class ::WinImportHandler;
27112
 
  friend class ::WinMacros;
27113
 
  friend class ::CMatchSyntax;
27114
 
  friend class ::ExtGnu;
27115
 
  friend class ::ExtAC;
27116
 
  friend class ::ExtACBuilderCoupling;
27117
 
  friend class ::ExtACSyntaxCoupling;
27118
 
  friend class ::ExtACTree;
27119
 
  friend class ::ExtACKeywords;
27120
 
  friend class ::WinAsm;
27121
 
  friend class ::WinDeclSpecs;
27122
 
  friend class ::WinMemberExplSpec;
27123
 
  friend class ::WinTypeKeywords;
27124
 
  friend class ::PragmaOnceUnitState;
27125
 
  friend class ::PragmaOnce;
27126
 
  friend class ::CCExprResolve;
27127
 
  friend class ::CExprResolve;
27128
 
 
27129
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27130
 
 
27131
 
public:
27132
 
  CT_QualName (int size = 3) : 
27133
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
27134
 
  static const char *NodeId ();
27135
 
  const char *NodeName () const { return NodeId (); }
27136
 
  void print (ostream &) const;
27137
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
27138
 
  const char *Text () const { return Name ()->Text (); }
27139
 
  CTypeInfo *Type () const { return Name ()->Type (); }
27140
 
  CExprValue *Value () const { return Name ()->Value (); }
27141
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
27142
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
27143
 
  // special new / delete with reusing memory
27144
 
  void *operator new (size_t);
27145
 
  void  operator delete (void *);
27146
 
   private:
27147
 
  typedef CT_QualName CCExprResolveExpr;
27148
 
 
27149
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27150
 
 public :
27151
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27152
 
  typedef CT_QualName CExprResolveExpr;
27153
 
 
27154
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27155
 
 public :
27156
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27157
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27158
 
};
27159
 
 
27160
 
 
27161
 
#line 27162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27162
 
} // closed Puma
27163
 
class WinIfExists;
27164
 
class WinImportHandler;
27165
 
class WinMacros;
27166
 
class CMatchSyntax;
27167
 
class ExtGnu;
27168
 
class ExtAC;
27169
 
class ExtACBuilderCoupling;
27170
 
class ExtACSyntaxCoupling;
27171
 
class ExtACTree;
27172
 
class ExtACKeywords;
27173
 
class WinAsm;
27174
 
class WinDeclSpecs;
27175
 
class WinMemberExplSpec;
27176
 
class WinTypeKeywords;
27177
 
class PragmaOnceUnitState;
27178
 
class PragmaOnce;
27179
 
class CCExprResolve;
27180
 
class CExprResolve;
27181
 
namespace Puma {
27182
 
 
27183
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27184
 
class CT_RootQualName : public CT_QualName {
27185
 
#line 27186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27186
 
  friend class ::WinIfExists;
27187
 
  friend class ::WinImportHandler;
27188
 
  friend class ::WinMacros;
27189
 
  friend class ::CMatchSyntax;
27190
 
  friend class ::ExtGnu;
27191
 
  friend class ::ExtAC;
27192
 
  friend class ::ExtACBuilderCoupling;
27193
 
  friend class ::ExtACSyntaxCoupling;
27194
 
  friend class ::ExtACTree;
27195
 
  friend class ::ExtACKeywords;
27196
 
  friend class ::WinAsm;
27197
 
  friend class ::WinDeclSpecs;
27198
 
  friend class ::WinMemberExplSpec;
27199
 
  friend class ::WinTypeKeywords;
27200
 
  friend class ::PragmaOnceUnitState;
27201
 
  friend class ::PragmaOnce;
27202
 
  friend class ::CCExprResolve;
27203
 
  friend class ::CExprResolve;
27204
 
 
27205
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27206
 
 
27207
 
public:
27208
 
  CT_RootQualName (int size = 2) : 
27209
 
    CT_QualName (size) { AddProperties (INTRO); }
27210
 
  static const char *NodeId ();
27211
 
  const char *NodeName () const { return NodeId (); }
27212
 
  // special new / delete with reusing memory
27213
 
  void *operator new (size_t);
27214
 
  void  operator delete (void *);
27215
 
   private:
27216
 
  typedef CT_RootQualName CCExprResolveExpr;
27217
 
 
27218
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27219
 
 public :
27220
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27221
 
  typedef CT_RootQualName CExprResolveExpr;
27222
 
 
27223
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27224
 
 public :
27225
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27226
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27227
 
};
27228
 
 
27229
 
 
27230
 
#line 27231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27231
 
} // closed Puma
27232
 
class WinIfExists;
27233
 
class WinImportHandler;
27234
 
class WinMacros;
27235
 
class CMatchSyntax;
27236
 
class ExtGnu;
27237
 
class ExtAC;
27238
 
class ExtACBuilderCoupling;
27239
 
class ExtACSyntaxCoupling;
27240
 
class ExtACTree;
27241
 
class ExtACKeywords;
27242
 
class WinAsm;
27243
 
class WinDeclSpecs;
27244
 
class WinMemberExplSpec;
27245
 
class WinTypeKeywords;
27246
 
class PragmaOnceUnitState;
27247
 
class PragmaOnce;
27248
 
class CCExprResolve;
27249
 
class CExprResolve;
27250
 
namespace Puma {
27251
 
 
27252
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27253
 
class CT_BinaryExpr : public CT_Expression {
27254
 
#line 27255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27255
 
  friend class ::WinIfExists;
27256
 
  friend class ::WinImportHandler;
27257
 
  friend class ::WinMacros;
27258
 
  friend class ::CMatchSyntax;
27259
 
  friend class ::ExtGnu;
27260
 
  friend class ::ExtAC;
27261
 
  friend class ::ExtACBuilderCoupling;
27262
 
  friend class ::ExtACSyntaxCoupling;
27263
 
  friend class ::ExtACTree;
27264
 
  friend class ::ExtACKeywords;
27265
 
  friend class ::WinAsm;
27266
 
  friend class ::WinDeclSpecs;
27267
 
  friend class ::WinMemberExplSpec;
27268
 
  friend class ::WinTypeKeywords;
27269
 
  friend class ::PragmaOnceUnitState;
27270
 
  friend class ::PragmaOnce;
27271
 
  friend class ::CCExprResolve;
27272
 
  friend class ::CExprResolve;
27273
 
 
27274
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27275
 
 
27276
 
  CTree *sons[3]; // expr, oper, expr
27277
 
 
27278
 
public:
27279
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
27280
 
    sons[0] = l; sons[1] = o; sons[2] = r;
27281
 
  }
27282
 
  static const char *NodeId ();
27283
 
  const char *NodeName () const { return NodeId (); }
27284
 
  int Sons () const { return 3; }
27285
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
27286
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27287
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
27288
 
  }
27289
 
   private:
27290
 
  typedef CT_BinaryExpr CCExprResolveExpr;
27291
 
 
27292
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27293
 
 public :
27294
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27295
 
  typedef CT_BinaryExpr CExprResolveExpr;
27296
 
 
27297
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27298
 
 public :
27299
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27300
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27301
 
};
27302
 
 
27303
 
 
27304
 
#line 27305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27305
 
} // closed Puma
27306
 
class WinIfExists;
27307
 
class WinImportHandler;
27308
 
class WinMacros;
27309
 
class CMatchSyntax;
27310
 
class ExtGnu;
27311
 
class ExtAC;
27312
 
class ExtACBuilderCoupling;
27313
 
class ExtACSyntaxCoupling;
27314
 
class ExtACTree;
27315
 
class ExtACKeywords;
27316
 
class WinAsm;
27317
 
class WinDeclSpecs;
27318
 
class WinMemberExplSpec;
27319
 
class WinTypeKeywords;
27320
 
class PragmaOnceUnitState;
27321
 
class PragmaOnce;
27322
 
class CCExprResolve;
27323
 
class CExprResolve;
27324
 
namespace Puma {
27325
 
 
27326
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27327
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
27328
 
#line 27329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27329
 
  friend class ::WinIfExists;
27330
 
  friend class ::WinImportHandler;
27331
 
  friend class ::WinMacros;
27332
 
  friend class ::CMatchSyntax;
27333
 
  friend class ::ExtGnu;
27334
 
  friend class ::ExtAC;
27335
 
  friend class ::ExtACBuilderCoupling;
27336
 
  friend class ::ExtACSyntaxCoupling;
27337
 
  friend class ::ExtACTree;
27338
 
  friend class ::ExtACKeywords;
27339
 
  friend class ::WinAsm;
27340
 
  friend class ::WinDeclSpecs;
27341
 
  friend class ::WinMemberExplSpec;
27342
 
  friend class ::WinTypeKeywords;
27343
 
  friend class ::PragmaOnceUnitState;
27344
 
  friend class ::PragmaOnce;
27345
 
  friend class ::CCExprResolve;
27346
 
  friend class ::CExprResolve;
27347
 
 
27348
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27349
 
 
27350
 
public:
27351
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
27352
 
    CT_BinaryExpr (e, o, i) {}
27353
 
  static const char *NodeId ();
27354
 
  const char *NodeName () const { return NodeId (); }
27355
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
27356
 
   private:
27357
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
27358
 
 
27359
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27360
 
 public :
27361
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27362
 
  typedef CT_MembPtrExpr CExprResolveExpr;
27363
 
 
27364
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27365
 
 public :
27366
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27367
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27368
 
};
27369
 
 
27370
 
 
27371
 
#line 27372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27372
 
} // closed Puma
27373
 
class WinIfExists;
27374
 
class WinImportHandler;
27375
 
class WinMacros;
27376
 
class CMatchSyntax;
27377
 
class ExtGnu;
27378
 
class ExtAC;
27379
 
class ExtACBuilderCoupling;
27380
 
class ExtACSyntaxCoupling;
27381
 
class ExtACTree;
27382
 
class ExtACKeywords;
27383
 
class WinAsm;
27384
 
class WinDeclSpecs;
27385
 
class WinMemberExplSpec;
27386
 
class WinTypeKeywords;
27387
 
class PragmaOnceUnitState;
27388
 
class PragmaOnce;
27389
 
class CCExprResolve;
27390
 
class CExprResolve;
27391
 
namespace Puma {
27392
 
 
27393
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27394
 
class CT_MembRefExpr : public CT_MembPtrExpr {
27395
 
#line 27396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27396
 
  friend class ::WinIfExists;
27397
 
  friend class ::WinImportHandler;
27398
 
  friend class ::WinMacros;
27399
 
  friend class ::CMatchSyntax;
27400
 
  friend class ::ExtGnu;
27401
 
  friend class ::ExtAC;
27402
 
  friend class ::ExtACBuilderCoupling;
27403
 
  friend class ::ExtACSyntaxCoupling;
27404
 
  friend class ::ExtACTree;
27405
 
  friend class ::ExtACKeywords;
27406
 
  friend class ::WinAsm;
27407
 
  friend class ::WinDeclSpecs;
27408
 
  friend class ::WinMemberExplSpec;
27409
 
  friend class ::WinTypeKeywords;
27410
 
  friend class ::PragmaOnceUnitState;
27411
 
  friend class ::PragmaOnce;
27412
 
  friend class ::CCExprResolve;
27413
 
  friend class ::CExprResolve;
27414
 
 
27415
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27416
 
 
27417
 
public:
27418
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
27419
 
    CT_MembPtrExpr (e, o, i) {}
27420
 
  static const char *NodeId ();
27421
 
  const char *NodeName () const { return NodeId (); }
27422
 
   private:
27423
 
  typedef CT_MembRefExpr CCExprResolveExpr;
27424
 
 
27425
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27426
 
 public :
27427
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27428
 
  typedef CT_MembRefExpr CExprResolveExpr;
27429
 
 
27430
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27431
 
 public :
27432
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27433
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27434
 
};
27435
 
 
27436
 
 
27437
 
#line 27438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27438
 
} // closed Puma
27439
 
class WinIfExists;
27440
 
class WinImportHandler;
27441
 
class WinMacros;
27442
 
class CMatchSyntax;
27443
 
class ExtGnu;
27444
 
class ExtAC;
27445
 
class ExtACBuilderCoupling;
27446
 
class ExtACSyntaxCoupling;
27447
 
class ExtACTree;
27448
 
class ExtACKeywords;
27449
 
class WinAsm;
27450
 
class WinDeclSpecs;
27451
 
class WinMemberExplSpec;
27452
 
class WinTypeKeywords;
27453
 
class PragmaOnceUnitState;
27454
 
class PragmaOnce;
27455
 
class CCExprResolve;
27456
 
class CExprResolve;
27457
 
namespace Puma {
27458
 
 
27459
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27460
 
class CT_UnaryExpr : public CT_Expression {
27461
 
#line 27462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27462
 
  friend class ::WinIfExists;
27463
 
  friend class ::WinImportHandler;
27464
 
  friend class ::WinMacros;
27465
 
  friend class ::CMatchSyntax;
27466
 
  friend class ::ExtGnu;
27467
 
  friend class ::ExtAC;
27468
 
  friend class ::ExtACBuilderCoupling;
27469
 
  friend class ::ExtACSyntaxCoupling;
27470
 
  friend class ::ExtACTree;
27471
 
  friend class ::ExtACKeywords;
27472
 
  friend class ::WinAsm;
27473
 
  friend class ::WinDeclSpecs;
27474
 
  friend class ::WinMemberExplSpec;
27475
 
  friend class ::WinTypeKeywords;
27476
 
  friend class ::PragmaOnceUnitState;
27477
 
  friend class ::PragmaOnce;
27478
 
  friend class ::CCExprResolve;
27479
 
  friend class ::CExprResolve;
27480
 
 
27481
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27482
 
 
27483
 
  CTree *sons[2]; // oper, expr
27484
 
 
27485
 
public:
27486
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
27487
 
  static const char *NodeId ();
27488
 
  const char *NodeName () const { return NodeId (); }
27489
 
  int Sons () const { return 2; }
27490
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
27491
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27492
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
27493
 
  }
27494
 
  CTree *Expr () const { return sons[1]; }
27495
 
   private:
27496
 
  typedef CT_UnaryExpr CCExprResolveExpr;
27497
 
 
27498
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27499
 
 public :
27500
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27501
 
  typedef CT_UnaryExpr CExprResolveExpr;
27502
 
 
27503
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27504
 
 public :
27505
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27506
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27507
 
};
27508
 
 
27509
 
 
27510
 
#line 27511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27511
 
} // closed Puma
27512
 
class WinIfExists;
27513
 
class WinImportHandler;
27514
 
class WinMacros;
27515
 
class CMatchSyntax;
27516
 
class ExtGnu;
27517
 
class ExtAC;
27518
 
class ExtACBuilderCoupling;
27519
 
class ExtACSyntaxCoupling;
27520
 
class ExtACTree;
27521
 
class ExtACKeywords;
27522
 
class WinAsm;
27523
 
class WinDeclSpecs;
27524
 
class WinMemberExplSpec;
27525
 
class WinTypeKeywords;
27526
 
class PragmaOnceUnitState;
27527
 
class PragmaOnce;
27528
 
class CCExprResolve;
27529
 
class CExprResolve;
27530
 
namespace Puma {
27531
 
 
27532
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27533
 
class CT_PostfixExpr : public CT_UnaryExpr {
27534
 
#line 27535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27535
 
  friend class ::WinIfExists;
27536
 
  friend class ::WinImportHandler;
27537
 
  friend class ::WinMacros;
27538
 
  friend class ::CMatchSyntax;
27539
 
  friend class ::ExtGnu;
27540
 
  friend class ::ExtAC;
27541
 
  friend class ::ExtACBuilderCoupling;
27542
 
  friend class ::ExtACSyntaxCoupling;
27543
 
  friend class ::ExtACTree;
27544
 
  friend class ::ExtACKeywords;
27545
 
  friend class ::WinAsm;
27546
 
  friend class ::WinDeclSpecs;
27547
 
  friend class ::WinMemberExplSpec;
27548
 
  friend class ::WinTypeKeywords;
27549
 
  friend class ::PragmaOnceUnitState;
27550
 
  friend class ::PragmaOnce;
27551
 
  friend class ::CCExprResolve;
27552
 
  friend class ::CExprResolve;
27553
 
 
27554
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27555
 
 
27556
 
public:
27557
 
  CT_PostfixExpr (CTree *e, CTree *o) :
27558
 
    CT_UnaryExpr (e, o) {}
27559
 
  static const char *NodeId ();
27560
 
  const char *NodeName () const { return NodeId (); }
27561
 
   private:
27562
 
  typedef CT_PostfixExpr CCExprResolveExpr;
27563
 
 
27564
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27565
 
 public :
27566
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27567
 
  typedef CT_PostfixExpr CExprResolveExpr;
27568
 
 
27569
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27570
 
 public :
27571
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27572
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27573
 
};
27574
 
 
27575
 
 
27576
 
#line 27577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27577
 
} // closed Puma
27578
 
class WinIfExists;
27579
 
class WinImportHandler;
27580
 
class WinMacros;
27581
 
class CMatchSyntax;
27582
 
class ExtGnu;
27583
 
class ExtAC;
27584
 
class ExtACBuilderCoupling;
27585
 
class ExtACSyntaxCoupling;
27586
 
class ExtACTree;
27587
 
class ExtACKeywords;
27588
 
class WinAsm;
27589
 
class WinDeclSpecs;
27590
 
class WinMemberExplSpec;
27591
 
class WinTypeKeywords;
27592
 
class PragmaOnceUnitState;
27593
 
class PragmaOnce;
27594
 
class CCExprResolve;
27595
 
class CExprResolve;
27596
 
namespace Puma {
27597
 
 
27598
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27599
 
class CT_AddrExpr : public CT_UnaryExpr {
27600
 
#line 27601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27601
 
  friend class ::WinIfExists;
27602
 
  friend class ::WinImportHandler;
27603
 
  friend class ::WinMacros;
27604
 
  friend class ::CMatchSyntax;
27605
 
  friend class ::ExtGnu;
27606
 
  friend class ::ExtAC;
27607
 
  friend class ::ExtACBuilderCoupling;
27608
 
  friend class ::ExtACSyntaxCoupling;
27609
 
  friend class ::ExtACTree;
27610
 
  friend class ::ExtACKeywords;
27611
 
  friend class ::WinAsm;
27612
 
  friend class ::WinDeclSpecs;
27613
 
  friend class ::WinMemberExplSpec;
27614
 
  friend class ::WinTypeKeywords;
27615
 
  friend class ::PragmaOnceUnitState;
27616
 
  friend class ::PragmaOnce;
27617
 
  friend class ::CCExprResolve;
27618
 
  friend class ::CExprResolve;
27619
 
 
27620
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27621
 
 
27622
 
public:
27623
 
  CT_AddrExpr (CTree *o, CTree *e) :
27624
 
    CT_UnaryExpr (o, e) {}
27625
 
  static const char *NodeId ();
27626
 
  const char *NodeName () const { return NodeId (); }
27627
 
   private:
27628
 
  typedef CT_AddrExpr CCExprResolveExpr;
27629
 
 
27630
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27631
 
 public :
27632
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27633
 
  typedef CT_AddrExpr CExprResolveExpr;
27634
 
 
27635
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27636
 
 public :
27637
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27638
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27639
 
};
27640
 
 
27641
 
 
27642
 
#line 27643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27643
 
} // closed Puma
27644
 
class WinIfExists;
27645
 
class WinImportHandler;
27646
 
class WinMacros;
27647
 
class CMatchSyntax;
27648
 
class ExtGnu;
27649
 
class ExtAC;
27650
 
class ExtACBuilderCoupling;
27651
 
class ExtACSyntaxCoupling;
27652
 
class ExtACTree;
27653
 
class ExtACKeywords;
27654
 
class WinAsm;
27655
 
class WinDeclSpecs;
27656
 
class WinMemberExplSpec;
27657
 
class WinTypeKeywords;
27658
 
class PragmaOnceUnitState;
27659
 
class PragmaOnce;
27660
 
class CCExprResolve;
27661
 
class CExprResolve;
27662
 
namespace Puma {
27663
 
 
27664
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27665
 
class CT_DerefExpr : public CT_UnaryExpr {
27666
 
#line 27667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27667
 
  friend class ::WinIfExists;
27668
 
  friend class ::WinImportHandler;
27669
 
  friend class ::WinMacros;
27670
 
  friend class ::CMatchSyntax;
27671
 
  friend class ::ExtGnu;
27672
 
  friend class ::ExtAC;
27673
 
  friend class ::ExtACBuilderCoupling;
27674
 
  friend class ::ExtACSyntaxCoupling;
27675
 
  friend class ::ExtACTree;
27676
 
  friend class ::ExtACKeywords;
27677
 
  friend class ::WinAsm;
27678
 
  friend class ::WinDeclSpecs;
27679
 
  friend class ::WinMemberExplSpec;
27680
 
  friend class ::WinTypeKeywords;
27681
 
  friend class ::PragmaOnceUnitState;
27682
 
  friend class ::PragmaOnce;
27683
 
  friend class ::CCExprResolve;
27684
 
  friend class ::CExprResolve;
27685
 
 
27686
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27687
 
 
27688
 
public:
27689
 
  CT_DerefExpr (CTree *o, CTree *e) :
27690
 
    CT_UnaryExpr (o, e) {}
27691
 
  static const char *NodeId ();
27692
 
  const char *NodeName () const { return NodeId (); }
27693
 
   private:
27694
 
  typedef CT_DerefExpr CCExprResolveExpr;
27695
 
 
27696
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27697
 
 public :
27698
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27699
 
  typedef CT_DerefExpr CExprResolveExpr;
27700
 
 
27701
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27702
 
 public :
27703
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27704
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27705
 
};
27706
 
 
27707
 
 
27708
 
#line 27709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27709
 
} // closed Puma
27710
 
class WinIfExists;
27711
 
class WinImportHandler;
27712
 
class WinMacros;
27713
 
class CMatchSyntax;
27714
 
class ExtGnu;
27715
 
class ExtAC;
27716
 
class ExtACBuilderCoupling;
27717
 
class ExtACSyntaxCoupling;
27718
 
class ExtACTree;
27719
 
class ExtACKeywords;
27720
 
class WinAsm;
27721
 
class WinDeclSpecs;
27722
 
class WinMemberExplSpec;
27723
 
class WinTypeKeywords;
27724
 
class PragmaOnceUnitState;
27725
 
class PragmaOnce;
27726
 
class CCExprResolve;
27727
 
class CExprResolve;
27728
 
namespace Puma {
27729
 
 
27730
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27731
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
27732
 
#line 27733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27733
 
  friend class ::WinIfExists;
27734
 
  friend class ::WinImportHandler;
27735
 
  friend class ::WinMacros;
27736
 
  friend class ::CMatchSyntax;
27737
 
  friend class ::ExtGnu;
27738
 
  friend class ::ExtAC;
27739
 
  friend class ::ExtACBuilderCoupling;
27740
 
  friend class ::ExtACSyntaxCoupling;
27741
 
  friend class ::ExtACTree;
27742
 
  friend class ::ExtACKeywords;
27743
 
  friend class ::WinAsm;
27744
 
  friend class ::WinDeclSpecs;
27745
 
  friend class ::WinMemberExplSpec;
27746
 
  friend class ::WinTypeKeywords;
27747
 
  friend class ::PragmaOnceUnitState;
27748
 
  friend class ::PragmaOnce;
27749
 
  friend class ::CCExprResolve;
27750
 
  friend class ::CExprResolve;
27751
 
 
27752
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27753
 
 
27754
 
  CTree *sons[2]; // oper, expr
27755
 
 
27756
 
public:
27757
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
27758
 
  static const char *NodeId ();
27759
 
  const char *NodeName () const { return NodeId (); }
27760
 
  int Sons () const { return 2; }
27761
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
27762
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27763
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
27764
 
  }
27765
 
  CTree *Expr () const { return sons[1]; }
27766
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
27767
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
27768
 
   private:
27769
 
  typedef CT_DeleteExpr CCExprResolveExpr;
27770
 
 
27771
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27772
 
 public :
27773
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27774
 
  typedef CT_DeleteExpr CExprResolveExpr;
27775
 
 
27776
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27777
 
 public :
27778
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27779
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27780
 
};
27781
 
 
27782
 
 
27783
 
#line 27784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27784
 
} // closed Puma
27785
 
class WinIfExists;
27786
 
class WinImportHandler;
27787
 
class WinMacros;
27788
 
class CMatchSyntax;
27789
 
class ExtGnu;
27790
 
class ExtAC;
27791
 
class ExtACBuilderCoupling;
27792
 
class ExtACSyntaxCoupling;
27793
 
class ExtACTree;
27794
 
class ExtACKeywords;
27795
 
class WinAsm;
27796
 
class WinDeclSpecs;
27797
 
class WinMemberExplSpec;
27798
 
class WinTypeKeywords;
27799
 
class PragmaOnceUnitState;
27800
 
class PragmaOnce;
27801
 
class CCExprResolve;
27802
 
class CExprResolve;
27803
 
namespace Puma {
27804
 
 
27805
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27806
 
class CT_NewExpr : public CT_Expression, public CSemObject {
27807
 
#line 27808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27808
 
  friend class ::WinIfExists;
27809
 
  friend class ::WinImportHandler;
27810
 
  friend class ::WinMacros;
27811
 
  friend class ::CMatchSyntax;
27812
 
  friend class ::ExtGnu;
27813
 
  friend class ::ExtAC;
27814
 
  friend class ::ExtACBuilderCoupling;
27815
 
  friend class ::ExtACSyntaxCoupling;
27816
 
  friend class ::ExtACTree;
27817
 
  friend class ::ExtACKeywords;
27818
 
  friend class ::WinAsm;
27819
 
  friend class ::WinDeclSpecs;
27820
 
  friend class ::WinMemberExplSpec;
27821
 
  friend class ::WinTypeKeywords;
27822
 
  friend class ::PragmaOnceUnitState;
27823
 
  friend class ::PragmaOnce;
27824
 
  friend class ::CCExprResolve;
27825
 
  friend class ::CExprResolve;
27826
 
 
27827
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27828
 
 
27829
 
  CTree *sons[6]; // oper, placement, open, type, close, init
27830
 
 
27831
 
public:
27832
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
27833
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
27834
 
  }
27835
 
  static const char *NodeId ();
27836
 
  const char *NodeName () const { return NodeId (); }
27837
 
  int Sons () const { return CTree::Sons (sons, 6); }
27838
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
27839
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27840
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
27841
 
  }
27842
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
27843
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
27844
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
27845
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
27846
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
27847
 
   private:
27848
 
  typedef CT_NewExpr CCExprResolveExpr;
27849
 
 
27850
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27851
 
 public :
27852
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27853
 
  typedef CT_NewExpr CExprResolveExpr;
27854
 
 
27855
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27856
 
 public :
27857
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27858
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27859
 
};
27860
 
 
27861
 
 
27862
 
#line 27863 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27863
 
} // closed Puma
27864
 
class WinIfExists;
27865
 
class WinImportHandler;
27866
 
class WinMacros;
27867
 
class CMatchSyntax;
27868
 
class ExtGnu;
27869
 
class ExtAC;
27870
 
class ExtACBuilderCoupling;
27871
 
class ExtACSyntaxCoupling;
27872
 
class ExtACTree;
27873
 
class ExtACKeywords;
27874
 
class WinAsm;
27875
 
class WinDeclSpecs;
27876
 
class WinMemberExplSpec;
27877
 
class WinTypeKeywords;
27878
 
class PragmaOnceUnitState;
27879
 
class PragmaOnce;
27880
 
class CCExprResolve;
27881
 
class CExprResolve;
27882
 
namespace Puma {
27883
 
 
27884
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27885
 
class CT_IfThenExpr : public CT_Expression {
27886
 
#line 27887 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27887
 
  friend class ::WinIfExists;
27888
 
  friend class ::WinImportHandler;
27889
 
  friend class ::WinMacros;
27890
 
  friend class ::CMatchSyntax;
27891
 
  friend class ::ExtGnu;
27892
 
  friend class ::ExtAC;
27893
 
  friend class ::ExtACBuilderCoupling;
27894
 
  friend class ::ExtACSyntaxCoupling;
27895
 
  friend class ::ExtACTree;
27896
 
  friend class ::ExtACKeywords;
27897
 
  friend class ::WinAsm;
27898
 
  friend class ::WinDeclSpecs;
27899
 
  friend class ::WinMemberExplSpec;
27900
 
  friend class ::WinTypeKeywords;
27901
 
  friend class ::PragmaOnceUnitState;
27902
 
  friend class ::PragmaOnce;
27903
 
  friend class ::CCExprResolve;
27904
 
  friend class ::CExprResolve;
27905
 
 
27906
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27907
 
 
27908
 
  CTree *sons[5]; // cond, oper, left, colon, right
27909
 
 
27910
 
public:
27911
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
27912
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
27913
 
  }
27914
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
27915
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
27916
 
  }
27917
 
  static const char *NodeId ();
27918
 
  const char *NodeName () const { return NodeId (); }
27919
 
  int Sons () const { return CTree::Sons (sons, 5); }
27920
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
27921
 
  CTree *Condition () const { return sons[0]; }
27922
 
  CTree *LeftOperand () const { return sons[2]; }
27923
 
  CTree *RightOperand () const { return sons[4]; }
27924
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27925
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
27926
 
  }
27927
 
   private:
27928
 
  typedef CT_IfThenExpr CCExprResolveExpr;
27929
 
 
27930
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27931
 
 public :
27932
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27933
 
  typedef CT_IfThenExpr CExprResolveExpr;
27934
 
 
27935
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27936
 
 public :
27937
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27938
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27939
 
};
27940
 
 
27941
 
 
27942
 
#line 27943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27943
 
} // closed Puma
27944
 
class WinIfExists;
27945
 
class WinImportHandler;
27946
 
class WinMacros;
27947
 
class CMatchSyntax;
27948
 
class ExtGnu;
27949
 
class ExtAC;
27950
 
class ExtACBuilderCoupling;
27951
 
class ExtACSyntaxCoupling;
27952
 
class ExtACTree;
27953
 
class ExtACKeywords;
27954
 
class WinAsm;
27955
 
class WinDeclSpecs;
27956
 
class WinMemberExplSpec;
27957
 
class WinTypeKeywords;
27958
 
class PragmaOnceUnitState;
27959
 
class PragmaOnce;
27960
 
class CCExprResolve;
27961
 
class CExprResolve;
27962
 
namespace Puma {
27963
 
 
27964
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27965
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
27966
 
#line 27967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
27967
 
  friend class ::WinIfExists;
27968
 
  friend class ::WinImportHandler;
27969
 
  friend class ::WinMacros;
27970
 
  friend class ::CMatchSyntax;
27971
 
  friend class ::ExtGnu;
27972
 
  friend class ::ExtAC;
27973
 
  friend class ::ExtACBuilderCoupling;
27974
 
  friend class ::ExtACSyntaxCoupling;
27975
 
  friend class ::ExtACTree;
27976
 
  friend class ::ExtACKeywords;
27977
 
  friend class ::WinAsm;
27978
 
  friend class ::WinDeclSpecs;
27979
 
  friend class ::WinMemberExplSpec;
27980
 
  friend class ::WinTypeKeywords;
27981
 
  friend class ::PragmaOnceUnitState;
27982
 
  friend class ::PragmaOnce;
27983
 
  friend class ::CCExprResolve;
27984
 
  friend class ::CExprResolve;
27985
 
 
27986
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27987
 
 
27988
 
  CTree *sons[4]; // open, type, close, init
27989
 
 
27990
 
public:
27991
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
27992
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
27993
 
  }
27994
 
  static const char *NodeId ();
27995
 
  const char *NodeName () const { return NodeId (); }
27996
 
  int Sons () const { return 4; }
27997
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
27998
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27999
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
28000
 
  }
28001
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
28002
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
28003
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
28004
 
   private:
28005
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
28006
 
 
28007
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28008
 
 public :
28009
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28010
 
  typedef CT_CmpdLiteral CExprResolveExpr;
28011
 
 
28012
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28013
 
 public :
28014
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28015
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28016
 
};
28017
 
 
28018
 
 
28019
 
#line 28020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28020
 
} // closed Puma
28021
 
class WinIfExists;
28022
 
class WinImportHandler;
28023
 
class WinMacros;
28024
 
class CMatchSyntax;
28025
 
class ExtGnu;
28026
 
class ExtAC;
28027
 
class ExtACBuilderCoupling;
28028
 
class ExtACSyntaxCoupling;
28029
 
class ExtACTree;
28030
 
class ExtACKeywords;
28031
 
class WinAsm;
28032
 
class WinDeclSpecs;
28033
 
class WinMemberExplSpec;
28034
 
class WinTypeKeywords;
28035
 
class PragmaOnceUnitState;
28036
 
class PragmaOnce;
28037
 
class CCExprResolve;
28038
 
class CExprResolve;
28039
 
namespace Puma {
28040
 
 
28041
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28042
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
28043
 
#line 28044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28044
 
  friend class ::WinIfExists;
28045
 
  friend class ::WinImportHandler;
28046
 
  friend class ::WinMacros;
28047
 
  friend class ::CMatchSyntax;
28048
 
  friend class ::ExtGnu;
28049
 
  friend class ::ExtAC;
28050
 
  friend class ::ExtACBuilderCoupling;
28051
 
  friend class ::ExtACSyntaxCoupling;
28052
 
  friend class ::ExtACTree;
28053
 
  friend class ::ExtACKeywords;
28054
 
  friend class ::WinAsm;
28055
 
  friend class ::WinDeclSpecs;
28056
 
  friend class ::WinMemberExplSpec;
28057
 
  friend class ::WinTypeKeywords;
28058
 
  friend class ::PragmaOnceUnitState;
28059
 
  friend class ::PragmaOnce;
28060
 
  friend class ::CCExprResolve;
28061
 
  friend class ::CExprResolve;
28062
 
 
28063
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28064
 
 
28065
 
  CTree *sons[2]; // type, init
28066
 
 
28067
 
public:
28068
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
28069
 
  static const char *NodeId ();
28070
 
  const char *NodeName () const { return NodeId (); }
28071
 
  int Sons () const { return 2; }
28072
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
28073
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28074
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
28075
 
  }
28076
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
28077
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
28078
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
28079
 
   private:
28080
 
  typedef CT_ConstructExpr CCExprResolveExpr;
28081
 
 
28082
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28083
 
 public :
28084
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28085
 
  typedef CT_ConstructExpr CExprResolveExpr;
28086
 
 
28087
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28088
 
 public :
28089
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28090
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28091
 
};
28092
 
 
28093
 
 
28094
 
#line 28095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28095
 
} // closed Puma
28096
 
class WinIfExists;
28097
 
class WinImportHandler;
28098
 
class WinMacros;
28099
 
class CMatchSyntax;
28100
 
class ExtGnu;
28101
 
class ExtAC;
28102
 
class ExtACBuilderCoupling;
28103
 
class ExtACSyntaxCoupling;
28104
 
class ExtACTree;
28105
 
class ExtACKeywords;
28106
 
class WinAsm;
28107
 
class WinDeclSpecs;
28108
 
class WinMemberExplSpec;
28109
 
class WinTypeKeywords;
28110
 
class PragmaOnceUnitState;
28111
 
class PragmaOnce;
28112
 
class CCExprResolve;
28113
 
class CExprResolve;
28114
 
namespace Puma {
28115
 
 
28116
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28117
 
class CT_ThrowExpr : public CT_Expression {
28118
 
#line 28119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28119
 
  friend class ::WinIfExists;
28120
 
  friend class ::WinImportHandler;
28121
 
  friend class ::WinMacros;
28122
 
  friend class ::CMatchSyntax;
28123
 
  friend class ::ExtGnu;
28124
 
  friend class ::ExtAC;
28125
 
  friend class ::ExtACBuilderCoupling;
28126
 
  friend class ::ExtACSyntaxCoupling;
28127
 
  friend class ::ExtACTree;
28128
 
  friend class ::ExtACKeywords;
28129
 
  friend class ::WinAsm;
28130
 
  friend class ::WinDeclSpecs;
28131
 
  friend class ::WinMemberExplSpec;
28132
 
  friend class ::WinTypeKeywords;
28133
 
  friend class ::PragmaOnceUnitState;
28134
 
  friend class ::PragmaOnce;
28135
 
  friend class ::CCExprResolve;
28136
 
  friend class ::CExprResolve;
28137
 
 
28138
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28139
 
 
28140
 
  CTree *sons[2]; // throw, expr
28141
 
 
28142
 
public:
28143
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
28144
 
  static const char *NodeId ();
28145
 
  const char *NodeName () const { return NodeId (); }
28146
 
  int Sons () const { return CTree::Sons (sons, 2); }
28147
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
28148
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28149
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
28150
 
  }
28151
 
  CTree *Expr () const { return sons[1]; }
28152
 
   private:
28153
 
  typedef CT_ThrowExpr CCExprResolveExpr;
28154
 
 
28155
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28156
 
 public :
28157
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28158
 
  typedef CT_ThrowExpr CExprResolveExpr;
28159
 
 
28160
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28161
 
 public :
28162
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28163
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28164
 
};
28165
 
 
28166
 
 
28167
 
#line 28168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28168
 
} // closed Puma
28169
 
class WinIfExists;
28170
 
class WinImportHandler;
28171
 
class WinMacros;
28172
 
class CMatchSyntax;
28173
 
class ExtGnu;
28174
 
class ExtAC;
28175
 
class ExtACBuilderCoupling;
28176
 
class ExtACSyntaxCoupling;
28177
 
class ExtACTree;
28178
 
class ExtACKeywords;
28179
 
class WinAsm;
28180
 
class WinDeclSpecs;
28181
 
class WinMemberExplSpec;
28182
 
class WinTypeKeywords;
28183
 
class PragmaOnceUnitState;
28184
 
class PragmaOnce;
28185
 
class CCExprResolve;
28186
 
class CExprResolve;
28187
 
namespace Puma {
28188
 
 
28189
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28190
 
class CT_IndexExpr : public CT_Expression {
28191
 
#line 28192 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28192
 
  friend class ::WinIfExists;
28193
 
  friend class ::WinImportHandler;
28194
 
  friend class ::WinMacros;
28195
 
  friend class ::CMatchSyntax;
28196
 
  friend class ::ExtGnu;
28197
 
  friend class ::ExtAC;
28198
 
  friend class ::ExtACBuilderCoupling;
28199
 
  friend class ::ExtACSyntaxCoupling;
28200
 
  friend class ::ExtACTree;
28201
 
  friend class ::ExtACKeywords;
28202
 
  friend class ::WinAsm;
28203
 
  friend class ::WinDeclSpecs;
28204
 
  friend class ::WinMemberExplSpec;
28205
 
  friend class ::WinTypeKeywords;
28206
 
  friend class ::PragmaOnceUnitState;
28207
 
  friend class ::PragmaOnce;
28208
 
  friend class ::CCExprResolve;
28209
 
  friend class ::CExprResolve;
28210
 
 
28211
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28212
 
 
28213
 
  CTree *sons[4]; // expr, open, index, close
28214
 
 
28215
 
public:
28216
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
28217
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
28218
 
  }
28219
 
  static const char *NodeId ();
28220
 
  const char *NodeName () const { return NodeId (); }
28221
 
  int Sons () const { return 4; }
28222
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
28223
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28224
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
28225
 
  }
28226
 
   private:
28227
 
  typedef CT_IndexExpr CCExprResolveExpr;
28228
 
 
28229
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28230
 
 public :
28231
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28232
 
  typedef CT_IndexExpr CExprResolveExpr;
28233
 
 
28234
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28235
 
 public :
28236
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28237
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28238
 
};
28239
 
 
28240
 
 
28241
 
#line 28242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28242
 
} // closed Puma
28243
 
class WinIfExists;
28244
 
class WinImportHandler;
28245
 
class WinMacros;
28246
 
class CMatchSyntax;
28247
 
class ExtGnu;
28248
 
class ExtAC;
28249
 
class ExtACBuilderCoupling;
28250
 
class ExtACSyntaxCoupling;
28251
 
class ExtACTree;
28252
 
class ExtACKeywords;
28253
 
class WinAsm;
28254
 
class WinDeclSpecs;
28255
 
class WinMemberExplSpec;
28256
 
class WinTypeKeywords;
28257
 
class PragmaOnceUnitState;
28258
 
class PragmaOnce;
28259
 
class CCExprResolve;
28260
 
class CExprResolve;
28261
 
namespace Puma {
28262
 
 
28263
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28264
 
class CT_CallExpr : public CT_Expression, public CSemObject {
28265
 
#line 28266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28266
 
  friend class ::WinIfExists;
28267
 
  friend class ::WinImportHandler;
28268
 
  friend class ::WinMacros;
28269
 
  friend class ::CMatchSyntax;
28270
 
  friend class ::ExtGnu;
28271
 
  friend class ::ExtAC;
28272
 
  friend class ::ExtACBuilderCoupling;
28273
 
  friend class ::ExtACSyntaxCoupling;
28274
 
  friend class ::ExtACTree;
28275
 
  friend class ::ExtACKeywords;
28276
 
  friend class ::WinAsm;
28277
 
  friend class ::WinDeclSpecs;
28278
 
  friend class ::WinMemberExplSpec;
28279
 
  friend class ::WinTypeKeywords;
28280
 
  friend class ::PragmaOnceUnitState;
28281
 
  friend class ::PragmaOnce;
28282
 
  friend class ::CCExprResolve;
28283
 
  friend class ::CExprResolve;
28284
 
 
28285
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28286
 
 
28287
 
  CTree *sons[2]; // expr, args
28288
 
 
28289
 
public:
28290
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
28291
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
28292
 
  static const char *NodeId ();
28293
 
  const char *NodeName () const { return NodeId (); }
28294
 
  int Sons () const { return CTree::Sons (sons, 2); }
28295
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
28296
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28297
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
28298
 
  }
28299
 
  CTree *Expr () const { return sons[0]; }
28300
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
28301
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
28302
 
   private:
28303
 
  typedef CT_CallExpr CCExprResolveExpr;
28304
 
 
28305
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28306
 
 public :
28307
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28308
 
  typedef CT_CallExpr CExprResolveExpr;
28309
 
 
28310
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28311
 
 public :
28312
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28313
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28314
 
};
28315
 
 
28316
 
 
28317
 
#line 28318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28318
 
} // closed Puma
28319
 
class WinIfExists;
28320
 
class WinImportHandler;
28321
 
class WinMacros;
28322
 
class CMatchSyntax;
28323
 
class ExtGnu;
28324
 
class ExtAC;
28325
 
class ExtACBuilderCoupling;
28326
 
class ExtACSyntaxCoupling;
28327
 
class ExtACTree;
28328
 
class ExtACKeywords;
28329
 
class WinAsm;
28330
 
class WinDeclSpecs;
28331
 
class WinMemberExplSpec;
28332
 
class WinTypeKeywords;
28333
 
class PragmaOnceUnitState;
28334
 
class PragmaOnce;
28335
 
class CCExprResolve;
28336
 
class CExprResolve;
28337
 
namespace Puma {
28338
 
 
28339
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28340
 
class CT_CastExpr : public CT_Expression {
28341
 
#line 28342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28342
 
  friend class ::WinIfExists;
28343
 
  friend class ::WinImportHandler;
28344
 
  friend class ::WinMacros;
28345
 
  friend class ::CMatchSyntax;
28346
 
  friend class ::ExtGnu;
28347
 
  friend class ::ExtAC;
28348
 
  friend class ::ExtACBuilderCoupling;
28349
 
  friend class ::ExtACSyntaxCoupling;
28350
 
  friend class ::ExtACTree;
28351
 
  friend class ::ExtACKeywords;
28352
 
  friend class ::WinAsm;
28353
 
  friend class ::WinDeclSpecs;
28354
 
  friend class ::WinMemberExplSpec;
28355
 
  friend class ::WinTypeKeywords;
28356
 
  friend class ::PragmaOnceUnitState;
28357
 
  friend class ::PragmaOnce;
28358
 
  friend class ::CCExprResolve;
28359
 
  friend class ::CExprResolve;
28360
 
 
28361
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28362
 
 
28363
 
  CTree *sons[4]; // open, type, close, expr
28364
 
 
28365
 
public:
28366
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
28367
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
28368
 
  }
28369
 
  static const char *NodeId ();
28370
 
  const char *NodeName () const { return NodeId (); }
28371
 
  int Sons () const { return 4; }
28372
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
28373
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28374
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
28375
 
  }
28376
 
  CTree *Expr () const { return sons[3]; }
28377
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
28378
 
   private:
28379
 
  typedef CT_CastExpr CCExprResolveExpr;
28380
 
 
28381
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28382
 
 public :
28383
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28384
 
  typedef CT_CastExpr CExprResolveExpr;
28385
 
 
28386
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28387
 
 public :
28388
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28389
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28390
 
};
28391
 
 
28392
 
 
28393
 
#line 28394 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28394
 
} // closed Puma
28395
 
class WinIfExists;
28396
 
class WinImportHandler;
28397
 
class WinMacros;
28398
 
class CMatchSyntax;
28399
 
class ExtGnu;
28400
 
class ExtAC;
28401
 
class ExtACBuilderCoupling;
28402
 
class ExtACSyntaxCoupling;
28403
 
class ExtACTree;
28404
 
class ExtACKeywords;
28405
 
class WinAsm;
28406
 
class WinDeclSpecs;
28407
 
class WinMemberExplSpec;
28408
 
class WinTypeKeywords;
28409
 
class PragmaOnceUnitState;
28410
 
class PragmaOnce;
28411
 
class CCExprResolve;
28412
 
class CExprResolve;
28413
 
namespace Puma {
28414
 
 
28415
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28416
 
class CT_StaticCast : public CT_Expression {
28417
 
#line 28418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28418
 
  friend class ::WinIfExists;
28419
 
  friend class ::WinImportHandler;
28420
 
  friend class ::WinMacros;
28421
 
  friend class ::CMatchSyntax;
28422
 
  friend class ::ExtGnu;
28423
 
  friend class ::ExtAC;
28424
 
  friend class ::ExtACBuilderCoupling;
28425
 
  friend class ::ExtACSyntaxCoupling;
28426
 
  friend class ::ExtACTree;
28427
 
  friend class ::ExtACKeywords;
28428
 
  friend class ::WinAsm;
28429
 
  friend class ::WinDeclSpecs;
28430
 
  friend class ::WinMemberExplSpec;
28431
 
  friend class ::WinTypeKeywords;
28432
 
  friend class ::PragmaOnceUnitState;
28433
 
  friend class ::PragmaOnce;
28434
 
  friend class ::CCExprResolve;
28435
 
  friend class ::CExprResolve;
28436
 
 
28437
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28438
 
 
28439
 
  CTree *sons[5]; // cast, open, type, close, expr
28440
 
 
28441
 
public:
28442
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
28443
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
28444
 
  }
28445
 
  static const char *NodeId ();
28446
 
  const char *NodeName () const { return NodeId (); }
28447
 
  int Sons () const { return 5; }
28448
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
28449
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28450
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
28451
 
  }
28452
 
  CTree *Expr () const { return sons[4]; }
28453
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
28454
 
   private:
28455
 
  typedef CT_StaticCast CCExprResolveExpr;
28456
 
 
28457
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28458
 
 public :
28459
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28460
 
  typedef CT_StaticCast CExprResolveExpr;
28461
 
 
28462
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28463
 
 public :
28464
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28465
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28466
 
};
28467
 
 
28468
 
 
28469
 
#line 28470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28470
 
} // closed Puma
28471
 
class WinIfExists;
28472
 
class WinImportHandler;
28473
 
class WinMacros;
28474
 
class CMatchSyntax;
28475
 
class ExtGnu;
28476
 
class ExtAC;
28477
 
class ExtACBuilderCoupling;
28478
 
class ExtACSyntaxCoupling;
28479
 
class ExtACTree;
28480
 
class ExtACKeywords;
28481
 
class WinAsm;
28482
 
class WinDeclSpecs;
28483
 
class WinMemberExplSpec;
28484
 
class WinTypeKeywords;
28485
 
class PragmaOnceUnitState;
28486
 
class PragmaOnce;
28487
 
class CCExprResolve;
28488
 
class CExprResolve;
28489
 
namespace Puma {
28490
 
 
28491
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28492
 
class CT_ConstCast : public CT_StaticCast {
28493
 
#line 28494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28494
 
  friend class ::WinIfExists;
28495
 
  friend class ::WinImportHandler;
28496
 
  friend class ::WinMacros;
28497
 
  friend class ::CMatchSyntax;
28498
 
  friend class ::ExtGnu;
28499
 
  friend class ::ExtAC;
28500
 
  friend class ::ExtACBuilderCoupling;
28501
 
  friend class ::ExtACSyntaxCoupling;
28502
 
  friend class ::ExtACTree;
28503
 
  friend class ::ExtACKeywords;
28504
 
  friend class ::WinAsm;
28505
 
  friend class ::WinDeclSpecs;
28506
 
  friend class ::WinMemberExplSpec;
28507
 
  friend class ::WinTypeKeywords;
28508
 
  friend class ::PragmaOnceUnitState;
28509
 
  friend class ::PragmaOnce;
28510
 
  friend class ::CCExprResolve;
28511
 
  friend class ::CExprResolve;
28512
 
 
28513
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28514
 
 
28515
 
public:
28516
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
28517
 
    CT_StaticCast (cst, o, t, c, e) {}
28518
 
  static const char *NodeId ();
28519
 
  const char *NodeName () const { return NodeId (); }
28520
 
   private:
28521
 
  typedef CT_ConstCast CCExprResolveExpr;
28522
 
 
28523
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28524
 
 public :
28525
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28526
 
  typedef CT_ConstCast CExprResolveExpr;
28527
 
 
28528
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28529
 
 public :
28530
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28531
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28532
 
};
28533
 
 
28534
 
 
28535
 
#line 28536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28536
 
} // closed Puma
28537
 
class WinIfExists;
28538
 
class WinImportHandler;
28539
 
class WinMacros;
28540
 
class CMatchSyntax;
28541
 
class ExtGnu;
28542
 
class ExtAC;
28543
 
class ExtACBuilderCoupling;
28544
 
class ExtACSyntaxCoupling;
28545
 
class ExtACTree;
28546
 
class ExtACKeywords;
28547
 
class WinAsm;
28548
 
class WinDeclSpecs;
28549
 
class WinMemberExplSpec;
28550
 
class WinTypeKeywords;
28551
 
class PragmaOnceUnitState;
28552
 
class PragmaOnce;
28553
 
class CCExprResolve;
28554
 
class CExprResolve;
28555
 
namespace Puma {
28556
 
 
28557
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28558
 
class CT_ReintCast : public CT_StaticCast {
28559
 
#line 28560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28560
 
  friend class ::WinIfExists;
28561
 
  friend class ::WinImportHandler;
28562
 
  friend class ::WinMacros;
28563
 
  friend class ::CMatchSyntax;
28564
 
  friend class ::ExtGnu;
28565
 
  friend class ::ExtAC;
28566
 
  friend class ::ExtACBuilderCoupling;
28567
 
  friend class ::ExtACSyntaxCoupling;
28568
 
  friend class ::ExtACTree;
28569
 
  friend class ::ExtACKeywords;
28570
 
  friend class ::WinAsm;
28571
 
  friend class ::WinDeclSpecs;
28572
 
  friend class ::WinMemberExplSpec;
28573
 
  friend class ::WinTypeKeywords;
28574
 
  friend class ::PragmaOnceUnitState;
28575
 
  friend class ::PragmaOnce;
28576
 
  friend class ::CCExprResolve;
28577
 
  friend class ::CExprResolve;
28578
 
 
28579
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28580
 
 
28581
 
public:
28582
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
28583
 
    CT_StaticCast (cst, o, t, c, e) {}
28584
 
  static const char *NodeId ();
28585
 
  const char *NodeName () const { return NodeId (); }
28586
 
   private:
28587
 
  typedef CT_ReintCast CCExprResolveExpr;
28588
 
 
28589
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28590
 
 public :
28591
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28592
 
  typedef CT_ReintCast CExprResolveExpr;
28593
 
 
28594
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28595
 
 public :
28596
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28597
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28598
 
};
28599
 
 
28600
 
 
28601
 
#line 28602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28602
 
} // closed Puma
28603
 
class WinIfExists;
28604
 
class WinImportHandler;
28605
 
class WinMacros;
28606
 
class CMatchSyntax;
28607
 
class ExtGnu;
28608
 
class ExtAC;
28609
 
class ExtACBuilderCoupling;
28610
 
class ExtACSyntaxCoupling;
28611
 
class ExtACTree;
28612
 
class ExtACKeywords;
28613
 
class WinAsm;
28614
 
class WinDeclSpecs;
28615
 
class WinMemberExplSpec;
28616
 
class WinTypeKeywords;
28617
 
class PragmaOnceUnitState;
28618
 
class PragmaOnce;
28619
 
class CCExprResolve;
28620
 
class CExprResolve;
28621
 
namespace Puma {
28622
 
 
28623
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28624
 
class CT_DynamicCast : public CT_StaticCast {
28625
 
#line 28626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28626
 
  friend class ::WinIfExists;
28627
 
  friend class ::WinImportHandler;
28628
 
  friend class ::WinMacros;
28629
 
  friend class ::CMatchSyntax;
28630
 
  friend class ::ExtGnu;
28631
 
  friend class ::ExtAC;
28632
 
  friend class ::ExtACBuilderCoupling;
28633
 
  friend class ::ExtACSyntaxCoupling;
28634
 
  friend class ::ExtACTree;
28635
 
  friend class ::ExtACKeywords;
28636
 
  friend class ::WinAsm;
28637
 
  friend class ::WinDeclSpecs;
28638
 
  friend class ::WinMemberExplSpec;
28639
 
  friend class ::WinTypeKeywords;
28640
 
  friend class ::PragmaOnceUnitState;
28641
 
  friend class ::PragmaOnce;
28642
 
  friend class ::CCExprResolve;
28643
 
  friend class ::CExprResolve;
28644
 
 
28645
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28646
 
 
28647
 
public:
28648
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
28649
 
    CT_StaticCast (cst, o, t, c, e) {}
28650
 
  static const char *NodeId ();
28651
 
  const char *NodeName () const { return NodeId (); }
28652
 
   private:
28653
 
  typedef CT_DynamicCast CCExprResolveExpr;
28654
 
 
28655
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28656
 
 public :
28657
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28658
 
  typedef CT_DynamicCast CExprResolveExpr;
28659
 
 
28660
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28661
 
 public :
28662
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28663
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28664
 
};
28665
 
 
28666
 
 
28667
 
#line 28668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28668
 
} // closed Puma
28669
 
class WinIfExists;
28670
 
class WinImportHandler;
28671
 
class WinMacros;
28672
 
class CMatchSyntax;
28673
 
class ExtGnu;
28674
 
class ExtAC;
28675
 
class ExtACBuilderCoupling;
28676
 
class ExtACSyntaxCoupling;
28677
 
class ExtACTree;
28678
 
class ExtACKeywords;
28679
 
class WinAsm;
28680
 
class WinDeclSpecs;
28681
 
class WinMemberExplSpec;
28682
 
class WinTypeKeywords;
28683
 
class PragmaOnceUnitState;
28684
 
class PragmaOnce;
28685
 
class CCExprResolve;
28686
 
class CExprResolve;
28687
 
namespace Puma {
28688
 
 
28689
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28690
 
class CT_ImplicitCast : public CT_Expression {
28691
 
#line 28692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28692
 
  friend class ::WinIfExists;
28693
 
  friend class ::WinImportHandler;
28694
 
  friend class ::WinMacros;
28695
 
  friend class ::CMatchSyntax;
28696
 
  friend class ::ExtGnu;
28697
 
  friend class ::ExtAC;
28698
 
  friend class ::ExtACBuilderCoupling;
28699
 
  friend class ::ExtACSyntaxCoupling;
28700
 
  friend class ::ExtACTree;
28701
 
  friend class ::ExtACKeywords;
28702
 
  friend class ::WinAsm;
28703
 
  friend class ::WinDeclSpecs;
28704
 
  friend class ::WinMemberExplSpec;
28705
 
  friend class ::WinTypeKeywords;
28706
 
  friend class ::PragmaOnceUnitState;
28707
 
  friend class ::PragmaOnce;
28708
 
  friend class ::CCExprResolve;
28709
 
  friend class ::CExprResolve;
28710
 
 
28711
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28712
 
 
28713
 
  CTree *_expr; // casted expression
28714
 
 
28715
 
public:
28716
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
28717
 
  static const char *NodeId ();
28718
 
  const char *NodeName () const { return NodeId (); }
28719
 
  int Sons () const { return 1; }
28720
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
28721
 
  CTree *Expr () const { return _expr; }
28722
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
28723
 
   { if (old_son == _expr) _expr = new_son; }
28724
 
   private:
28725
 
  typedef CT_ImplicitCast CCExprResolveExpr;
28726
 
 
28727
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28728
 
 public :
28729
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28730
 
  typedef CT_ImplicitCast CExprResolveExpr;
28731
 
 
28732
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28733
 
 public :
28734
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28735
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28736
 
};
28737
 
 
28738
 
 
28739
 
#line 28740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28740
 
} // closed Puma
28741
 
class WinIfExists;
28742
 
class WinImportHandler;
28743
 
class WinMacros;
28744
 
class CMatchSyntax;
28745
 
class ExtGnu;
28746
 
class ExtAC;
28747
 
class ExtACBuilderCoupling;
28748
 
class ExtACSyntaxCoupling;
28749
 
class ExtACTree;
28750
 
class ExtACKeywords;
28751
 
class WinAsm;
28752
 
class WinDeclSpecs;
28753
 
class WinMemberExplSpec;
28754
 
class WinTypeKeywords;
28755
 
class PragmaOnceUnitState;
28756
 
class PragmaOnce;
28757
 
class CCExprResolve;
28758
 
class CExprResolve;
28759
 
namespace Puma {
28760
 
 
28761
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28762
 
class CT_TypeidExpr : public CT_Expression {
28763
 
#line 28764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28764
 
  friend class ::WinIfExists;
28765
 
  friend class ::WinImportHandler;
28766
 
  friend class ::WinMacros;
28767
 
  friend class ::CMatchSyntax;
28768
 
  friend class ::ExtGnu;
28769
 
  friend class ::ExtAC;
28770
 
  friend class ::ExtACBuilderCoupling;
28771
 
  friend class ::ExtACSyntaxCoupling;
28772
 
  friend class ::ExtACTree;
28773
 
  friend class ::ExtACKeywords;
28774
 
  friend class ::WinAsm;
28775
 
  friend class ::WinDeclSpecs;
28776
 
  friend class ::WinMemberExplSpec;
28777
 
  friend class ::WinTypeKeywords;
28778
 
  friend class ::PragmaOnceUnitState;
28779
 
  friend class ::PragmaOnce;
28780
 
  friend class ::CCExprResolve;
28781
 
  friend class ::CExprResolve;
28782
 
 
28783
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28784
 
 
28785
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
28786
 
 
28787
 
public:
28788
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
28789
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
28790
 
  }
28791
 
  static const char *NodeId ();
28792
 
  const char *NodeName () const { return NodeId (); }
28793
 
  int Sons () const { return 4; }
28794
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
28795
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28796
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
28797
 
  }
28798
 
  CTree *Arg () const { return sons[2]; }
28799
 
   private:
28800
 
  typedef CT_TypeidExpr CCExprResolveExpr;
28801
 
 
28802
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28803
 
 public :
28804
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28805
 
  typedef CT_TypeidExpr CExprResolveExpr;
28806
 
 
28807
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28808
 
 public :
28809
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28810
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28811
 
};
28812
 
 
28813
 
 
28814
 
#line 28815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28815
 
} // closed Puma
28816
 
class WinIfExists;
28817
 
class WinImportHandler;
28818
 
class WinMacros;
28819
 
class CMatchSyntax;
28820
 
class ExtGnu;
28821
 
class ExtAC;
28822
 
class ExtACBuilderCoupling;
28823
 
class ExtACSyntaxCoupling;
28824
 
class ExtACTree;
28825
 
class ExtACKeywords;
28826
 
class WinAsm;
28827
 
class WinDeclSpecs;
28828
 
class WinMemberExplSpec;
28829
 
class WinTypeKeywords;
28830
 
class PragmaOnceUnitState;
28831
 
class PragmaOnce;
28832
 
class CCExprResolve;
28833
 
class CExprResolve;
28834
 
namespace Puma {
28835
 
 
28836
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28837
 
class CT_SizeofExpr : public CT_Expression {
28838
 
#line 28839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28839
 
  friend class ::WinIfExists;
28840
 
  friend class ::WinImportHandler;
28841
 
  friend class ::WinMacros;
28842
 
  friend class ::CMatchSyntax;
28843
 
  friend class ::ExtGnu;
28844
 
  friend class ::ExtAC;
28845
 
  friend class ::ExtACBuilderCoupling;
28846
 
  friend class ::ExtACSyntaxCoupling;
28847
 
  friend class ::ExtACTree;
28848
 
  friend class ::ExtACKeywords;
28849
 
  friend class ::WinAsm;
28850
 
  friend class ::WinDeclSpecs;
28851
 
  friend class ::WinMemberExplSpec;
28852
 
  friend class ::WinTypeKeywords;
28853
 
  friend class ::PragmaOnceUnitState;
28854
 
  friend class ::PragmaOnce;
28855
 
  friend class ::CCExprResolve;
28856
 
  friend class ::CExprResolve;
28857
 
 
28858
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28859
 
 
28860
 
  CTree *sons[5]; // key, open, type, close, expr
28861
 
 
28862
 
public:
28863
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
28864
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
28865
 
  }
28866
 
  CT_SizeofExpr (CTree *k, CTree *e) {
28867
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
28868
 
  }
28869
 
  static const char *NodeId ();
28870
 
  const char *NodeName () const { return NodeId (); }
28871
 
  int Sons () const { return CTree::Sons (sons, 5); }
28872
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
28873
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28874
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
28875
 
  }
28876
 
  CTree *Expr () const { return sons[4]; }
28877
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
28878
 
   private:
28879
 
  typedef CT_SizeofExpr CCExprResolveExpr;
28880
 
 
28881
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28882
 
 public :
28883
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28884
 
  typedef CT_SizeofExpr CExprResolveExpr;
28885
 
 
28886
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28887
 
 public :
28888
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28889
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28890
 
};
28891
 
 
28892
 
 
28893
 
#line 28894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28894
 
} // closed Puma
28895
 
class WinIfExists;
28896
 
class WinImportHandler;
28897
 
class WinMacros;
28898
 
class CMatchSyntax;
28899
 
class ExtGnu;
28900
 
class ExtAC;
28901
 
class ExtACBuilderCoupling;
28902
 
class ExtACSyntaxCoupling;
28903
 
class ExtACTree;
28904
 
class ExtACKeywords;
28905
 
class WinAsm;
28906
 
class WinDeclSpecs;
28907
 
class WinMemberExplSpec;
28908
 
class WinTypeKeywords;
28909
 
class PragmaOnceUnitState;
28910
 
class PragmaOnce;
28911
 
class CCExprResolve;
28912
 
class CExprResolve;
28913
 
namespace Puma {
28914
 
 
28915
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28916
 
class CT_IndexDesignator : public CT_Expression {
28917
 
#line 28918 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28918
 
  friend class ::WinIfExists;
28919
 
  friend class ::WinImportHandler;
28920
 
  friend class ::WinMacros;
28921
 
  friend class ::CMatchSyntax;
28922
 
  friend class ::ExtGnu;
28923
 
  friend class ::ExtAC;
28924
 
  friend class ::ExtACBuilderCoupling;
28925
 
  friend class ::ExtACSyntaxCoupling;
28926
 
  friend class ::ExtACTree;
28927
 
  friend class ::ExtACKeywords;
28928
 
  friend class ::WinAsm;
28929
 
  friend class ::WinDeclSpecs;
28930
 
  friend class ::WinMemberExplSpec;
28931
 
  friend class ::WinTypeKeywords;
28932
 
  friend class ::PragmaOnceUnitState;
28933
 
  friend class ::PragmaOnce;
28934
 
  friend class ::CCExprResolve;
28935
 
  friend class ::CExprResolve;
28936
 
 
28937
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28938
 
 
28939
 
  CTree *sons[3]; // open, index, close
28940
 
 
28941
 
public:
28942
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
28943
 
    sons[0] = o; sons[1] = i; sons[2] = c;
28944
 
  }
28945
 
  static const char *NodeId ();
28946
 
  const char *NodeName () const { return NodeId (); }
28947
 
  int Sons () const { return 3; }
28948
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
28949
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28950
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
28951
 
  }
28952
 
   private:
28953
 
  typedef CT_IndexDesignator CCExprResolveExpr;
28954
 
 
28955
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28956
 
 public :
28957
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28958
 
  typedef CT_IndexDesignator CExprResolveExpr;
28959
 
 
28960
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28961
 
 public :
28962
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28963
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28964
 
};
28965
 
 
28966
 
 
28967
 
#line 28968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28968
 
} // closed Puma
28969
 
class WinIfExists;
28970
 
class WinImportHandler;
28971
 
class WinMacros;
28972
 
class CMatchSyntax;
28973
 
class ExtGnu;
28974
 
class ExtAC;
28975
 
class ExtACBuilderCoupling;
28976
 
class ExtACSyntaxCoupling;
28977
 
class ExtACTree;
28978
 
class ExtACKeywords;
28979
 
class WinAsm;
28980
 
class WinDeclSpecs;
28981
 
class WinMemberExplSpec;
28982
 
class WinTypeKeywords;
28983
 
class PragmaOnceUnitState;
28984
 
class PragmaOnce;
28985
 
class CCExprResolve;
28986
 
class CExprResolve;
28987
 
namespace Puma {
28988
 
 
28989
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28990
 
class CT_MembDesignator : public CT_Expression {
28991
 
#line 28992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
28992
 
  friend class ::WinIfExists;
28993
 
  friend class ::WinImportHandler;
28994
 
  friend class ::WinMacros;
28995
 
  friend class ::CMatchSyntax;
28996
 
  friend class ::ExtGnu;
28997
 
  friend class ::ExtAC;
28998
 
  friend class ::ExtACBuilderCoupling;
28999
 
  friend class ::ExtACSyntaxCoupling;
29000
 
  friend class ::ExtACTree;
29001
 
  friend class ::ExtACKeywords;
29002
 
  friend class ::WinAsm;
29003
 
  friend class ::WinDeclSpecs;
29004
 
  friend class ::WinMemberExplSpec;
29005
 
  friend class ::WinTypeKeywords;
29006
 
  friend class ::PragmaOnceUnitState;
29007
 
  friend class ::PragmaOnce;
29008
 
  friend class ::CCExprResolve;
29009
 
  friend class ::CExprResolve;
29010
 
 
29011
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29012
 
 
29013
 
  CTree *sons[2]; // dot, member
29014
 
 
29015
 
public:
29016
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
29017
 
  static const char *NodeId ();
29018
 
  const char *NodeName () const { return NodeId (); }
29019
 
  int Sons () const { return 2; }
29020
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
29021
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29022
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29023
 
  }
29024
 
   private:
29025
 
  typedef CT_MembDesignator CCExprResolveExpr;
29026
 
 
29027
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29028
 
 public :
29029
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29030
 
  typedef CT_MembDesignator CExprResolveExpr;
29031
 
 
29032
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29033
 
 public :
29034
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29035
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29036
 
};
29037
 
 
29038
 
 
29039
 
#line 29040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29040
 
} // closed Puma
29041
 
class WinIfExists;
29042
 
class WinImportHandler;
29043
 
class WinMacros;
29044
 
class CMatchSyntax;
29045
 
class ExtGnu;
29046
 
class ExtAC;
29047
 
class ExtACBuilderCoupling;
29048
 
class ExtACSyntaxCoupling;
29049
 
class ExtACTree;
29050
 
class ExtACKeywords;
29051
 
class WinAsm;
29052
 
class WinDeclSpecs;
29053
 
class WinMemberExplSpec;
29054
 
class WinTypeKeywords;
29055
 
class PragmaOnceUnitState;
29056
 
class PragmaOnce;
29057
 
class CCExprResolve;
29058
 
class CExprResolve;
29059
 
namespace Puma {
29060
 
 
29061
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29062
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
29063
 
#line 29064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29064
 
  friend class ::WinIfExists;
29065
 
  friend class ::WinImportHandler;
29066
 
  friend class ::WinMacros;
29067
 
  friend class ::CMatchSyntax;
29068
 
  friend class ::ExtGnu;
29069
 
  friend class ::ExtAC;
29070
 
  friend class ::ExtACBuilderCoupling;
29071
 
  friend class ::ExtACSyntaxCoupling;
29072
 
  friend class ::ExtACTree;
29073
 
  friend class ::ExtACKeywords;
29074
 
  friend class ::WinAsm;
29075
 
  friend class ::WinDeclSpecs;
29076
 
  friend class ::WinMemberExplSpec;
29077
 
  friend class ::WinTypeKeywords;
29078
 
  friend class ::PragmaOnceUnitState;
29079
 
  friend class ::PragmaOnce;
29080
 
  friend class ::CCExprResolve;
29081
 
  friend class ::CExprResolve;
29082
 
 
29083
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29084
 
 
29085
 
public:
29086
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
29087
 
  static const char *NodeId ();
29088
 
  const char *NodeName () const { return NodeId (); }
29089
 
 
29090
 
  CTypeInfo *Type () const { return type; }
29091
 
  CExprValue *Value () const { return value; }
29092
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
29093
 
};
29094
 
 
29095
 
/*****************************************************************************/
29096
 
/*                                                                           */
29097
 
/*                         Declaration specifiers                            */
29098
 
/*                                                                           */
29099
 
/*****************************************************************************/
29100
 
 
29101
 
 
29102
 
#line 29103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29103
 
} // closed Puma
29104
 
class WinIfExists;
29105
 
class WinImportHandler;
29106
 
class WinMacros;
29107
 
class CMatchSyntax;
29108
 
class ExtGnu;
29109
 
class ExtAC;
29110
 
class ExtACBuilderCoupling;
29111
 
class ExtACSyntaxCoupling;
29112
 
class ExtACTree;
29113
 
class ExtACKeywords;
29114
 
class WinAsm;
29115
 
class WinDeclSpecs;
29116
 
class WinMemberExplSpec;
29117
 
class WinTypeKeywords;
29118
 
class PragmaOnceUnitState;
29119
 
class PragmaOnce;
29120
 
class CCExprResolve;
29121
 
class CExprResolve;
29122
 
namespace Puma {
29123
 
 
29124
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29125
 
class CT_DeclSpec : public CTree {
29126
 
#line 29127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29127
 
  friend class ::WinIfExists;
29128
 
  friend class ::WinImportHandler;
29129
 
  friend class ::WinMacros;
29130
 
  friend class ::CMatchSyntax;
29131
 
  friend class ::ExtGnu;
29132
 
  friend class ::ExtAC;
29133
 
  friend class ::ExtACBuilderCoupling;
29134
 
  friend class ::ExtACSyntaxCoupling;
29135
 
  friend class ::ExtACTree;
29136
 
  friend class ::ExtACKeywords;
29137
 
  friend class ::WinAsm;
29138
 
  friend class ::WinDeclSpecs;
29139
 
  friend class ::WinMemberExplSpec;
29140
 
  friend class ::WinTypeKeywords;
29141
 
  friend class ::PragmaOnceUnitState;
29142
 
  friend class ::PragmaOnce;
29143
 
  friend class ::CCExprResolve;
29144
 
  friend class ::CExprResolve;
29145
 
 
29146
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29147
 
 
29148
 
protected:
29149
 
  CT_DeclSpec () {}
29150
 
};
29151
 
 
29152
 
 
29153
 
#line 29154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29154
 
} // closed Puma
29155
 
class WinIfExists;
29156
 
class WinImportHandler;
29157
 
class WinMacros;
29158
 
class CMatchSyntax;
29159
 
class ExtGnu;
29160
 
class ExtAC;
29161
 
class ExtACBuilderCoupling;
29162
 
class ExtACSyntaxCoupling;
29163
 
class ExtACTree;
29164
 
class ExtACKeywords;
29165
 
class WinAsm;
29166
 
class WinDeclSpecs;
29167
 
class WinMemberExplSpec;
29168
 
class WinTypeKeywords;
29169
 
class PragmaOnceUnitState;
29170
 
class PragmaOnce;
29171
 
class CCExprResolve;
29172
 
class CExprResolve;
29173
 
namespace Puma {
29174
 
 
29175
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29176
 
class CT_PrimDeclSpec : public CT_DeclSpec {
29177
 
#line 29178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29178
 
  friend class ::WinIfExists;
29179
 
  friend class ::WinImportHandler;
29180
 
  friend class ::WinMacros;
29181
 
  friend class ::CMatchSyntax;
29182
 
  friend class ::ExtGnu;
29183
 
  friend class ::ExtAC;
29184
 
  friend class ::ExtACBuilderCoupling;
29185
 
  friend class ::ExtACSyntaxCoupling;
29186
 
  friend class ::ExtACTree;
29187
 
  friend class ::ExtACKeywords;
29188
 
  friend class ::WinAsm;
29189
 
  friend class ::WinDeclSpecs;
29190
 
  friend class ::WinMemberExplSpec;
29191
 
  friend class ::WinTypeKeywords;
29192
 
  friend class ::PragmaOnceUnitState;
29193
 
  friend class ::PragmaOnce;
29194
 
  friend class ::CCExprResolve;
29195
 
  friend class ::CExprResolve;
29196
 
 
29197
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29198
 
 
29199
 
public:
29200
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
29201
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
29202
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
29203
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
29204
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
29205
 
              // AspectC++ specific type specifier
29206
 
              PDS_UNKNOWN_T,
29207
 
              // Win specific declaration specifiers
29208
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
29209
 
              PDS_UNKNOWN, PDS_NUM };
29210
 
 
29211
 
private:
29212
 
  Type _type;
29213
 
  CT_Token *_token;
29214
 
 
29215
 
  void determine_type ();
29216
 
 
29217
 
public:
29218
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
29219
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
29220
 
  static const char *NodeId ();
29221
 
  const char *NodeName () const { return NodeId (); }
29222
 
  int Sons () const { return _token ? 1 : 0; }
29223
 
  CTree *Son (int n) const 
29224
 
   { return (n == 0) ? _token : (CTree*)0; }
29225
 
  const char *SpecText () const 
29226
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
29227
 
  Type SpecType () const { return _type; }
29228
 
  static const int NumTypes = PDS_NUM;
29229
 
};
29230
 
 
29231
 
 
29232
 
#line 29233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29233
 
} // closed Puma
29234
 
class WinIfExists;
29235
 
class WinImportHandler;
29236
 
class WinMacros;
29237
 
class CMatchSyntax;
29238
 
class ExtGnu;
29239
 
class ExtAC;
29240
 
class ExtACBuilderCoupling;
29241
 
class ExtACSyntaxCoupling;
29242
 
class ExtACTree;
29243
 
class ExtACKeywords;
29244
 
class WinAsm;
29245
 
class WinDeclSpecs;
29246
 
class WinMemberExplSpec;
29247
 
class WinTypeKeywords;
29248
 
class PragmaOnceUnitState;
29249
 
class PragmaOnce;
29250
 
class CCExprResolve;
29251
 
class CExprResolve;
29252
 
namespace Puma {
29253
 
 
29254
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29255
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
29256
 
#line 29257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29257
 
  friend class ::WinIfExists;
29258
 
  friend class ::WinImportHandler;
29259
 
  friend class ::WinMacros;
29260
 
  friend class ::CMatchSyntax;
29261
 
  friend class ::ExtGnu;
29262
 
  friend class ::ExtAC;
29263
 
  friend class ::ExtACBuilderCoupling;
29264
 
  friend class ::ExtACSyntaxCoupling;
29265
 
  friend class ::ExtACTree;
29266
 
  friend class ::ExtACKeywords;
29267
 
  friend class ::WinAsm;
29268
 
  friend class ::WinDeclSpecs;
29269
 
  friend class ::WinMemberExplSpec;
29270
 
  friend class ::WinTypeKeywords;
29271
 
  friend class ::PragmaOnceUnitState;
29272
 
  friend class ::PragmaOnce;
29273
 
  friend class ::CCExprResolve;
29274
 
  friend class ::CExprResolve;
29275
 
 
29276
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29277
 
 
29278
 
  CTree *sons[2]; // declspecs, declarator
29279
 
 
29280
 
public:
29281
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
29282
 
  static const char *NodeId ();
29283
 
  const char *NodeName () const { return NodeId (); }
29284
 
  int Sons () const { return CTree::Sons (sons, 2); }
29285
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
29286
 
  CTree *Declarator () const { return sons[1]; }
29287
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29288
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29289
 
  }
29290
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29291
 
};
29292
 
      
29293
 
 
29294
 
#line 29295 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29295
 
} // closed Puma
29296
 
class WinIfExists;
29297
 
class WinImportHandler;
29298
 
class WinMacros;
29299
 
class CMatchSyntax;
29300
 
class ExtGnu;
29301
 
class ExtAC;
29302
 
class ExtACBuilderCoupling;
29303
 
class ExtACSyntaxCoupling;
29304
 
class ExtACTree;
29305
 
class ExtACKeywords;
29306
 
class WinAsm;
29307
 
class WinDeclSpecs;
29308
 
class WinMemberExplSpec;
29309
 
class WinTypeKeywords;
29310
 
class PragmaOnceUnitState;
29311
 
class PragmaOnce;
29312
 
class CCExprResolve;
29313
 
class CExprResolve;
29314
 
namespace Puma {
29315
 
 
29316
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29317
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
29318
 
#line 29319 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29319
 
  friend class ::WinIfExists;
29320
 
  friend class ::WinImportHandler;
29321
 
  friend class ::WinMacros;
29322
 
  friend class ::CMatchSyntax;
29323
 
  friend class ::ExtGnu;
29324
 
  friend class ::ExtAC;
29325
 
  friend class ::ExtACBuilderCoupling;
29326
 
  friend class ::ExtACSyntaxCoupling;
29327
 
  friend class ::ExtACTree;
29328
 
  friend class ::ExtACKeywords;
29329
 
  friend class ::WinAsm;
29330
 
  friend class ::WinDeclSpecs;
29331
 
  friend class ::WinMemberExplSpec;
29332
 
  friend class ::WinTypeKeywords;
29333
 
  friend class ::PragmaOnceUnitState;
29334
 
  friend class ::PragmaOnce;
29335
 
  friend class ::CCExprResolve;
29336
 
  friend class ::CExprResolve;
29337
 
 
29338
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29339
 
 
29340
 
  CTree *sons[2]; // key, name
29341
 
  
29342
 
public:
29343
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
29344
 
  static const char *NodeId ();
29345
 
  const char *NodeName () const { return NodeId (); }
29346
 
  int Sons () const { return 2; }
29347
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
29348
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
29349
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29350
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29351
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29352
 
  }
29353
 
};
29354
 
 
29355
 
 
29356
 
#line 29357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29357
 
} // closed Puma
29358
 
class WinIfExists;
29359
 
class WinImportHandler;
29360
 
class WinMacros;
29361
 
class CMatchSyntax;
29362
 
class ExtGnu;
29363
 
class ExtAC;
29364
 
class ExtACBuilderCoupling;
29365
 
class ExtACSyntaxCoupling;
29366
 
class ExtACTree;
29367
 
class ExtACKeywords;
29368
 
class WinAsm;
29369
 
class WinDeclSpecs;
29370
 
class WinMemberExplSpec;
29371
 
class WinTypeKeywords;
29372
 
class PragmaOnceUnitState;
29373
 
class PragmaOnce;
29374
 
class CCExprResolve;
29375
 
class CExprResolve;
29376
 
namespace Puma {
29377
 
 
29378
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29379
 
class CT_UnionSpec : public CT_ClassSpec {
29380
 
#line 29381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29381
 
  friend class ::WinIfExists;
29382
 
  friend class ::WinImportHandler;
29383
 
  friend class ::WinMacros;
29384
 
  friend class ::CMatchSyntax;
29385
 
  friend class ::ExtGnu;
29386
 
  friend class ::ExtAC;
29387
 
  friend class ::ExtACBuilderCoupling;
29388
 
  friend class ::ExtACSyntaxCoupling;
29389
 
  friend class ::ExtACTree;
29390
 
  friend class ::ExtACKeywords;
29391
 
  friend class ::WinAsm;
29392
 
  friend class ::WinDeclSpecs;
29393
 
  friend class ::WinMemberExplSpec;
29394
 
  friend class ::WinTypeKeywords;
29395
 
  friend class ::PragmaOnceUnitState;
29396
 
  friend class ::PragmaOnce;
29397
 
  friend class ::CCExprResolve;
29398
 
  friend class ::CExprResolve;
29399
 
 
29400
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29401
 
 
29402
 
public:
29403
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
29404
 
  static const char *NodeId ();
29405
 
  const char *NodeName () const { return NodeId (); }
29406
 
};
29407
 
 
29408
 
 
29409
 
#line 29410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29410
 
} // closed Puma
29411
 
class WinIfExists;
29412
 
class WinImportHandler;
29413
 
class WinMacros;
29414
 
class CMatchSyntax;
29415
 
class ExtGnu;
29416
 
class ExtAC;
29417
 
class ExtACBuilderCoupling;
29418
 
class ExtACSyntaxCoupling;
29419
 
class ExtACTree;
29420
 
class ExtACKeywords;
29421
 
class WinAsm;
29422
 
class WinDeclSpecs;
29423
 
class WinMemberExplSpec;
29424
 
class WinTypeKeywords;
29425
 
class PragmaOnceUnitState;
29426
 
class PragmaOnce;
29427
 
class CCExprResolve;
29428
 
class CExprResolve;
29429
 
namespace Puma {
29430
 
 
29431
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29432
 
class CT_EnumSpec : public CT_ClassSpec {
29433
 
#line 29434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29434
 
  friend class ::WinIfExists;
29435
 
  friend class ::WinImportHandler;
29436
 
  friend class ::WinMacros;
29437
 
  friend class ::CMatchSyntax;
29438
 
  friend class ::ExtGnu;
29439
 
  friend class ::ExtAC;
29440
 
  friend class ::ExtACBuilderCoupling;
29441
 
  friend class ::ExtACSyntaxCoupling;
29442
 
  friend class ::ExtACTree;
29443
 
  friend class ::ExtACKeywords;
29444
 
  friend class ::WinAsm;
29445
 
  friend class ::WinDeclSpecs;
29446
 
  friend class ::WinMemberExplSpec;
29447
 
  friend class ::WinTypeKeywords;
29448
 
  friend class ::PragmaOnceUnitState;
29449
 
  friend class ::PragmaOnce;
29450
 
  friend class ::CCExprResolve;
29451
 
  friend class ::CExprResolve;
29452
 
 
29453
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29454
 
 
29455
 
public:
29456
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
29457
 
  static const char *NodeId ();
29458
 
  const char *NodeName () const { return NodeId (); }
29459
 
};
29460
 
 
29461
 
 
29462
 
#line 29463 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29463
 
} // closed Puma
29464
 
class WinIfExists;
29465
 
class WinImportHandler;
29466
 
class WinMacros;
29467
 
class CMatchSyntax;
29468
 
class ExtGnu;
29469
 
class ExtAC;
29470
 
class ExtACBuilderCoupling;
29471
 
class ExtACSyntaxCoupling;
29472
 
class ExtACTree;
29473
 
class ExtACKeywords;
29474
 
class WinAsm;
29475
 
class WinDeclSpecs;
29476
 
class WinMemberExplSpec;
29477
 
class WinTypeKeywords;
29478
 
class PragmaOnceUnitState;
29479
 
class PragmaOnce;
29480
 
class CCExprResolve;
29481
 
class CExprResolve;
29482
 
namespace Puma {
29483
 
 
29484
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29485
 
class CT_ExceptionSpec : public CT_DeclSpec {
29486
 
#line 29487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29487
 
  friend class ::WinIfExists;
29488
 
  friend class ::WinImportHandler;
29489
 
  friend class ::WinMacros;
29490
 
  friend class ::CMatchSyntax;
29491
 
  friend class ::ExtGnu;
29492
 
  friend class ::ExtAC;
29493
 
  friend class ::ExtACBuilderCoupling;
29494
 
  friend class ::ExtACSyntaxCoupling;
29495
 
  friend class ::ExtACTree;
29496
 
  friend class ::ExtACKeywords;
29497
 
  friend class ::WinAsm;
29498
 
  friend class ::WinDeclSpecs;
29499
 
  friend class ::WinMemberExplSpec;
29500
 
  friend class ::WinTypeKeywords;
29501
 
  friend class ::PragmaOnceUnitState;
29502
 
  friend class ::PragmaOnce;
29503
 
  friend class ::CCExprResolve;
29504
 
  friend class ::CExprResolve;
29505
 
 
29506
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29507
 
 
29508
 
  CTree *sons[2]; // throw, type_id_list
29509
 
  
29510
 
public:
29511
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
29512
 
  static const char *NodeId ();
29513
 
  const char *NodeName () const { return NodeId (); }
29514
 
  int Sons () const { return 2; }
29515
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
29516
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
29517
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29518
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29519
 
  }
29520
 
};
29521
 
 
29522
 
/*****************************************************************************/
29523
 
/*                                                                           */
29524
 
/*                              Declarations                                 */
29525
 
/*                                                                           */
29526
 
/*****************************************************************************/
29527
 
 
29528
 
 
29529
 
#line 29530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29530
 
} // closed Puma
29531
 
class WinIfExists;
29532
 
class WinImportHandler;
29533
 
class WinMacros;
29534
 
class CMatchSyntax;
29535
 
class ExtGnu;
29536
 
class ExtAC;
29537
 
class ExtACBuilderCoupling;
29538
 
class ExtACSyntaxCoupling;
29539
 
class ExtACTree;
29540
 
class ExtACKeywords;
29541
 
class WinAsm;
29542
 
class WinDeclSpecs;
29543
 
class WinMemberExplSpec;
29544
 
class WinTypeKeywords;
29545
 
class PragmaOnceUnitState;
29546
 
class PragmaOnce;
29547
 
class CCExprResolve;
29548
 
class CExprResolve;
29549
 
namespace Puma {
29550
 
 
29551
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29552
 
class CT_Decl : public CTree {
29553
 
#line 29554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29554
 
  friend class ::WinIfExists;
29555
 
  friend class ::WinImportHandler;
29556
 
  friend class ::WinMacros;
29557
 
  friend class ::CMatchSyntax;
29558
 
  friend class ::ExtGnu;
29559
 
  friend class ::ExtAC;
29560
 
  friend class ::ExtACBuilderCoupling;
29561
 
  friend class ::ExtACSyntaxCoupling;
29562
 
  friend class ::ExtACTree;
29563
 
  friend class ::ExtACKeywords;
29564
 
  friend class ::WinAsm;
29565
 
  friend class ::WinDeclSpecs;
29566
 
  friend class ::WinMemberExplSpec;
29567
 
  friend class ::WinTypeKeywords;
29568
 
  friend class ::PragmaOnceUnitState;
29569
 
  friend class ::PragmaOnce;
29570
 
  friend class ::CCExprResolve;
29571
 
  friend class ::CExprResolve;
29572
 
 
29573
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29574
 
 
29575
 
  CT_LinkageSpec *_linkage;
29576
 
protected:
29577
 
  CT_Decl () : _linkage (0) {}
29578
 
public:
29579
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
29580
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
29581
 
};
29582
 
 
29583
 
 
29584
 
#line 29585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29585
 
} // closed Puma
29586
 
class WinIfExists;
29587
 
class WinImportHandler;
29588
 
class WinMacros;
29589
 
class CMatchSyntax;
29590
 
class ExtGnu;
29591
 
class ExtAC;
29592
 
class ExtACBuilderCoupling;
29593
 
class ExtACSyntaxCoupling;
29594
 
class ExtACTree;
29595
 
class ExtACKeywords;
29596
 
class WinAsm;
29597
 
class WinDeclSpecs;
29598
 
class WinMemberExplSpec;
29599
 
class WinTypeKeywords;
29600
 
class PragmaOnceUnitState;
29601
 
class PragmaOnce;
29602
 
class CCExprResolve;
29603
 
class CExprResolve;
29604
 
namespace Puma {
29605
 
 
29606
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29607
 
class CT_Program : public CT_DeclList, public CSemScope {
29608
 
#line 29609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29609
 
  friend class ::WinIfExists;
29610
 
  friend class ::WinImportHandler;
29611
 
  friend class ::WinMacros;
29612
 
  friend class ::CMatchSyntax;
29613
 
  friend class ::ExtGnu;
29614
 
  friend class ::ExtAC;
29615
 
  friend class ::ExtACBuilderCoupling;
29616
 
  friend class ::ExtACSyntaxCoupling;
29617
 
  friend class ::ExtACTree;
29618
 
  friend class ::ExtACKeywords;
29619
 
  friend class ::WinAsm;
29620
 
  friend class ::WinDeclSpecs;
29621
 
  friend class ::WinMemberExplSpec;
29622
 
  friend class ::WinTypeKeywords;
29623
 
  friend class ::PragmaOnceUnitState;
29624
 
  friend class ::PragmaOnce;
29625
 
  friend class ::CCExprResolve;
29626
 
  friend class ::CExprResolve;
29627
 
 
29628
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29629
 
 
29630
 
public:
29631
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
29632
 
  static const char *NodeId ();
29633
 
  const char *NodeName () const { return NodeId (); }
29634
 
};
29635
 
   
29636
 
 
29637
 
#line 29638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29638
 
} // closed Puma
29639
 
class WinIfExists;
29640
 
class WinImportHandler;
29641
 
class WinMacros;
29642
 
class CMatchSyntax;
29643
 
class ExtGnu;
29644
 
class ExtAC;
29645
 
class ExtACBuilderCoupling;
29646
 
class ExtACSyntaxCoupling;
29647
 
class ExtACTree;
29648
 
class ExtACKeywords;
29649
 
class WinAsm;
29650
 
class WinDeclSpecs;
29651
 
class WinMemberExplSpec;
29652
 
class WinTypeKeywords;
29653
 
class PragmaOnceUnitState;
29654
 
class PragmaOnce;
29655
 
class CCExprResolve;
29656
 
class CExprResolve;
29657
 
namespace Puma {
29658
 
 
29659
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29660
 
class CT_ObjDecl : public CT_Decl {
29661
 
#line 29662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29662
 
  friend class ::WinIfExists;
29663
 
  friend class ::WinImportHandler;
29664
 
  friend class ::WinMacros;
29665
 
  friend class ::CMatchSyntax;
29666
 
  friend class ::ExtGnu;
29667
 
  friend class ::ExtAC;
29668
 
  friend class ::ExtACBuilderCoupling;
29669
 
  friend class ::ExtACSyntaxCoupling;
29670
 
  friend class ::ExtACTree;
29671
 
  friend class ::ExtACKeywords;
29672
 
  friend class ::WinAsm;
29673
 
  friend class ::WinDeclSpecs;
29674
 
  friend class ::WinMemberExplSpec;
29675
 
  friend class ::WinTypeKeywords;
29676
 
  friend class ::PragmaOnceUnitState;
29677
 
  friend class ::PragmaOnce;
29678
 
  friend class ::CCExprResolve;
29679
 
  friend class ::CExprResolve;
29680
 
 
29681
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29682
 
 
29683
 
  CTree *sons[3]; // declspecs, declarators, colon
29684
 
 
29685
 
public:
29686
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
29687
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
29688
 
  }
29689
 
  static const char *NodeId ();
29690
 
  const char *NodeName () const { return NodeId (); }
29691
 
  int Sons () const { return 3; }
29692
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
29693
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
29694
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
29695
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29696
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
29697
 
  }
29698
 
};
29699
 
 
29700
 
 
29701
 
#line 29702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29702
 
} // closed Puma
29703
 
class WinIfExists;
29704
 
class WinImportHandler;
29705
 
class WinMacros;
29706
 
class CMatchSyntax;
29707
 
class ExtGnu;
29708
 
class ExtAC;
29709
 
class ExtACBuilderCoupling;
29710
 
class ExtACSyntaxCoupling;
29711
 
class ExtACTree;
29712
 
class ExtACKeywords;
29713
 
class WinAsm;
29714
 
class WinDeclSpecs;
29715
 
class WinMemberExplSpec;
29716
 
class WinTypeKeywords;
29717
 
class PragmaOnceUnitState;
29718
 
class PragmaOnce;
29719
 
class CCExprResolve;
29720
 
class CExprResolve;
29721
 
namespace Puma {
29722
 
 
29723
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29724
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
29725
 
#line 29726 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29726
 
  friend class ::WinIfExists;
29727
 
  friend class ::WinImportHandler;
29728
 
  friend class ::WinMacros;
29729
 
  friend class ::CMatchSyntax;
29730
 
  friend class ::ExtGnu;
29731
 
  friend class ::ExtAC;
29732
 
  friend class ::ExtACBuilderCoupling;
29733
 
  friend class ::ExtACSyntaxCoupling;
29734
 
  friend class ::ExtACTree;
29735
 
  friend class ::ExtACKeywords;
29736
 
  friend class ::WinAsm;
29737
 
  friend class ::WinDeclSpecs;
29738
 
  friend class ::WinMemberExplSpec;
29739
 
  friend class ::WinTypeKeywords;
29740
 
  friend class ::PragmaOnceUnitState;
29741
 
  friend class ::PragmaOnce;
29742
 
  friend class ::CCExprResolve;
29743
 
  friend class ::CExprResolve;
29744
 
 
29745
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29746
 
 
29747
 
  CTree *sons[3]; // export, param_list, decl
29748
 
 
29749
 
public:
29750
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
29751
 
    sons[0] = e; sons[1] = p; sons[2] = d;
29752
 
  }
29753
 
  static const char *NodeId ();
29754
 
  const char *NodeName () const { return NodeId (); }
29755
 
  int Sons () const { return CTree::Sons (sons, 3); }
29756
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
29757
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29758
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
29759
 
  }
29760
 
  CTree *Export () const { return sons[0]; }
29761
 
  CT_TemplateParamList *Parameters () const { 
29762
 
    return (CT_TemplateParamList*)sons[1]; 
29763
 
  }
29764
 
  CTree *Declaration () const { return sons[2]; }
29765
 
};
29766
 
 
29767
 
 
29768
 
#line 29769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29769
 
} // closed Puma
29770
 
class WinIfExists;
29771
 
class WinImportHandler;
29772
 
class WinMacros;
29773
 
class CMatchSyntax;
29774
 
class ExtGnu;
29775
 
class ExtAC;
29776
 
class ExtACBuilderCoupling;
29777
 
class ExtACSyntaxCoupling;
29778
 
class ExtACTree;
29779
 
class ExtACKeywords;
29780
 
class WinAsm;
29781
 
class WinDeclSpecs;
29782
 
class WinMemberExplSpec;
29783
 
class WinTypeKeywords;
29784
 
class PragmaOnceUnitState;
29785
 
class PragmaOnce;
29786
 
class CCExprResolve;
29787
 
class CExprResolve;
29788
 
namespace Puma {
29789
 
 
29790
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29791
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
29792
 
#line 29793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29793
 
  friend class ::WinIfExists;
29794
 
  friend class ::WinImportHandler;
29795
 
  friend class ::WinMacros;
29796
 
  friend class ::CMatchSyntax;
29797
 
  friend class ::ExtGnu;
29798
 
  friend class ::ExtAC;
29799
 
  friend class ::ExtACBuilderCoupling;
29800
 
  friend class ::ExtACSyntaxCoupling;
29801
 
  friend class ::ExtACTree;
29802
 
  friend class ::ExtACKeywords;
29803
 
  friend class ::WinAsm;
29804
 
  friend class ::WinDeclSpecs;
29805
 
  friend class ::WinMemberExplSpec;
29806
 
  friend class ::WinTypeKeywords;
29807
 
  friend class ::PragmaOnceUnitState;
29808
 
  friend class ::PragmaOnce;
29809
 
  friend class ::CCExprResolve;
29810
 
  friend class ::CExprResolve;
29811
 
 
29812
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29813
 
 
29814
 
protected:
29815
 
  CT_TemplateParamDecl () {}
29816
 
  
29817
 
public:
29818
 
  virtual CT_ExprList *DefaultArgument () const = 0;
29819
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29820
 
};
29821
 
 
29822
 
 
29823
 
#line 29824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29824
 
} // closed Puma
29825
 
class WinIfExists;
29826
 
class WinImportHandler;
29827
 
class WinMacros;
29828
 
class CMatchSyntax;
29829
 
class ExtGnu;
29830
 
class ExtAC;
29831
 
class ExtACBuilderCoupling;
29832
 
class ExtACSyntaxCoupling;
29833
 
class ExtACTree;
29834
 
class ExtACKeywords;
29835
 
class WinAsm;
29836
 
class WinDeclSpecs;
29837
 
class WinMemberExplSpec;
29838
 
class WinTypeKeywords;
29839
 
class PragmaOnceUnitState;
29840
 
class PragmaOnce;
29841
 
class CCExprResolve;
29842
 
class CExprResolve;
29843
 
namespace Puma {
29844
 
 
29845
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29846
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
29847
 
#line 29848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29848
 
  friend class ::WinIfExists;
29849
 
  friend class ::WinImportHandler;
29850
 
  friend class ::WinMacros;
29851
 
  friend class ::CMatchSyntax;
29852
 
  friend class ::ExtGnu;
29853
 
  friend class ::ExtAC;
29854
 
  friend class ::ExtACBuilderCoupling;
29855
 
  friend class ::ExtACSyntaxCoupling;
29856
 
  friend class ::ExtACTree;
29857
 
  friend class ::ExtACKeywords;
29858
 
  friend class ::WinAsm;
29859
 
  friend class ::WinDeclSpecs;
29860
 
  friend class ::WinMemberExplSpec;
29861
 
  friend class ::WinTypeKeywords;
29862
 
  friend class ::PragmaOnceUnitState;
29863
 
  friend class ::PragmaOnce;
29864
 
  friend class ::CCExprResolve;
29865
 
  friend class ::CExprResolve;
29866
 
 
29867
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29868
 
 
29869
 
  CTree *sons[3]; // declspecs, declarator, init
29870
 
 
29871
 
public:
29872
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
29873
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
29874
 
  }
29875
 
  static const char *NodeId ();
29876
 
  const char *NodeName () const { return NodeId (); }
29877
 
  int Sons () const { return CTree::Sons (sons, 3); }
29878
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
29879
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
29880
 
  CTree *Declarator () const { return sons[1]; }
29881
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
29882
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29883
 
  void Initializer (CTree *i) { sons[2] = i; }
29884
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29885
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
29886
 
  }
29887
 
};
29888
 
 
29889
 
 
29890
 
#line 29891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29891
 
} // closed Puma
29892
 
class WinIfExists;
29893
 
class WinImportHandler;
29894
 
class WinMacros;
29895
 
class CMatchSyntax;
29896
 
class ExtGnu;
29897
 
class ExtAC;
29898
 
class ExtACBuilderCoupling;
29899
 
class ExtACSyntaxCoupling;
29900
 
class ExtACTree;
29901
 
class ExtACKeywords;
29902
 
class WinAsm;
29903
 
class WinDeclSpecs;
29904
 
class WinMemberExplSpec;
29905
 
class WinTypeKeywords;
29906
 
class PragmaOnceUnitState;
29907
 
class PragmaOnce;
29908
 
class CCExprResolve;
29909
 
class CExprResolve;
29910
 
namespace Puma {
29911
 
 
29912
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29913
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
29914
 
#line 29915 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29915
 
  friend class ::WinIfExists;
29916
 
  friend class ::WinImportHandler;
29917
 
  friend class ::WinMacros;
29918
 
  friend class ::CMatchSyntax;
29919
 
  friend class ::ExtGnu;
29920
 
  friend class ::ExtAC;
29921
 
  friend class ::ExtACBuilderCoupling;
29922
 
  friend class ::ExtACSyntaxCoupling;
29923
 
  friend class ::ExtACTree;
29924
 
  friend class ::ExtACKeywords;
29925
 
  friend class ::WinAsm;
29926
 
  friend class ::WinDeclSpecs;
29927
 
  friend class ::WinMemberExplSpec;
29928
 
  friend class ::WinTypeKeywords;
29929
 
  friend class ::PragmaOnceUnitState;
29930
 
  friend class ::PragmaOnce;
29931
 
  friend class ::CCExprResolve;
29932
 
  friend class ::CExprResolve;
29933
 
 
29934
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29935
 
 
29936
 
  CTree *sons[4]; // params, key, id, init
29937
 
 
29938
 
public:
29939
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
29940
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
29941
 
  }
29942
 
  static const char *NodeId ();
29943
 
  const char *NodeName () const { return NodeId (); }
29944
 
  int Sons () const { return CTree::Sons (sons, 4); }
29945
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
29946
 
  CT_TemplateParamList *Parameters () const { 
29947
 
    return (CT_TemplateParamList*)sons[0]; 
29948
 
  }
29949
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
29950
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
29951
 
  void Initializer (CTree *i) { sons[3] = i; }
29952
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29953
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
29954
 
  }
29955
 
};
29956
 
 
29957
 
 
29958
 
#line 29959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29959
 
} // closed Puma
29960
 
class WinIfExists;
29961
 
class WinImportHandler;
29962
 
class WinMacros;
29963
 
class CMatchSyntax;
29964
 
class ExtGnu;
29965
 
class ExtAC;
29966
 
class ExtACBuilderCoupling;
29967
 
class ExtACSyntaxCoupling;
29968
 
class ExtACTree;
29969
 
class ExtACKeywords;
29970
 
class WinAsm;
29971
 
class WinDeclSpecs;
29972
 
class WinMemberExplSpec;
29973
 
class WinTypeKeywords;
29974
 
class PragmaOnceUnitState;
29975
 
class PragmaOnce;
29976
 
class CCExprResolve;
29977
 
class CExprResolve;
29978
 
namespace Puma {
29979
 
 
29980
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29981
 
class CT_EnumDef : public CT_Decl, public CSemObject {
29982
 
#line 29983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
29983
 
  friend class ::WinIfExists;
29984
 
  friend class ::WinImportHandler;
29985
 
  friend class ::WinMacros;
29986
 
  friend class ::CMatchSyntax;
29987
 
  friend class ::ExtGnu;
29988
 
  friend class ::ExtAC;
29989
 
  friend class ::ExtACBuilderCoupling;
29990
 
  friend class ::ExtACSyntaxCoupling;
29991
 
  friend class ::ExtACTree;
29992
 
  friend class ::ExtACKeywords;
29993
 
  friend class ::WinAsm;
29994
 
  friend class ::WinDeclSpecs;
29995
 
  friend class ::WinMemberExplSpec;
29996
 
  friend class ::WinTypeKeywords;
29997
 
  friend class ::PragmaOnceUnitState;
29998
 
  friend class ::PragmaOnce;
29999
 
  friend class ::CCExprResolve;
30000
 
  friend class ::CExprResolve;
30001
 
 
30002
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30003
 
 
30004
 
  CTree *sons[3]; // key, name, enumerators
30005
 
 
30006
 
public:
30007
 
  CT_EnumDef (CTree *k, CTree *n) {
30008
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
30009
 
  }
30010
 
  static const char *NodeId ();
30011
 
  const char *NodeName () const { return NodeId (); }
30012
 
  int Sons () const { return CTree::Sons (sons, 3); }
30013
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
30014
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
30015
 
  void Enumerators (CTree *el) { sons[2] = el; }
30016
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
30017
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30018
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
30019
 
  }
30020
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30021
 
};
30022
 
 
30023
 
 
30024
 
#line 30025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30025
 
} // closed Puma
30026
 
class WinIfExists;
30027
 
class WinImportHandler;
30028
 
class WinMacros;
30029
 
class CMatchSyntax;
30030
 
class ExtGnu;
30031
 
class ExtAC;
30032
 
class ExtACBuilderCoupling;
30033
 
class ExtACSyntaxCoupling;
30034
 
class ExtACTree;
30035
 
class ExtACKeywords;
30036
 
class WinAsm;
30037
 
class WinDeclSpecs;
30038
 
class WinMemberExplSpec;
30039
 
class WinTypeKeywords;
30040
 
class PragmaOnceUnitState;
30041
 
class PragmaOnce;
30042
 
class CCExprResolve;
30043
 
class CExprResolve;
30044
 
namespace Puma {
30045
 
 
30046
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30047
 
class CT_Enumerator : public CT_Decl, public CSemObject {
30048
 
#line 30049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30049
 
  friend class ::WinIfExists;
30050
 
  friend class ::WinImportHandler;
30051
 
  friend class ::WinMacros;
30052
 
  friend class ::CMatchSyntax;
30053
 
  friend class ::ExtGnu;
30054
 
  friend class ::ExtAC;
30055
 
  friend class ::ExtACBuilderCoupling;
30056
 
  friend class ::ExtACSyntaxCoupling;
30057
 
  friend class ::ExtACTree;
30058
 
  friend class ::ExtACKeywords;
30059
 
  friend class ::WinAsm;
30060
 
  friend class ::WinDeclSpecs;
30061
 
  friend class ::WinMemberExplSpec;
30062
 
  friend class ::WinTypeKeywords;
30063
 
  friend class ::PragmaOnceUnitState;
30064
 
  friend class ::PragmaOnce;
30065
 
  friend class ::CCExprResolve;
30066
 
  friend class ::CExprResolve;
30067
 
 
30068
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30069
 
 
30070
 
  CTree *sons[2]; // name, init
30071
 
 
30072
 
public:
30073
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
30074
 
  static const char *NodeId ();
30075
 
  const char *NodeName () const { return NodeId (); }
30076
 
  int Sons () const { return CTree::Sons (sons, 2); }
30077
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
30078
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
30079
 
  void Initializer (CTree *i) { sons[1] = i; }
30080
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
30081
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30082
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
30083
 
  }
30084
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30085
 
};
30086
 
 
30087
 
 
30088
 
#line 30089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30089
 
} // closed Puma
30090
 
class WinIfExists;
30091
 
class WinImportHandler;
30092
 
class WinMacros;
30093
 
class CMatchSyntax;
30094
 
class ExtGnu;
30095
 
class ExtAC;
30096
 
class ExtACBuilderCoupling;
30097
 
class ExtACSyntaxCoupling;
30098
 
class ExtACTree;
30099
 
class ExtACKeywords;
30100
 
class WinAsm;
30101
 
class WinDeclSpecs;
30102
 
class WinMemberExplSpec;
30103
 
class WinTypeKeywords;
30104
 
class PragmaOnceUnitState;
30105
 
class PragmaOnce;
30106
 
class CCExprResolve;
30107
 
class CExprResolve;
30108
 
namespace Puma {
30109
 
 
30110
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30111
 
class CT_FctDef : public CT_Decl, public CSemObject {
30112
 
#line 30113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30113
 
  friend class ::WinIfExists;
30114
 
  friend class ::WinImportHandler;
30115
 
  friend class ::WinMacros;
30116
 
  friend class ::CMatchSyntax;
30117
 
  friend class ::ExtGnu;
30118
 
  friend class ::ExtAC;
30119
 
  friend class ::ExtACBuilderCoupling;
30120
 
  friend class ::ExtACSyntaxCoupling;
30121
 
  friend class ::ExtACTree;
30122
 
  friend class ::ExtACKeywords;
30123
 
  friend class ::WinAsm;
30124
 
  friend class ::WinDeclSpecs;
30125
 
  friend class ::WinMemberExplSpec;
30126
 
  friend class ::WinTypeKeywords;
30127
 
  friend class ::PragmaOnceUnitState;
30128
 
  friend class ::PragmaOnce;
30129
 
  friend class ::CCExprResolve;
30130
 
  friend class ::CExprResolve;
30131
 
 
30132
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30133
 
 
30134
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
30135
 
 
30136
 
public:
30137
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
30138
 
             CTree *b, CTree *hs) {
30139
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
30140
 
    sons[5] = b; sons[6] = hs; 
30141
 
  }
30142
 
  static const char *NodeId ();
30143
 
  const char *NodeName () const { return NodeId (); }
30144
 
  int Sons () const { return CTree::Sons (sons, 7); }
30145
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
30146
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
30147
 
  CTree *Declarator () const { return sons[1]; }
30148
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
30149
 
  CTree *CtorInit () const { return sons[3]; }
30150
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
30151
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
30152
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
30153
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30154
 
  void CtorInit (CTree *i) { sons[3] = i; }
30155
 
  void Body (CTree *b) { sons[5] = b; }
30156
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
30157
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
30158
 
  }
30159
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30160
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
30161
 
  }
30162
 
};
30163
 
 
30164
 
 
30165
 
#line 30166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30166
 
} // closed Puma
30167
 
class WinIfExists;
30168
 
class WinImportHandler;
30169
 
class WinMacros;
30170
 
class CMatchSyntax;
30171
 
class ExtGnu;
30172
 
class ExtAC;
30173
 
class ExtACBuilderCoupling;
30174
 
class ExtACSyntaxCoupling;
30175
 
class ExtACTree;
30176
 
class ExtACKeywords;
30177
 
class WinAsm;
30178
 
class WinDeclSpecs;
30179
 
class WinMemberExplSpec;
30180
 
class WinTypeKeywords;
30181
 
class PragmaOnceUnitState;
30182
 
class PragmaOnce;
30183
 
class CCExprResolve;
30184
 
class CExprResolve;
30185
 
namespace Puma {
30186
 
 
30187
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30188
 
class CT_AsmDef : public CT_Decl {
30189
 
#line 30190 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30190
 
  friend class ::WinIfExists;
30191
 
  friend class ::WinImportHandler;
30192
 
  friend class ::WinMacros;
30193
 
  friend class ::CMatchSyntax;
30194
 
  friend class ::ExtGnu;
30195
 
  friend class ::ExtAC;
30196
 
  friend class ::ExtACBuilderCoupling;
30197
 
  friend class ::ExtACSyntaxCoupling;
30198
 
  friend class ::ExtACTree;
30199
 
  friend class ::ExtACKeywords;
30200
 
  friend class ::WinAsm;
30201
 
  friend class ::WinDeclSpecs;
30202
 
  friend class ::WinMemberExplSpec;
30203
 
  friend class ::WinTypeKeywords;
30204
 
  friend class ::PragmaOnceUnitState;
30205
 
  friend class ::PragmaOnce;
30206
 
  friend class ::CCExprResolve;
30207
 
  friend class ::CExprResolve;
30208
 
 
30209
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30210
 
 
30211
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
30212
 
 
30213
 
public:
30214
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
30215
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
30216
 
  }
30217
 
  static const char *NodeId ();
30218
 
  const char *NodeName () const { return NodeId (); }
30219
 
  int Sons () const { return 5; }
30220
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
30221
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
30222
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30223
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
30224
 
  }
30225
 
};
30226
 
 
30227
 
 
30228
 
#line 30229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30229
 
} // closed Puma
30230
 
class WinIfExists;
30231
 
class WinImportHandler;
30232
 
class WinMacros;
30233
 
class CMatchSyntax;
30234
 
class ExtGnu;
30235
 
class ExtAC;
30236
 
class ExtACBuilderCoupling;
30237
 
class ExtACSyntaxCoupling;
30238
 
class ExtACTree;
30239
 
class ExtACKeywords;
30240
 
class WinAsm;
30241
 
class WinDeclSpecs;
30242
 
class WinMemberExplSpec;
30243
 
class WinTypeKeywords;
30244
 
class PragmaOnceUnitState;
30245
 
class PragmaOnce;
30246
 
class CCExprResolve;
30247
 
class CExprResolve;
30248
 
namespace Puma {
30249
 
 
30250
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30251
 
class CT_Handler : public CT_Decl, public CSemScope {
30252
 
#line 30253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30253
 
  friend class ::WinIfExists;
30254
 
  friend class ::WinImportHandler;
30255
 
  friend class ::WinMacros;
30256
 
  friend class ::CMatchSyntax;
30257
 
  friend class ::ExtGnu;
30258
 
  friend class ::ExtAC;
30259
 
  friend class ::ExtACBuilderCoupling;
30260
 
  friend class ::ExtACSyntaxCoupling;
30261
 
  friend class ::ExtACTree;
30262
 
  friend class ::ExtACKeywords;
30263
 
  friend class ::WinAsm;
30264
 
  friend class ::WinDeclSpecs;
30265
 
  friend class ::WinMemberExplSpec;
30266
 
  friend class ::WinTypeKeywords;
30267
 
  friend class ::PragmaOnceUnitState;
30268
 
  friend class ::PragmaOnce;
30269
 
  friend class ::CCExprResolve;
30270
 
  friend class ::CExprResolve;
30271
 
 
30272
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30273
 
 
30274
 
  CTree *sons[3]; // catch, exception_decl, stmt
30275
 
 
30276
 
public:
30277
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
30278
 
    sons[0] = c; sons[1] = e; sons[2] = s;
30279
 
  }
30280
 
  static const char *NodeId ();
30281
 
  const char *NodeName () const { return NodeId (); }
30282
 
  int Sons () const { return 3; }
30283
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
30284
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
30285
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
30286
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30287
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
30288
 
  }
30289
 
};
30290
 
 
30291
 
 
30292
 
#line 30293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30293
 
} // closed Puma
30294
 
class WinIfExists;
30295
 
class WinImportHandler;
30296
 
class WinMacros;
30297
 
class CMatchSyntax;
30298
 
class ExtGnu;
30299
 
class ExtAC;
30300
 
class ExtACBuilderCoupling;
30301
 
class ExtACSyntaxCoupling;
30302
 
class ExtACTree;
30303
 
class ExtACKeywords;
30304
 
class WinAsm;
30305
 
class WinDeclSpecs;
30306
 
class WinMemberExplSpec;
30307
 
class WinTypeKeywords;
30308
 
class PragmaOnceUnitState;
30309
 
class PragmaOnce;
30310
 
class CCExprResolve;
30311
 
class CExprResolve;
30312
 
namespace Puma {
30313
 
 
30314
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30315
 
class CT_LinkageSpec : public CT_Decl {
30316
 
#line 30317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30317
 
  friend class ::WinIfExists;
30318
 
  friend class ::WinImportHandler;
30319
 
  friend class ::WinMacros;
30320
 
  friend class ::CMatchSyntax;
30321
 
  friend class ::ExtGnu;
30322
 
  friend class ::ExtAC;
30323
 
  friend class ::ExtACBuilderCoupling;
30324
 
  friend class ::ExtACSyntaxCoupling;
30325
 
  friend class ::ExtACTree;
30326
 
  friend class ::ExtACKeywords;
30327
 
  friend class ::WinAsm;
30328
 
  friend class ::WinDeclSpecs;
30329
 
  friend class ::WinMemberExplSpec;
30330
 
  friend class ::WinTypeKeywords;
30331
 
  friend class ::PragmaOnceUnitState;
30332
 
  friend class ::PragmaOnce;
30333
 
  friend class ::CCExprResolve;
30334
 
  friend class ::CExprResolve;
30335
 
 
30336
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30337
 
 
30338
 
  CTree *sons[5]; // extern, str, open, decls, close
30339
 
 
30340
 
public:
30341
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
30342
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
30343
 
    if (isList ())
30344
 
      ((CT_DeclList*)Decls ())->Linkage (this);
30345
 
    else
30346
 
      ((CT_Decl*)Decls ())->Linkage (this);
30347
 
  }
30348
 
  static const char *NodeId ();
30349
 
  const char *NodeName () const { return NodeId (); }
30350
 
  int Sons () const { return CTree::Sons (sons, 5); }
30351
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
30352
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
30353
 
  CTree *Decls () const { return sons[3]; }
30354
 
  bool isList () const {
30355
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
30356
 
  }
30357
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30358
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
30359
 
  }
30360
 
};
30361
 
 
30362
 
 
30363
 
#line 30364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30364
 
} // closed Puma
30365
 
class WinIfExists;
30366
 
class WinImportHandler;
30367
 
class WinMacros;
30368
 
class CMatchSyntax;
30369
 
class ExtGnu;
30370
 
class ExtAC;
30371
 
class ExtACBuilderCoupling;
30372
 
class ExtACSyntaxCoupling;
30373
 
class ExtACTree;
30374
 
class ExtACKeywords;
30375
 
class WinAsm;
30376
 
class WinDeclSpecs;
30377
 
class WinMemberExplSpec;
30378
 
class WinTypeKeywords;
30379
 
class PragmaOnceUnitState;
30380
 
class PragmaOnce;
30381
 
class CCExprResolve;
30382
 
class CExprResolve;
30383
 
namespace Puma {
30384
 
 
30385
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30386
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
30387
 
#line 30388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30388
 
  friend class ::WinIfExists;
30389
 
  friend class ::WinImportHandler;
30390
 
  friend class ::WinMacros;
30391
 
  friend class ::CMatchSyntax;
30392
 
  friend class ::ExtGnu;
30393
 
  friend class ::ExtAC;
30394
 
  friend class ::ExtACBuilderCoupling;
30395
 
  friend class ::ExtACSyntaxCoupling;
30396
 
  friend class ::ExtACTree;
30397
 
  friend class ::ExtACKeywords;
30398
 
  friend class ::WinAsm;
30399
 
  friend class ::WinDeclSpecs;
30400
 
  friend class ::WinMemberExplSpec;
30401
 
  friend class ::WinTypeKeywords;
30402
 
  friend class ::PragmaOnceUnitState;
30403
 
  friend class ::PragmaOnce;
30404
 
  friend class ::CCExprResolve;
30405
 
  friend class ::CExprResolve;
30406
 
 
30407
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30408
 
 
30409
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
30410
 
 
30411
 
public:
30412
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
30413
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
30414
 
  }
30415
 
  CT_ArgDecl (CTree *ellipsis) {
30416
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
30417
 
  }
30418
 
  static const char *NodeId ();
30419
 
  const char *NodeName () const { return NodeId (); }
30420
 
  int Sons () const { return CTree::Sons (sons, 4); }
30421
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
30422
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
30423
 
  CTree *Declarator () const { return sons[1]; }
30424
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
30425
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
30426
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30427
 
  void Initializer (CTree *i) { sons[2] = i; }
30428
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30429
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
30430
 
  }
30431
 
};
30432
 
 
30433
 
 
30434
 
#line 30435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30435
 
} // closed Puma
30436
 
class WinIfExists;
30437
 
class WinImportHandler;
30438
 
class WinMacros;
30439
 
class CMatchSyntax;
30440
 
class ExtGnu;
30441
 
class ExtAC;
30442
 
class ExtACBuilderCoupling;
30443
 
class ExtACSyntaxCoupling;
30444
 
class ExtACTree;
30445
 
class ExtACKeywords;
30446
 
class WinAsm;
30447
 
class WinDeclSpecs;
30448
 
class WinMemberExplSpec;
30449
 
class WinTypeKeywords;
30450
 
class PragmaOnceUnitState;
30451
 
class PragmaOnce;
30452
 
class CCExprResolve;
30453
 
class CExprResolve;
30454
 
namespace Puma {
30455
 
 
30456
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30457
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
30458
 
#line 30459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30459
 
  friend class ::WinIfExists;
30460
 
  friend class ::WinImportHandler;
30461
 
  friend class ::WinMacros;
30462
 
  friend class ::CMatchSyntax;
30463
 
  friend class ::ExtGnu;
30464
 
  friend class ::ExtAC;
30465
 
  friend class ::ExtACBuilderCoupling;
30466
 
  friend class ::ExtACSyntaxCoupling;
30467
 
  friend class ::ExtACTree;
30468
 
  friend class ::ExtACKeywords;
30469
 
  friend class ::WinAsm;
30470
 
  friend class ::WinDeclSpecs;
30471
 
  friend class ::WinMemberExplSpec;
30472
 
  friend class ::WinTypeKeywords;
30473
 
  friend class ::PragmaOnceUnitState;
30474
 
  friend class ::PragmaOnce;
30475
 
  friend class ::CCExprResolve;
30476
 
  friend class ::CExprResolve;
30477
 
 
30478
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30479
 
 
30480
 
public:
30481
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
30482
 
   CT_DeclList (size, 2) { AddProperties (props); }
30483
 
  static const char *NodeId ();
30484
 
  const char *NodeName () const { return NodeId (); }
30485
 
};
30486
 
 
30487
 
 
30488
 
#line 30489 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30489
 
} // closed Puma
30490
 
class WinIfExists;
30491
 
class WinImportHandler;
30492
 
class WinMacros;
30493
 
class CMatchSyntax;
30494
 
class ExtGnu;
30495
 
class ExtAC;
30496
 
class ExtACBuilderCoupling;
30497
 
class ExtACSyntaxCoupling;
30498
 
class ExtACTree;
30499
 
class ExtACKeywords;
30500
 
class WinAsm;
30501
 
class WinDeclSpecs;
30502
 
class WinMemberExplSpec;
30503
 
class WinTypeKeywords;
30504
 
class PragmaOnceUnitState;
30505
 
class PragmaOnce;
30506
 
class CCExprResolve;
30507
 
class CExprResolve;
30508
 
namespace Puma {
30509
 
 
30510
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30511
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
30512
 
#line 30513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30513
 
  friend class ::WinIfExists;
30514
 
  friend class ::WinImportHandler;
30515
 
  friend class ::WinMacros;
30516
 
  friend class ::CMatchSyntax;
30517
 
  friend class ::ExtGnu;
30518
 
  friend class ::ExtAC;
30519
 
  friend class ::ExtACBuilderCoupling;
30520
 
  friend class ::ExtACSyntaxCoupling;
30521
 
  friend class ::ExtACTree;
30522
 
  friend class ::ExtACKeywords;
30523
 
  friend class ::WinAsm;
30524
 
  friend class ::WinDeclSpecs;
30525
 
  friend class ::WinMemberExplSpec;
30526
 
  friend class ::WinTypeKeywords;
30527
 
  friend class ::PragmaOnceUnitState;
30528
 
  friend class ::PragmaOnce;
30529
 
  friend class ::CCExprResolve;
30530
 
  friend class ::CExprResolve;
30531
 
 
30532
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30533
 
 
30534
 
public:
30535
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
30536
 
  static const char *NodeId ();
30537
 
  const char *NodeName () const { return NodeId (); }
30538
 
};
30539
 
 
30540
 
 
30541
 
#line 30542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30542
 
} // closed Puma
30543
 
class WinIfExists;
30544
 
class WinImportHandler;
30545
 
class WinMacros;
30546
 
class CMatchSyntax;
30547
 
class ExtGnu;
30548
 
class ExtAC;
30549
 
class ExtACBuilderCoupling;
30550
 
class ExtACSyntaxCoupling;
30551
 
class ExtACTree;
30552
 
class ExtACKeywords;
30553
 
class WinAsm;
30554
 
class WinDeclSpecs;
30555
 
class WinMemberExplSpec;
30556
 
class WinTypeKeywords;
30557
 
class PragmaOnceUnitState;
30558
 
class PragmaOnce;
30559
 
class CCExprResolve;
30560
 
class CExprResolve;
30561
 
namespace Puma {
30562
 
 
30563
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30564
 
class CT_ArgNameList : public CT_ArgDeclList {
30565
 
#line 30566 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30566
 
  friend class ::WinIfExists;
30567
 
  friend class ::WinImportHandler;
30568
 
  friend class ::WinMacros;
30569
 
  friend class ::CMatchSyntax;
30570
 
  friend class ::ExtGnu;
30571
 
  friend class ::ExtAC;
30572
 
  friend class ::ExtACBuilderCoupling;
30573
 
  friend class ::ExtACSyntaxCoupling;
30574
 
  friend class ::ExtACTree;
30575
 
  friend class ::ExtACKeywords;
30576
 
  friend class ::WinAsm;
30577
 
  friend class ::WinDeclSpecs;
30578
 
  friend class ::WinMemberExplSpec;
30579
 
  friend class ::WinTypeKeywords;
30580
 
  friend class ::PragmaOnceUnitState;
30581
 
  friend class ::PragmaOnce;
30582
 
  friend class ::CCExprResolve;
30583
 
  friend class ::CExprResolve;
30584
 
 
30585
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30586
 
 
30587
 
public:
30588
 
  CT_ArgNameList () : CT_ArgDeclList () {}
30589
 
  static const char *NodeId ();
30590
 
  const char *NodeName () const { return NodeId (); }
30591
 
};
30592
 
 
30593
 
 
30594
 
#line 30595 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30595
 
} // closed Puma
30596
 
class WinIfExists;
30597
 
class WinImportHandler;
30598
 
class WinMacros;
30599
 
class CMatchSyntax;
30600
 
class ExtGnu;
30601
 
class ExtAC;
30602
 
class ExtACBuilderCoupling;
30603
 
class ExtACSyntaxCoupling;
30604
 
class ExtACTree;
30605
 
class ExtACKeywords;
30606
 
class WinAsm;
30607
 
class WinDeclSpecs;
30608
 
class WinMemberExplSpec;
30609
 
class WinTypeKeywords;
30610
 
class PragmaOnceUnitState;
30611
 
class PragmaOnce;
30612
 
class CCExprResolve;
30613
 
class CExprResolve;
30614
 
namespace Puma {
30615
 
 
30616
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30617
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
30618
 
#line 30619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30619
 
  friend class ::WinIfExists;
30620
 
  friend class ::WinImportHandler;
30621
 
  friend class ::WinMacros;
30622
 
  friend class ::CMatchSyntax;
30623
 
  friend class ::ExtGnu;
30624
 
  friend class ::ExtAC;
30625
 
  friend class ::ExtACBuilderCoupling;
30626
 
  friend class ::ExtACSyntaxCoupling;
30627
 
  friend class ::ExtACTree;
30628
 
  friend class ::ExtACKeywords;
30629
 
  friend class ::WinAsm;
30630
 
  friend class ::WinDeclSpecs;
30631
 
  friend class ::WinMemberExplSpec;
30632
 
  friend class ::WinTypeKeywords;
30633
 
  friend class ::PragmaOnceUnitState;
30634
 
  friend class ::PragmaOnce;
30635
 
  friend class ::CCExprResolve;
30636
 
  friend class ::CExprResolve;
30637
 
 
30638
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30639
 
 
30640
 
  CTree *sons[3]; // ns, name, members
30641
 
 
30642
 
public:
30643
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
30644
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
30645
 
  }
30646
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
30647
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
30648
 
  }
30649
 
  static const char *NodeId ();
30650
 
  const char *NodeName () const { return NodeId (); }
30651
 
  int Sons () const { return CTree::Sons (sons, 3); }
30652
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
30653
 
  void Members (CTree *m) { sons[2] = m; }
30654
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
30655
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
30656
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30657
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30658
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
30659
 
  }
30660
 
};
30661
 
 
30662
 
 
30663
 
#line 30664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30664
 
} // closed Puma
30665
 
class WinIfExists;
30666
 
class WinImportHandler;
30667
 
class WinMacros;
30668
 
class CMatchSyntax;
30669
 
class ExtGnu;
30670
 
class ExtAC;
30671
 
class ExtACBuilderCoupling;
30672
 
class ExtACSyntaxCoupling;
30673
 
class ExtACTree;
30674
 
class ExtACKeywords;
30675
 
class WinAsm;
30676
 
class WinDeclSpecs;
30677
 
class WinMemberExplSpec;
30678
 
class WinTypeKeywords;
30679
 
class PragmaOnceUnitState;
30680
 
class PragmaOnce;
30681
 
class CCExprResolve;
30682
 
class CExprResolve;
30683
 
namespace Puma {
30684
 
 
30685
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30686
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
30687
 
#line 30688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30688
 
  friend class ::WinIfExists;
30689
 
  friend class ::WinImportHandler;
30690
 
  friend class ::WinMacros;
30691
 
  friend class ::CMatchSyntax;
30692
 
  friend class ::ExtGnu;
30693
 
  friend class ::ExtAC;
30694
 
  friend class ::ExtACBuilderCoupling;
30695
 
  friend class ::ExtACSyntaxCoupling;
30696
 
  friend class ::ExtACTree;
30697
 
  friend class ::ExtACKeywords;
30698
 
  friend class ::WinAsm;
30699
 
  friend class ::WinDeclSpecs;
30700
 
  friend class ::WinMemberExplSpec;
30701
 
  friend class ::WinTypeKeywords;
30702
 
  friend class ::PragmaOnceUnitState;
30703
 
  friend class ::PragmaOnce;
30704
 
  friend class ::CCExprResolve;
30705
 
  friend class ::CExprResolve;
30706
 
 
30707
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30708
 
 
30709
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
30710
 
 
30711
 
public:
30712
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
30713
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
30714
 
  }
30715
 
  static const char *NodeId ();
30716
 
  const char *NodeName () const { return NodeId (); }
30717
 
  int Sons () const { return 5; }
30718
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
30719
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
30720
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
30721
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30722
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30723
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
30724
 
  }
30725
 
};
30726
 
 
30727
 
 
30728
 
#line 30729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30729
 
} // closed Puma
30730
 
class WinIfExists;
30731
 
class WinImportHandler;
30732
 
class WinMacros;
30733
 
class CMatchSyntax;
30734
 
class ExtGnu;
30735
 
class ExtAC;
30736
 
class ExtACBuilderCoupling;
30737
 
class ExtACSyntaxCoupling;
30738
 
class ExtACTree;
30739
 
class ExtACKeywords;
30740
 
class WinAsm;
30741
 
class WinDeclSpecs;
30742
 
class WinMemberExplSpec;
30743
 
class WinTypeKeywords;
30744
 
class PragmaOnceUnitState;
30745
 
class PragmaOnce;
30746
 
class CCExprResolve;
30747
 
class CExprResolve;
30748
 
namespace Puma {
30749
 
 
30750
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30751
 
class CT_UsingDirective : public CT_Decl {
30752
 
#line 30753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30753
 
  friend class ::WinIfExists;
30754
 
  friend class ::WinImportHandler;
30755
 
  friend class ::WinMacros;
30756
 
  friend class ::CMatchSyntax;
30757
 
  friend class ::ExtGnu;
30758
 
  friend class ::ExtAC;
30759
 
  friend class ::ExtACBuilderCoupling;
30760
 
  friend class ::ExtACSyntaxCoupling;
30761
 
  friend class ::ExtACTree;
30762
 
  friend class ::ExtACKeywords;
30763
 
  friend class ::WinAsm;
30764
 
  friend class ::WinDeclSpecs;
30765
 
  friend class ::WinMemberExplSpec;
30766
 
  friend class ::WinTypeKeywords;
30767
 
  friend class ::PragmaOnceUnitState;
30768
 
  friend class ::PragmaOnce;
30769
 
  friend class ::CCExprResolve;
30770
 
  friend class ::CExprResolve;
30771
 
 
30772
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30773
 
 
30774
 
  CTree *sons[4]; // using, ns, name, semi_colon
30775
 
 
30776
 
public:
30777
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
30778
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
30779
 
  }
30780
 
  static const char *NodeId ();
30781
 
  const char *NodeName () const { return NodeId (); }
30782
 
  int Sons () const { return 4; }
30783
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
30784
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
30785
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30786
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
30787
 
  }
30788
 
};
30789
 
 
30790
 
/*****************************************************************************/
30791
 
/*                                                                           */
30792
 
/*                              Declarators                                  */
30793
 
/*                                                                           */
30794
 
/*****************************************************************************/
30795
 
 
30796
 
 
30797
 
#line 30798 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30798
 
} // closed Puma
30799
 
class WinIfExists;
30800
 
class WinImportHandler;
30801
 
class WinMacros;
30802
 
class CMatchSyntax;
30803
 
class ExtGnu;
30804
 
class ExtAC;
30805
 
class ExtACBuilderCoupling;
30806
 
class ExtACSyntaxCoupling;
30807
 
class ExtACTree;
30808
 
class ExtACKeywords;
30809
 
class WinAsm;
30810
 
class WinDeclSpecs;
30811
 
class WinMemberExplSpec;
30812
 
class WinTypeKeywords;
30813
 
class PragmaOnceUnitState;
30814
 
class PragmaOnce;
30815
 
class CCExprResolve;
30816
 
class CExprResolve;
30817
 
namespace Puma {
30818
 
 
30819
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30820
 
class CT_Declarator : public CTree {
30821
 
#line 30822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30822
 
  friend class ::WinIfExists;
30823
 
  friend class ::WinImportHandler;
30824
 
  friend class ::WinMacros;
30825
 
  friend class ::CMatchSyntax;
30826
 
  friend class ::ExtGnu;
30827
 
  friend class ::ExtAC;
30828
 
  friend class ::ExtACBuilderCoupling;
30829
 
  friend class ::ExtACSyntaxCoupling;
30830
 
  friend class ::ExtACTree;
30831
 
  friend class ::ExtACKeywords;
30832
 
  friend class ::WinAsm;
30833
 
  friend class ::WinDeclSpecs;
30834
 
  friend class ::WinMemberExplSpec;
30835
 
  friend class ::WinTypeKeywords;
30836
 
  friend class ::PragmaOnceUnitState;
30837
 
  friend class ::PragmaOnce;
30838
 
  friend class ::CCExprResolve;
30839
 
  friend class ::CExprResolve;
30840
 
 
30841
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30842
 
 
30843
 
protected:
30844
 
  CT_Declarator () {}
30845
 
 
30846
 
public:
30847
 
  virtual CTree *Declarator () const = 0;
30848
 
  //classification function
30849
 
  virtual CT_Declarator *IsDeclarator () { return this; }
30850
 
  // locate the name node
30851
 
  CT_SimpleName *Name ();
30852
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
30853
 
};
30854
 
 
30855
 
 
30856
 
#line 30857 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30857
 
} // closed Puma
30858
 
class WinIfExists;
30859
 
class WinImportHandler;
30860
 
class WinMacros;
30861
 
class CMatchSyntax;
30862
 
class ExtGnu;
30863
 
class ExtAC;
30864
 
class ExtACBuilderCoupling;
30865
 
class ExtACSyntaxCoupling;
30866
 
class ExtACTree;
30867
 
class ExtACKeywords;
30868
 
class WinAsm;
30869
 
class WinDeclSpecs;
30870
 
class WinMemberExplSpec;
30871
 
class WinTypeKeywords;
30872
 
class PragmaOnceUnitState;
30873
 
class PragmaOnce;
30874
 
class CCExprResolve;
30875
 
class CExprResolve;
30876
 
namespace Puma {
30877
 
 
30878
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30879
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
30880
 
#line 30881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30881
 
  friend class ::WinIfExists;
30882
 
  friend class ::WinImportHandler;
30883
 
  friend class ::WinMacros;
30884
 
  friend class ::CMatchSyntax;
30885
 
  friend class ::ExtGnu;
30886
 
  friend class ::ExtAC;
30887
 
  friend class ::ExtACBuilderCoupling;
30888
 
  friend class ::ExtACSyntaxCoupling;
30889
 
  friend class ::ExtACTree;
30890
 
  friend class ::ExtACKeywords;
30891
 
  friend class ::WinAsm;
30892
 
  friend class ::WinDeclSpecs;
30893
 
  friend class ::WinMemberExplSpec;
30894
 
  friend class ::WinTypeKeywords;
30895
 
  friend class ::PragmaOnceUnitState;
30896
 
  friend class ::PragmaOnce;
30897
 
  friend class ::CCExprResolve;
30898
 
  friend class ::CExprResolve;
30899
 
 
30900
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30901
 
 
30902
 
  CTree *sons[2]; // declarator, init
30903
 
  CTree *obj_decl;
30904
 
 
30905
 
public:
30906
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
30907
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
30908
 
  }
30909
 
  static const char *NodeId ();
30910
 
  const char *NodeName () const { return NodeId (); }
30911
 
  int Sons () const { return CTree::Sons (sons, 2); }
30912
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
30913
 
  CTree *Declarator () const { return sons[0]; }
30914
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
30915
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30916
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
30917
 
  void Initializer (CTree* i) { sons[1] = i; }
30918
 
  void ObjDecl (CTree *od) { obj_decl = od; }
30919
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30920
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30921
 
  }
30922
 
};
30923
 
 
30924
 
 
30925
 
#line 30926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30926
 
} // closed Puma
30927
 
class WinIfExists;
30928
 
class WinImportHandler;
30929
 
class WinMacros;
30930
 
class CMatchSyntax;
30931
 
class ExtGnu;
30932
 
class ExtAC;
30933
 
class ExtACBuilderCoupling;
30934
 
class ExtACSyntaxCoupling;
30935
 
class ExtACTree;
30936
 
class ExtACKeywords;
30937
 
class WinAsm;
30938
 
class WinDeclSpecs;
30939
 
class WinMemberExplSpec;
30940
 
class WinTypeKeywords;
30941
 
class PragmaOnceUnitState;
30942
 
class PragmaOnce;
30943
 
class CCExprResolve;
30944
 
class CExprResolve;
30945
 
namespace Puma {
30946
 
 
30947
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30948
 
class CT_BracedDeclarator : public CT_Declarator {
30949
 
#line 30950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30950
 
  friend class ::WinIfExists;
30951
 
  friend class ::WinImportHandler;
30952
 
  friend class ::WinMacros;
30953
 
  friend class ::CMatchSyntax;
30954
 
  friend class ::ExtGnu;
30955
 
  friend class ::ExtAC;
30956
 
  friend class ::ExtACBuilderCoupling;
30957
 
  friend class ::ExtACSyntaxCoupling;
30958
 
  friend class ::ExtACTree;
30959
 
  friend class ::ExtACKeywords;
30960
 
  friend class ::WinAsm;
30961
 
  friend class ::WinDeclSpecs;
30962
 
  friend class ::WinMemberExplSpec;
30963
 
  friend class ::WinTypeKeywords;
30964
 
  friend class ::PragmaOnceUnitState;
30965
 
  friend class ::PragmaOnce;
30966
 
  friend class ::CCExprResolve;
30967
 
  friend class ::CExprResolve;
30968
 
 
30969
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30970
 
 
30971
 
  CTree *sons[4]; // open, win_specs, declarator, close
30972
 
 
30973
 
public:
30974
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
30975
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
30976
 
  }
30977
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
30978
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
30979
 
  }
30980
 
  static const char *NodeId ();
30981
 
  const char *NodeName () const { return NodeId (); }
30982
 
  int Sons () const { return CTree::Sons (sons, 4); }
30983
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
30984
 
  CTree *Declarator () const { return sons[2]; }
30985
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30986
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
30987
 
  }
30988
 
};
30989
 
 
30990
 
 
30991
 
#line 30992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
30992
 
} // closed Puma
30993
 
class WinIfExists;
30994
 
class WinImportHandler;
30995
 
class WinMacros;
30996
 
class CMatchSyntax;
30997
 
class ExtGnu;
30998
 
class ExtAC;
30999
 
class ExtACBuilderCoupling;
31000
 
class ExtACSyntaxCoupling;
31001
 
class ExtACTree;
31002
 
class ExtACKeywords;
31003
 
class WinAsm;
31004
 
class WinDeclSpecs;
31005
 
class WinMemberExplSpec;
31006
 
class WinTypeKeywords;
31007
 
class PragmaOnceUnitState;
31008
 
class PragmaOnce;
31009
 
class CCExprResolve;
31010
 
class CExprResolve;
31011
 
namespace Puma {
31012
 
 
31013
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31014
 
class CT_ArrayDelimiter : public CTree {
31015
 
#line 31016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31016
 
  friend class ::WinIfExists;
31017
 
  friend class ::WinImportHandler;
31018
 
  friend class ::WinMacros;
31019
 
  friend class ::CMatchSyntax;
31020
 
  friend class ::ExtGnu;
31021
 
  friend class ::ExtAC;
31022
 
  friend class ::ExtACBuilderCoupling;
31023
 
  friend class ::ExtACSyntaxCoupling;
31024
 
  friend class ::ExtACTree;
31025
 
  friend class ::ExtACKeywords;
31026
 
  friend class ::WinAsm;
31027
 
  friend class ::WinDeclSpecs;
31028
 
  friend class ::WinMemberExplSpec;
31029
 
  friend class ::WinTypeKeywords;
31030
 
  friend class ::PragmaOnceUnitState;
31031
 
  friend class ::PragmaOnce;
31032
 
  friend class ::CCExprResolve;
31033
 
  friend class ::CExprResolve;
31034
 
 
31035
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31036
 
 
31037
 
  CTree *sons[4]; // star, static, quals, expr
31038
 
  bool pos0;
31039
 
 
31040
 
public:
31041
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
31042
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
31043
 
  }
31044
 
  static const char *NodeId ();
31045
 
  const char *NodeName () const { return NodeId (); }
31046
 
  int Sons () const { return CTree::Sons (sons, 4); }
31047
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
31048
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
31049
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
31050
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
31051
 
  CTree *Expr () const { return sons[3]; }
31052
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31053
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
31054
 
  }
31055
 
};
31056
 
 
31057
 
 
31058
 
#line 31059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31059
 
} // closed Puma
31060
 
class WinIfExists;
31061
 
class WinImportHandler;
31062
 
class WinMacros;
31063
 
class CMatchSyntax;
31064
 
class ExtGnu;
31065
 
class ExtAC;
31066
 
class ExtACBuilderCoupling;
31067
 
class ExtACSyntaxCoupling;
31068
 
class ExtACTree;
31069
 
class ExtACKeywords;
31070
 
class WinAsm;
31071
 
class WinDeclSpecs;
31072
 
class WinMemberExplSpec;
31073
 
class WinTypeKeywords;
31074
 
class PragmaOnceUnitState;
31075
 
class PragmaOnce;
31076
 
class CCExprResolve;
31077
 
class CExprResolve;
31078
 
namespace Puma {
31079
 
 
31080
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31081
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
31082
 
#line 31083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31083
 
  friend class ::WinIfExists;
31084
 
  friend class ::WinImportHandler;
31085
 
  friend class ::WinMacros;
31086
 
  friend class ::CMatchSyntax;
31087
 
  friend class ::ExtGnu;
31088
 
  friend class ::ExtAC;
31089
 
  friend class ::ExtACBuilderCoupling;
31090
 
  friend class ::ExtACSyntaxCoupling;
31091
 
  friend class ::ExtACTree;
31092
 
  friend class ::ExtACKeywords;
31093
 
  friend class ::WinAsm;
31094
 
  friend class ::WinDeclSpecs;
31095
 
  friend class ::WinMemberExplSpec;
31096
 
  friend class ::WinTypeKeywords;
31097
 
  friend class ::PragmaOnceUnitState;
31098
 
  friend class ::PragmaOnce;
31099
 
  friend class ::CCExprResolve;
31100
 
  friend class ::CExprResolve;
31101
 
 
31102
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31103
 
 
31104
 
  CTree *sons[4]; // declarator, open, delim, close
31105
 
 
31106
 
public:
31107
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
31108
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
31109
 
  }
31110
 
  static const char *NodeId ();
31111
 
  const char *NodeName () const { return NodeId (); }
31112
 
  int Sons () const { return 4; }
31113
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
31114
 
  CTree *Declarator () const { return sons[0]; }
31115
 
  CT_ArrayDelimiter *Delimiter () const 
31116
 
   { return (CT_ArrayDelimiter*)sons[2]; }
31117
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31118
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
31119
 
  }
31120
 
  CTypeInfo *Type () const { return type; }
31121
 
  CExprValue *Value () const { return value; }
31122
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
31123
 
};
31124
 
 
31125
 
 
31126
 
#line 31127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31127
 
} // closed Puma
31128
 
class WinIfExists;
31129
 
class WinImportHandler;
31130
 
class WinMacros;
31131
 
class CMatchSyntax;
31132
 
class ExtGnu;
31133
 
class ExtAC;
31134
 
class ExtACBuilderCoupling;
31135
 
class ExtACSyntaxCoupling;
31136
 
class ExtACTree;
31137
 
class ExtACKeywords;
31138
 
class WinAsm;
31139
 
class WinDeclSpecs;
31140
 
class WinMemberExplSpec;
31141
 
class WinTypeKeywords;
31142
 
class PragmaOnceUnitState;
31143
 
class PragmaOnce;
31144
 
class CCExprResolve;
31145
 
class CExprResolve;
31146
 
namespace Puma {
31147
 
 
31148
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31149
 
class CT_FctDeclarator : public CT_Declarator {
31150
 
#line 31151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31151
 
  friend class ::WinIfExists;
31152
 
  friend class ::WinImportHandler;
31153
 
  friend class ::WinMacros;
31154
 
  friend class ::CMatchSyntax;
31155
 
  friend class ::ExtGnu;
31156
 
  friend class ::ExtAC;
31157
 
  friend class ::ExtACBuilderCoupling;
31158
 
  friend class ::ExtACSyntaxCoupling;
31159
 
  friend class ::ExtACTree;
31160
 
  friend class ::ExtACKeywords;
31161
 
  friend class ::WinAsm;
31162
 
  friend class ::WinDeclSpecs;
31163
 
  friend class ::WinMemberExplSpec;
31164
 
  friend class ::WinTypeKeywords;
31165
 
  friend class ::PragmaOnceUnitState;
31166
 
  friend class ::PragmaOnce;
31167
 
  friend class ::CCExprResolve;
31168
 
  friend class ::CExprResolve;
31169
 
 
31170
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31171
 
 
31172
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
31173
 
 
31174
 
public:
31175
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
31176
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
31177
 
  }
31178
 
  static const char *NodeId ();
31179
 
  const char *NodeName () const { return NodeId (); }
31180
 
  int Sons () const { return CTree::Sons (sons, 4); }
31181
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
31182
 
  CTree *Declarator () const { return sons[0]; }
31183
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
31184
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
31185
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
31186
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31187
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
31188
 
  }
31189
 
};
31190
 
 
31191
 
 
31192
 
#line 31193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31193
 
} // closed Puma
31194
 
class WinIfExists;
31195
 
class WinImportHandler;
31196
 
class WinMacros;
31197
 
class CMatchSyntax;
31198
 
class ExtGnu;
31199
 
class ExtAC;
31200
 
class ExtACBuilderCoupling;
31201
 
class ExtACSyntaxCoupling;
31202
 
class ExtACTree;
31203
 
class ExtACKeywords;
31204
 
class WinAsm;
31205
 
class WinDeclSpecs;
31206
 
class WinMemberExplSpec;
31207
 
class WinTypeKeywords;
31208
 
class PragmaOnceUnitState;
31209
 
class PragmaOnce;
31210
 
class CCExprResolve;
31211
 
class CExprResolve;
31212
 
namespace Puma {
31213
 
 
31214
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31215
 
class CT_RefDeclarator : public CT_Declarator {
31216
 
#line 31217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31217
 
  friend class ::WinIfExists;
31218
 
  friend class ::WinImportHandler;
31219
 
  friend class ::WinMacros;
31220
 
  friend class ::CMatchSyntax;
31221
 
  friend class ::ExtGnu;
31222
 
  friend class ::ExtAC;
31223
 
  friend class ::ExtACBuilderCoupling;
31224
 
  friend class ::ExtACSyntaxCoupling;
31225
 
  friend class ::ExtACTree;
31226
 
  friend class ::ExtACKeywords;
31227
 
  friend class ::WinAsm;
31228
 
  friend class ::WinDeclSpecs;
31229
 
  friend class ::WinMemberExplSpec;
31230
 
  friend class ::WinTypeKeywords;
31231
 
  friend class ::PragmaOnceUnitState;
31232
 
  friend class ::PragmaOnce;
31233
 
  friend class ::CCExprResolve;
31234
 
  friend class ::CExprResolve;
31235
 
 
31236
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31237
 
 
31238
 
  CTree *sons[2]; // ref, declarator
31239
 
 
31240
 
public:
31241
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
31242
 
  static const char *NodeId ();
31243
 
  const char *NodeName () const { return NodeId (); }
31244
 
  int Sons () const { return 2; }
31245
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
31246
 
  CTree *Declarator () const { return sons[1]; }
31247
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
31248
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
31249
 
  }
31250
 
};
31251
 
 
31252
 
 
31253
 
#line 31254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31254
 
} // closed Puma
31255
 
class WinIfExists;
31256
 
class WinImportHandler;
31257
 
class WinMacros;
31258
 
class CMatchSyntax;
31259
 
class ExtGnu;
31260
 
class ExtAC;
31261
 
class ExtACBuilderCoupling;
31262
 
class ExtACSyntaxCoupling;
31263
 
class ExtACTree;
31264
 
class ExtACKeywords;
31265
 
class WinAsm;
31266
 
class WinDeclSpecs;
31267
 
class WinMemberExplSpec;
31268
 
class WinTypeKeywords;
31269
 
class PragmaOnceUnitState;
31270
 
class PragmaOnce;
31271
 
class CCExprResolve;
31272
 
class CExprResolve;
31273
 
namespace Puma {
31274
 
 
31275
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31276
 
class CT_PtrDeclarator : public CT_Declarator {
31277
 
#line 31278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31278
 
  friend class ::WinIfExists;
31279
 
  friend class ::WinImportHandler;
31280
 
  friend class ::WinMacros;
31281
 
  friend class ::CMatchSyntax;
31282
 
  friend class ::ExtGnu;
31283
 
  friend class ::ExtAC;
31284
 
  friend class ::ExtACBuilderCoupling;
31285
 
  friend class ::ExtACSyntaxCoupling;
31286
 
  friend class ::ExtACTree;
31287
 
  friend class ::ExtACKeywords;
31288
 
  friend class ::WinAsm;
31289
 
  friend class ::WinDeclSpecs;
31290
 
  friend class ::WinMemberExplSpec;
31291
 
  friend class ::WinTypeKeywords;
31292
 
  friend class ::PragmaOnceUnitState;
31293
 
  friend class ::PragmaOnce;
31294
 
  friend class ::CCExprResolve;
31295
 
  friend class ::CExprResolve;
31296
 
 
31297
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31298
 
 
31299
 
  CTree *sons[3]; // ptr, cv_quals, declarator
31300
 
 
31301
 
public:
31302
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
31303
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
31304
 
  }
31305
 
  static const char *NodeId ();
31306
 
  const char *NodeName () const { return NodeId (); }
31307
 
  int Sons () const { return CTree::Sons (sons, 3); }
31308
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31309
 
  CTree *Declarator () const { return sons[2]; }
31310
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
31311
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31312
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31313
 
  }
31314
 
};
31315
 
 
31316
 
 
31317
 
#line 31318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31318
 
} // closed Puma
31319
 
class WinIfExists;
31320
 
class WinImportHandler;
31321
 
class WinMacros;
31322
 
class CMatchSyntax;
31323
 
class ExtGnu;
31324
 
class ExtAC;
31325
 
class ExtACBuilderCoupling;
31326
 
class ExtACSyntaxCoupling;
31327
 
class ExtACTree;
31328
 
class ExtACKeywords;
31329
 
class WinAsm;
31330
 
class WinDeclSpecs;
31331
 
class WinMemberExplSpec;
31332
 
class WinTypeKeywords;
31333
 
class PragmaOnceUnitState;
31334
 
class PragmaOnce;
31335
 
class CCExprResolve;
31336
 
class CExprResolve;
31337
 
namespace Puma {
31338
 
 
31339
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31340
 
class CT_MembPtrDeclarator : public CT_Declarator {
31341
 
#line 31342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31342
 
  friend class ::WinIfExists;
31343
 
  friend class ::WinImportHandler;
31344
 
  friend class ::WinMacros;
31345
 
  friend class ::CMatchSyntax;
31346
 
  friend class ::ExtGnu;
31347
 
  friend class ::ExtAC;
31348
 
  friend class ::ExtACBuilderCoupling;
31349
 
  friend class ::ExtACSyntaxCoupling;
31350
 
  friend class ::ExtACTree;
31351
 
  friend class ::ExtACKeywords;
31352
 
  friend class ::WinAsm;
31353
 
  friend class ::WinDeclSpecs;
31354
 
  friend class ::WinMemberExplSpec;
31355
 
  friend class ::WinTypeKeywords;
31356
 
  friend class ::PragmaOnceUnitState;
31357
 
  friend class ::PragmaOnce;
31358
 
  friend class ::CCExprResolve;
31359
 
  friend class ::CExprResolve;
31360
 
 
31361
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31362
 
 
31363
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
31364
 
 
31365
 
public:
31366
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
31367
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
31368
 
  }
31369
 
  static const char *NodeId ();
31370
 
  const char *NodeName () const { return NodeId (); }
31371
 
  int Sons () const { return CTree::Sons (sons, 5); }
31372
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
31373
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
31374
 
  CTree *Declarator () const { return sons[4]; }
31375
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
31376
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31377
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
31378
 
  }
31379
 
};
31380
 
 
31381
 
 
31382
 
#line 31383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31383
 
} // closed Puma
31384
 
class WinIfExists;
31385
 
class WinImportHandler;
31386
 
class WinMacros;
31387
 
class CMatchSyntax;
31388
 
class ExtGnu;
31389
 
class ExtAC;
31390
 
class ExtACBuilderCoupling;
31391
 
class ExtACSyntaxCoupling;
31392
 
class ExtACTree;
31393
 
class ExtACKeywords;
31394
 
class WinAsm;
31395
 
class WinDeclSpecs;
31396
 
class WinMemberExplSpec;
31397
 
class WinTypeKeywords;
31398
 
class PragmaOnceUnitState;
31399
 
class PragmaOnce;
31400
 
class CCExprResolve;
31401
 
class CExprResolve;
31402
 
namespace Puma {
31403
 
 
31404
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31405
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
31406
 
#line 31407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31407
 
  friend class ::WinIfExists;
31408
 
  friend class ::WinImportHandler;
31409
 
  friend class ::WinMacros;
31410
 
  friend class ::CMatchSyntax;
31411
 
  friend class ::ExtGnu;
31412
 
  friend class ::ExtAC;
31413
 
  friend class ::ExtACBuilderCoupling;
31414
 
  friend class ::ExtACSyntaxCoupling;
31415
 
  friend class ::ExtACTree;
31416
 
  friend class ::ExtACKeywords;
31417
 
  friend class ::WinAsm;
31418
 
  friend class ::WinDeclSpecs;
31419
 
  friend class ::WinMemberExplSpec;
31420
 
  friend class ::WinTypeKeywords;
31421
 
  friend class ::PragmaOnceUnitState;
31422
 
  friend class ::PragmaOnce;
31423
 
  friend class ::CCExprResolve;
31424
 
  friend class ::CExprResolve;
31425
 
 
31426
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31427
 
 
31428
 
  CTree *sons[3]; // declarator, colon, expr
31429
 
 
31430
 
public:
31431
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
31432
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
31433
 
  }
31434
 
  static const char *NodeId ();
31435
 
  const char *NodeName () const { return NodeId (); }
31436
 
  int Sons () const { return CTree::Sons (sons, 3); }
31437
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31438
 
  CTree *Declarator () const { return sons[0]; }
31439
 
  CTree *Expr () const { return sons[2]; }
31440
 
  void FieldSize (CTree *s) { sons[2] = s; }
31441
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
31442
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31443
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31444
 
  }
31445
 
};
31446
 
 
31447
 
/*****************************************************************************/
31448
 
/*                                                                           */
31449
 
/*                              Statements                                   */
31450
 
/*                                                                           */
31451
 
/*****************************************************************************/
31452
 
 
31453
 
 
31454
 
#line 31455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31455
 
} // closed Puma
31456
 
class WinIfExists;
31457
 
class WinImportHandler;
31458
 
class WinMacros;
31459
 
class CMatchSyntax;
31460
 
class ExtGnu;
31461
 
class ExtAC;
31462
 
class ExtACBuilderCoupling;
31463
 
class ExtACSyntaxCoupling;
31464
 
class ExtACTree;
31465
 
class ExtACKeywords;
31466
 
class WinAsm;
31467
 
class WinDeclSpecs;
31468
 
class WinMemberExplSpec;
31469
 
class WinTypeKeywords;
31470
 
class PragmaOnceUnitState;
31471
 
class PragmaOnce;
31472
 
class CCExprResolve;
31473
 
class CExprResolve;
31474
 
namespace Puma {
31475
 
 
31476
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31477
 
class CT_Statement : public CTree {
31478
 
#line 31479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31479
 
  friend class ::WinIfExists;
31480
 
  friend class ::WinImportHandler;
31481
 
  friend class ::WinMacros;
31482
 
  friend class ::CMatchSyntax;
31483
 
  friend class ::ExtGnu;
31484
 
  friend class ::ExtAC;
31485
 
  friend class ::ExtACBuilderCoupling;
31486
 
  friend class ::ExtACSyntaxCoupling;
31487
 
  friend class ::ExtACTree;
31488
 
  friend class ::ExtACKeywords;
31489
 
  friend class ::WinAsm;
31490
 
  friend class ::WinDeclSpecs;
31491
 
  friend class ::WinMemberExplSpec;
31492
 
  friend class ::WinTypeKeywords;
31493
 
  friend class ::PragmaOnceUnitState;
31494
 
  friend class ::PragmaOnce;
31495
 
  friend class ::CCExprResolve;
31496
 
  friend class ::CExprResolve;
31497
 
 
31498
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31499
 
 
31500
 
protected:
31501
 
  CT_Statement () {}
31502
 
};
31503
 
 
31504
 
 
31505
 
#line 31506 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31506
 
} // closed Puma
31507
 
class WinIfExists;
31508
 
class WinImportHandler;
31509
 
class WinMacros;
31510
 
class CMatchSyntax;
31511
 
class ExtGnu;
31512
 
class ExtAC;
31513
 
class ExtACBuilderCoupling;
31514
 
class ExtACSyntaxCoupling;
31515
 
class ExtACTree;
31516
 
class ExtACKeywords;
31517
 
class WinAsm;
31518
 
class WinDeclSpecs;
31519
 
class WinMemberExplSpec;
31520
 
class WinTypeKeywords;
31521
 
class PragmaOnceUnitState;
31522
 
class PragmaOnce;
31523
 
class CCExprResolve;
31524
 
class CExprResolve;
31525
 
namespace Puma {
31526
 
 
31527
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31528
 
class CT_LabelStmt : public CT_Statement {
31529
 
#line 31530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31530
 
  friend class ::WinIfExists;
31531
 
  friend class ::WinImportHandler;
31532
 
  friend class ::WinMacros;
31533
 
  friend class ::CMatchSyntax;
31534
 
  friend class ::ExtGnu;
31535
 
  friend class ::ExtAC;
31536
 
  friend class ::ExtACBuilderCoupling;
31537
 
  friend class ::ExtACSyntaxCoupling;
31538
 
  friend class ::ExtACTree;
31539
 
  friend class ::ExtACKeywords;
31540
 
  friend class ::WinAsm;
31541
 
  friend class ::WinDeclSpecs;
31542
 
  friend class ::WinMemberExplSpec;
31543
 
  friend class ::WinTypeKeywords;
31544
 
  friend class ::PragmaOnceUnitState;
31545
 
  friend class ::PragmaOnce;
31546
 
  friend class ::CCExprResolve;
31547
 
  friend class ::CExprResolve;
31548
 
 
31549
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31550
 
 
31551
 
  CTree *sons[3]; // id, colon, stmt
31552
 
 
31553
 
public:
31554
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
31555
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
31556
 
  }
31557
 
  static const char *NodeId ();
31558
 
  const char *NodeName () const { return NodeId (); }
31559
 
  int Sons () const { return 3; }
31560
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31561
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
31562
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
31563
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31564
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31565
 
  }
31566
 
};
31567
 
 
31568
 
 
31569
 
#line 31570 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31570
 
} // closed Puma
31571
 
class WinIfExists;
31572
 
class WinImportHandler;
31573
 
class WinMacros;
31574
 
class CMatchSyntax;
31575
 
class ExtGnu;
31576
 
class ExtAC;
31577
 
class ExtACBuilderCoupling;
31578
 
class ExtACSyntaxCoupling;
31579
 
class ExtACTree;
31580
 
class ExtACKeywords;
31581
 
class WinAsm;
31582
 
class WinDeclSpecs;
31583
 
class WinMemberExplSpec;
31584
 
class WinTypeKeywords;
31585
 
class PragmaOnceUnitState;
31586
 
class PragmaOnce;
31587
 
class CCExprResolve;
31588
 
class CExprResolve;
31589
 
namespace Puma {
31590
 
 
31591
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31592
 
class CT_DefaultStmt : public CT_Statement {
31593
 
#line 31594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31594
 
  friend class ::WinIfExists;
31595
 
  friend class ::WinImportHandler;
31596
 
  friend class ::WinMacros;
31597
 
  friend class ::CMatchSyntax;
31598
 
  friend class ::ExtGnu;
31599
 
  friend class ::ExtAC;
31600
 
  friend class ::ExtACBuilderCoupling;
31601
 
  friend class ::ExtACSyntaxCoupling;
31602
 
  friend class ::ExtACTree;
31603
 
  friend class ::ExtACKeywords;
31604
 
  friend class ::WinAsm;
31605
 
  friend class ::WinDeclSpecs;
31606
 
  friend class ::WinMemberExplSpec;
31607
 
  friend class ::WinTypeKeywords;
31608
 
  friend class ::PragmaOnceUnitState;
31609
 
  friend class ::PragmaOnce;
31610
 
  friend class ::CCExprResolve;
31611
 
  friend class ::CExprResolve;
31612
 
 
31613
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31614
 
 
31615
 
  CTree *sons[3]; // keyword, colon, stmt
31616
 
 
31617
 
public:
31618
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
31619
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
31620
 
  }
31621
 
  static const char *NodeId ();
31622
 
  const char *NodeName () const { return NodeId (); }
31623
 
  int Sons () const { return 3; }
31624
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31625
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
31626
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31627
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31628
 
  }
31629
 
};
31630
 
 
31631
 
 
31632
 
#line 31633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31633
 
} // closed Puma
31634
 
class WinIfExists;
31635
 
class WinImportHandler;
31636
 
class WinMacros;
31637
 
class CMatchSyntax;
31638
 
class ExtGnu;
31639
 
class ExtAC;
31640
 
class ExtACBuilderCoupling;
31641
 
class ExtACSyntaxCoupling;
31642
 
class ExtACTree;
31643
 
class ExtACKeywords;
31644
 
class WinAsm;
31645
 
class WinDeclSpecs;
31646
 
class WinMemberExplSpec;
31647
 
class WinTypeKeywords;
31648
 
class PragmaOnceUnitState;
31649
 
class PragmaOnce;
31650
 
class CCExprResolve;
31651
 
class CExprResolve;
31652
 
namespace Puma {
31653
 
 
31654
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31655
 
class CT_TryStmt : public CT_Statement {
31656
 
#line 31657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31657
 
  friend class ::WinIfExists;
31658
 
  friend class ::WinImportHandler;
31659
 
  friend class ::WinMacros;
31660
 
  friend class ::CMatchSyntax;
31661
 
  friend class ::ExtGnu;
31662
 
  friend class ::ExtAC;
31663
 
  friend class ::ExtACBuilderCoupling;
31664
 
  friend class ::ExtACSyntaxCoupling;
31665
 
  friend class ::ExtACTree;
31666
 
  friend class ::ExtACKeywords;
31667
 
  friend class ::WinAsm;
31668
 
  friend class ::WinDeclSpecs;
31669
 
  friend class ::WinMemberExplSpec;
31670
 
  friend class ::WinTypeKeywords;
31671
 
  friend class ::PragmaOnceUnitState;
31672
 
  friend class ::PragmaOnce;
31673
 
  friend class ::CCExprResolve;
31674
 
  friend class ::CExprResolve;
31675
 
 
31676
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31677
 
 
31678
 
  CTree *sons[3]; // try, stmt, handlers
31679
 
 
31680
 
public:
31681
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
31682
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
31683
 
  }
31684
 
  static const char *NodeId ();
31685
 
  const char *NodeName () const { return NodeId (); }
31686
 
  int Sons () const { return 3; }
31687
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31688
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
31689
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
31690
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31691
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31692
 
  }
31693
 
};
31694
 
 
31695
 
 
31696
 
#line 31697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31697
 
} // closed Puma
31698
 
class WinIfExists;
31699
 
class WinImportHandler;
31700
 
class WinMacros;
31701
 
class CMatchSyntax;
31702
 
class ExtGnu;
31703
 
class ExtAC;
31704
 
class ExtACBuilderCoupling;
31705
 
class ExtACSyntaxCoupling;
31706
 
class ExtACTree;
31707
 
class ExtACKeywords;
31708
 
class WinAsm;
31709
 
class WinDeclSpecs;
31710
 
class WinMemberExplSpec;
31711
 
class WinTypeKeywords;
31712
 
class PragmaOnceUnitState;
31713
 
class PragmaOnce;
31714
 
class CCExprResolve;
31715
 
class CExprResolve;
31716
 
namespace Puma {
31717
 
 
31718
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31719
 
class CT_CaseStmt : public CT_Statement {
31720
 
#line 31721 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31721
 
  friend class ::WinIfExists;
31722
 
  friend class ::WinImportHandler;
31723
 
  friend class ::WinMacros;
31724
 
  friend class ::CMatchSyntax;
31725
 
  friend class ::ExtGnu;
31726
 
  friend class ::ExtAC;
31727
 
  friend class ::ExtACBuilderCoupling;
31728
 
  friend class ::ExtACSyntaxCoupling;
31729
 
  friend class ::ExtACTree;
31730
 
  friend class ::ExtACKeywords;
31731
 
  friend class ::WinAsm;
31732
 
  friend class ::WinDeclSpecs;
31733
 
  friend class ::WinMemberExplSpec;
31734
 
  friend class ::WinTypeKeywords;
31735
 
  friend class ::PragmaOnceUnitState;
31736
 
  friend class ::PragmaOnce;
31737
 
  friend class ::CCExprResolve;
31738
 
  friend class ::CExprResolve;
31739
 
 
31740
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31741
 
 
31742
 
  CTree *sons[4]; // keyword, expr, colon, stmt
31743
 
 
31744
 
public:
31745
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
31746
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
31747
 
  }
31748
 
  static const char *NodeId ();
31749
 
  const char *NodeName () const { return NodeId (); }
31750
 
  int Sons () const { return 4; }
31751
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
31752
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
31753
 
  CTree *Expr () const { return sons[1]; }
31754
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31755
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
31756
 
  }
31757
 
};
31758
 
 
31759
 
 
31760
 
#line 31761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31761
 
} // closed Puma
31762
 
class WinIfExists;
31763
 
class WinImportHandler;
31764
 
class WinMacros;
31765
 
class CMatchSyntax;
31766
 
class ExtGnu;
31767
 
class ExtAC;
31768
 
class ExtACBuilderCoupling;
31769
 
class ExtACSyntaxCoupling;
31770
 
class ExtACTree;
31771
 
class ExtACKeywords;
31772
 
class WinAsm;
31773
 
class WinDeclSpecs;
31774
 
class WinMemberExplSpec;
31775
 
class WinTypeKeywords;
31776
 
class PragmaOnceUnitState;
31777
 
class PragmaOnce;
31778
 
class CCExprResolve;
31779
 
class CExprResolve;
31780
 
namespace Puma {
31781
 
 
31782
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31783
 
class CT_ExprStmt : public CT_Statement {
31784
 
#line 31785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31785
 
  friend class ::WinIfExists;
31786
 
  friend class ::WinImportHandler;
31787
 
  friend class ::WinMacros;
31788
 
  friend class ::CMatchSyntax;
31789
 
  friend class ::ExtGnu;
31790
 
  friend class ::ExtAC;
31791
 
  friend class ::ExtACBuilderCoupling;
31792
 
  friend class ::ExtACSyntaxCoupling;
31793
 
  friend class ::ExtACTree;
31794
 
  friend class ::ExtACKeywords;
31795
 
  friend class ::WinAsm;
31796
 
  friend class ::WinDeclSpecs;
31797
 
  friend class ::WinMemberExplSpec;
31798
 
  friend class ::WinTypeKeywords;
31799
 
  friend class ::PragmaOnceUnitState;
31800
 
  friend class ::PragmaOnce;
31801
 
  friend class ::CCExprResolve;
31802
 
  friend class ::CExprResolve;
31803
 
 
31804
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31805
 
 
31806
 
  CTree *sons[2]; // expr, semi_colon
31807
 
 
31808
 
public:
31809
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
31810
 
  static const char *NodeId ();
31811
 
  const char *NodeName () const { return NodeId (); }
31812
 
  int Sons () const { return CTree::Sons (sons, 2); }
31813
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
31814
 
  CTree *Expr () const { return sons[0]; }
31815
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31816
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
31817
 
  }
31818
 
};
31819
 
 
31820
 
 
31821
 
#line 31822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31822
 
} // closed Puma
31823
 
class WinIfExists;
31824
 
class WinImportHandler;
31825
 
class WinMacros;
31826
 
class CMatchSyntax;
31827
 
class ExtGnu;
31828
 
class ExtAC;
31829
 
class ExtACBuilderCoupling;
31830
 
class ExtACSyntaxCoupling;
31831
 
class ExtACTree;
31832
 
class ExtACKeywords;
31833
 
class WinAsm;
31834
 
class WinDeclSpecs;
31835
 
class WinMemberExplSpec;
31836
 
class WinTypeKeywords;
31837
 
class PragmaOnceUnitState;
31838
 
class PragmaOnce;
31839
 
class CCExprResolve;
31840
 
class CExprResolve;
31841
 
namespace Puma {
31842
 
 
31843
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31844
 
class CT_DeclStmt : public CT_Statement {
31845
 
#line 31846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31846
 
  friend class ::WinIfExists;
31847
 
  friend class ::WinImportHandler;
31848
 
  friend class ::WinMacros;
31849
 
  friend class ::CMatchSyntax;
31850
 
  friend class ::ExtGnu;
31851
 
  friend class ::ExtAC;
31852
 
  friend class ::ExtACBuilderCoupling;
31853
 
  friend class ::ExtACSyntaxCoupling;
31854
 
  friend class ::ExtACTree;
31855
 
  friend class ::ExtACKeywords;
31856
 
  friend class ::WinAsm;
31857
 
  friend class ::WinDeclSpecs;
31858
 
  friend class ::WinMemberExplSpec;
31859
 
  friend class ::WinTypeKeywords;
31860
 
  friend class ::PragmaOnceUnitState;
31861
 
  friend class ::PragmaOnce;
31862
 
  friend class ::CCExprResolve;
31863
 
  friend class ::CExprResolve;
31864
 
 
31865
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31866
 
 
31867
 
  CTree *_decl;
31868
 
 
31869
 
public:
31870
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
31871
 
  static const char *NodeId ();
31872
 
  const char *NodeName () const { return NodeId (); }
31873
 
  int Sons () const { return 1; }
31874
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
31875
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
31876
 
   { if (old_son == _decl) _decl = new_son; }
31877
 
};
31878
 
 
31879
 
 
31880
 
#line 31881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31881
 
} // closed Puma
31882
 
class WinIfExists;
31883
 
class WinImportHandler;
31884
 
class WinMacros;
31885
 
class CMatchSyntax;
31886
 
class ExtGnu;
31887
 
class ExtAC;
31888
 
class ExtACBuilderCoupling;
31889
 
class ExtACSyntaxCoupling;
31890
 
class ExtACTree;
31891
 
class ExtACKeywords;
31892
 
class WinAsm;
31893
 
class WinDeclSpecs;
31894
 
class WinMemberExplSpec;
31895
 
class WinTypeKeywords;
31896
 
class PragmaOnceUnitState;
31897
 
class PragmaOnce;
31898
 
class CCExprResolve;
31899
 
class CExprResolve;
31900
 
namespace Puma {
31901
 
 
31902
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31903
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
31904
 
#line 31905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31905
 
  friend class ::WinIfExists;
31906
 
  friend class ::WinImportHandler;
31907
 
  friend class ::WinMacros;
31908
 
  friend class ::CMatchSyntax;
31909
 
  friend class ::ExtGnu;
31910
 
  friend class ::ExtAC;
31911
 
  friend class ::ExtACBuilderCoupling;
31912
 
  friend class ::ExtACSyntaxCoupling;
31913
 
  friend class ::ExtACTree;
31914
 
  friend class ::ExtACKeywords;
31915
 
  friend class ::WinAsm;
31916
 
  friend class ::WinDeclSpecs;
31917
 
  friend class ::WinMemberExplSpec;
31918
 
  friend class ::WinTypeKeywords;
31919
 
  friend class ::PragmaOnceUnitState;
31920
 
  friend class ::PragmaOnce;
31921
 
  friend class ::CCExprResolve;
31922
 
  friend class ::CExprResolve;
31923
 
 
31924
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31925
 
 
31926
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
31927
 
 
31928
 
public:
31929
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
31930
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
31931
 
  }
31932
 
  static const char *NodeId ();
31933
 
  const char *NodeName () const { return NodeId (); }
31934
 
  int Sons () const { return 5; }
31935
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
31936
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
31937
 
  CTree *Condition () const { return sons[2]; }
31938
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31939
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
31940
 
  }
31941
 
};
31942
 
 
31943
 
 
31944
 
#line 31945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31945
 
} // closed Puma
31946
 
class WinIfExists;
31947
 
class WinImportHandler;
31948
 
class WinMacros;
31949
 
class CMatchSyntax;
31950
 
class ExtGnu;
31951
 
class ExtAC;
31952
 
class ExtACBuilderCoupling;
31953
 
class ExtACSyntaxCoupling;
31954
 
class ExtACTree;
31955
 
class ExtACKeywords;
31956
 
class WinAsm;
31957
 
class WinDeclSpecs;
31958
 
class WinMemberExplSpec;
31959
 
class WinTypeKeywords;
31960
 
class PragmaOnceUnitState;
31961
 
class PragmaOnce;
31962
 
class CCExprResolve;
31963
 
class CExprResolve;
31964
 
namespace Puma {
31965
 
 
31966
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31967
 
class CT_IfStmt : public CT_Statement, public CSemScope {
31968
 
#line 31969 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
31969
 
  friend class ::WinIfExists;
31970
 
  friend class ::WinImportHandler;
31971
 
  friend class ::WinMacros;
31972
 
  friend class ::CMatchSyntax;
31973
 
  friend class ::ExtGnu;
31974
 
  friend class ::ExtAC;
31975
 
  friend class ::ExtACBuilderCoupling;
31976
 
  friend class ::ExtACSyntaxCoupling;
31977
 
  friend class ::ExtACTree;
31978
 
  friend class ::ExtACKeywords;
31979
 
  friend class ::WinAsm;
31980
 
  friend class ::WinDeclSpecs;
31981
 
  friend class ::WinMemberExplSpec;
31982
 
  friend class ::WinTypeKeywords;
31983
 
  friend class ::PragmaOnceUnitState;
31984
 
  friend class ::PragmaOnce;
31985
 
  friend class ::CCExprResolve;
31986
 
  friend class ::CExprResolve;
31987
 
 
31988
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31989
 
 
31990
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
31991
 
 
31992
 
public:
31993
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
31994
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
31995
 
  }
31996
 
  static const char *NodeId ();
31997
 
  const char *NodeName () const { return NodeId (); }
31998
 
  int Sons () const { return 5; }
31999
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
32000
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
32001
 
  CTree *Condition () const { return sons[2]; }
32002
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32003
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
32004
 
  }
32005
 
};
32006
 
 
32007
 
 
32008
 
#line 32009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32009
 
} // closed Puma
32010
 
class WinIfExists;
32011
 
class WinImportHandler;
32012
 
class WinMacros;
32013
 
class CMatchSyntax;
32014
 
class ExtGnu;
32015
 
class ExtAC;
32016
 
class ExtACBuilderCoupling;
32017
 
class ExtACSyntaxCoupling;
32018
 
class ExtACTree;
32019
 
class ExtACKeywords;
32020
 
class WinAsm;
32021
 
class WinDeclSpecs;
32022
 
class WinMemberExplSpec;
32023
 
class WinTypeKeywords;
32024
 
class PragmaOnceUnitState;
32025
 
class PragmaOnce;
32026
 
class CCExprResolve;
32027
 
class CExprResolve;
32028
 
namespace Puma {
32029
 
 
32030
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32031
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
32032
 
#line 32033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32033
 
  friend class ::WinIfExists;
32034
 
  friend class ::WinImportHandler;
32035
 
  friend class ::WinMacros;
32036
 
  friend class ::CMatchSyntax;
32037
 
  friend class ::ExtGnu;
32038
 
  friend class ::ExtAC;
32039
 
  friend class ::ExtACBuilderCoupling;
32040
 
  friend class ::ExtACSyntaxCoupling;
32041
 
  friend class ::ExtACTree;
32042
 
  friend class ::ExtACKeywords;
32043
 
  friend class ::WinAsm;
32044
 
  friend class ::WinDeclSpecs;
32045
 
  friend class ::WinMemberExplSpec;
32046
 
  friend class ::WinTypeKeywords;
32047
 
  friend class ::PragmaOnceUnitState;
32048
 
  friend class ::PragmaOnce;
32049
 
  friend class ::CCExprResolve;
32050
 
  friend class ::CExprResolve;
32051
 
 
32052
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32053
 
 
32054
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
32055
 
 
32056
 
public:
32057
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
32058
 
                 CTree *is, CTree *e, CTree *es) {
32059
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
32060
 
    sons[5] = e; sons[6] = es; 
32061
 
  }
32062
 
  static const char *NodeId ();
32063
 
  const char *NodeName () const { return NodeId (); }
32064
 
  int Sons () const { return 7; }
32065
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
32066
 
  CTree *Condition () const { return sons[2]; }
32067
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
32068
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
32069
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32070
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
32071
 
  }
32072
 
};
32073
 
 
32074
 
 
32075
 
#line 32076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32076
 
} // closed Puma
32077
 
class WinIfExists;
32078
 
class WinImportHandler;
32079
 
class WinMacros;
32080
 
class CMatchSyntax;
32081
 
class ExtGnu;
32082
 
class ExtAC;
32083
 
class ExtACBuilderCoupling;
32084
 
class ExtACSyntaxCoupling;
32085
 
class ExtACTree;
32086
 
class ExtACKeywords;
32087
 
class WinAsm;
32088
 
class WinDeclSpecs;
32089
 
class WinMemberExplSpec;
32090
 
class WinTypeKeywords;
32091
 
class PragmaOnceUnitState;
32092
 
class PragmaOnce;
32093
 
class CCExprResolve;
32094
 
class CExprResolve;
32095
 
namespace Puma {
32096
 
 
32097
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32098
 
class CT_BreakStmt : public CT_Statement {
32099
 
#line 32100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32100
 
  friend class ::WinIfExists;
32101
 
  friend class ::WinImportHandler;
32102
 
  friend class ::WinMacros;
32103
 
  friend class ::CMatchSyntax;
32104
 
  friend class ::ExtGnu;
32105
 
  friend class ::ExtAC;
32106
 
  friend class ::ExtACBuilderCoupling;
32107
 
  friend class ::ExtACSyntaxCoupling;
32108
 
  friend class ::ExtACTree;
32109
 
  friend class ::ExtACKeywords;
32110
 
  friend class ::WinAsm;
32111
 
  friend class ::WinDeclSpecs;
32112
 
  friend class ::WinMemberExplSpec;
32113
 
  friend class ::WinTypeKeywords;
32114
 
  friend class ::PragmaOnceUnitState;
32115
 
  friend class ::PragmaOnce;
32116
 
  friend class ::CCExprResolve;
32117
 
  friend class ::CExprResolve;
32118
 
 
32119
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32120
 
 
32121
 
  CTree *sons[2]; // key, semi_colon
32122
 
 
32123
 
public:
32124
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
32125
 
  static const char *NodeId ();
32126
 
  const char *NodeName () const { return NodeId (); }
32127
 
  int Sons () const { return 2; }
32128
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
32129
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32130
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
32131
 
  }
32132
 
};
32133
 
 
32134
 
 
32135
 
#line 32136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32136
 
} // closed Puma
32137
 
class WinIfExists;
32138
 
class WinImportHandler;
32139
 
class WinMacros;
32140
 
class CMatchSyntax;
32141
 
class ExtGnu;
32142
 
class ExtAC;
32143
 
class ExtACBuilderCoupling;
32144
 
class ExtACSyntaxCoupling;
32145
 
class ExtACTree;
32146
 
class ExtACKeywords;
32147
 
class WinAsm;
32148
 
class WinDeclSpecs;
32149
 
class WinMemberExplSpec;
32150
 
class WinTypeKeywords;
32151
 
class PragmaOnceUnitState;
32152
 
class PragmaOnce;
32153
 
class CCExprResolve;
32154
 
class CExprResolve;
32155
 
namespace Puma {
32156
 
 
32157
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32158
 
class CT_ContinueStmt : public CT_Statement {
32159
 
#line 32160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32160
 
  friend class ::WinIfExists;
32161
 
  friend class ::WinImportHandler;
32162
 
  friend class ::WinMacros;
32163
 
  friend class ::CMatchSyntax;
32164
 
  friend class ::ExtGnu;
32165
 
  friend class ::ExtAC;
32166
 
  friend class ::ExtACBuilderCoupling;
32167
 
  friend class ::ExtACSyntaxCoupling;
32168
 
  friend class ::ExtACTree;
32169
 
  friend class ::ExtACKeywords;
32170
 
  friend class ::WinAsm;
32171
 
  friend class ::WinDeclSpecs;
32172
 
  friend class ::WinMemberExplSpec;
32173
 
  friend class ::WinTypeKeywords;
32174
 
  friend class ::PragmaOnceUnitState;
32175
 
  friend class ::PragmaOnce;
32176
 
  friend class ::CCExprResolve;
32177
 
  friend class ::CExprResolve;
32178
 
 
32179
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32180
 
 
32181
 
  CTree *sons[2]; // key, semi_colon
32182
 
 
32183
 
public:
32184
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
32185
 
  static const char *NodeId ();
32186
 
  const char *NodeName () const { return NodeId (); }
32187
 
  int Sons () const { return 2; }
32188
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
32189
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32190
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
32191
 
  }
32192
 
};
32193
 
 
32194
 
 
32195
 
#line 32196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32196
 
} // closed Puma
32197
 
class WinIfExists;
32198
 
class WinImportHandler;
32199
 
class WinMacros;
32200
 
class CMatchSyntax;
32201
 
class ExtGnu;
32202
 
class ExtAC;
32203
 
class ExtACBuilderCoupling;
32204
 
class ExtACSyntaxCoupling;
32205
 
class ExtACTree;
32206
 
class ExtACKeywords;
32207
 
class WinAsm;
32208
 
class WinDeclSpecs;
32209
 
class WinMemberExplSpec;
32210
 
class WinTypeKeywords;
32211
 
class PragmaOnceUnitState;
32212
 
class PragmaOnce;
32213
 
class CCExprResolve;
32214
 
class CExprResolve;
32215
 
namespace Puma {
32216
 
 
32217
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32218
 
class CT_GotoStmt : public CT_Statement {
32219
 
#line 32220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32220
 
  friend class ::WinIfExists;
32221
 
  friend class ::WinImportHandler;
32222
 
  friend class ::WinMacros;
32223
 
  friend class ::CMatchSyntax;
32224
 
  friend class ::ExtGnu;
32225
 
  friend class ::ExtAC;
32226
 
  friend class ::ExtACBuilderCoupling;
32227
 
  friend class ::ExtACSyntaxCoupling;
32228
 
  friend class ::ExtACTree;
32229
 
  friend class ::ExtACKeywords;
32230
 
  friend class ::WinAsm;
32231
 
  friend class ::WinDeclSpecs;
32232
 
  friend class ::WinMemberExplSpec;
32233
 
  friend class ::WinTypeKeywords;
32234
 
  friend class ::PragmaOnceUnitState;
32235
 
  friend class ::PragmaOnce;
32236
 
  friend class ::CCExprResolve;
32237
 
  friend class ::CExprResolve;
32238
 
 
32239
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32240
 
 
32241
 
  CTree *sons[3]; // key, label, semi_colon
32242
 
 
32243
 
public:
32244
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
32245
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
32246
 
  }
32247
 
  static const char *NodeId ();
32248
 
  const char *NodeName () const { return NodeId (); }
32249
 
  int Sons () const { return 3; }
32250
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32251
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
32252
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32253
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32254
 
  }
32255
 
};
32256
 
 
32257
 
 
32258
 
#line 32259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32259
 
} // closed Puma
32260
 
class WinIfExists;
32261
 
class WinImportHandler;
32262
 
class WinMacros;
32263
 
class CMatchSyntax;
32264
 
class ExtGnu;
32265
 
class ExtAC;
32266
 
class ExtACBuilderCoupling;
32267
 
class ExtACSyntaxCoupling;
32268
 
class ExtACTree;
32269
 
class ExtACKeywords;
32270
 
class WinAsm;
32271
 
class WinDeclSpecs;
32272
 
class WinMemberExplSpec;
32273
 
class WinTypeKeywords;
32274
 
class PragmaOnceUnitState;
32275
 
class PragmaOnce;
32276
 
class CCExprResolve;
32277
 
class CExprResolve;
32278
 
namespace Puma {
32279
 
 
32280
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32281
 
class CT_ReturnStmt : public CT_Statement {
32282
 
#line 32283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32283
 
  friend class ::WinIfExists;
32284
 
  friend class ::WinImportHandler;
32285
 
  friend class ::WinMacros;
32286
 
  friend class ::CMatchSyntax;
32287
 
  friend class ::ExtGnu;
32288
 
  friend class ::ExtAC;
32289
 
  friend class ::ExtACBuilderCoupling;
32290
 
  friend class ::ExtACSyntaxCoupling;
32291
 
  friend class ::ExtACTree;
32292
 
  friend class ::ExtACKeywords;
32293
 
  friend class ::WinAsm;
32294
 
  friend class ::WinDeclSpecs;
32295
 
  friend class ::WinMemberExplSpec;
32296
 
  friend class ::WinTypeKeywords;
32297
 
  friend class ::PragmaOnceUnitState;
32298
 
  friend class ::PragmaOnce;
32299
 
  friend class ::CCExprResolve;
32300
 
  friend class ::CExprResolve;
32301
 
 
32302
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32303
 
 
32304
 
  CTree *sons[3]; // key, expr, semi_colon
32305
 
 
32306
 
public:
32307
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
32308
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
32309
 
  }
32310
 
  static const char *NodeId ();
32311
 
  const char *NodeName () const { return NodeId (); }
32312
 
  int Sons () const { return CTree::Sons (sons, 3); }
32313
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32314
 
  CTree *Expr () const { return sons[1]; }
32315
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32316
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32317
 
  }
32318
 
};
32319
 
 
32320
 
 
32321
 
#line 32322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32322
 
} // closed Puma
32323
 
class WinIfExists;
32324
 
class WinImportHandler;
32325
 
class WinMacros;
32326
 
class CMatchSyntax;
32327
 
class ExtGnu;
32328
 
class ExtAC;
32329
 
class ExtACBuilderCoupling;
32330
 
class ExtACSyntaxCoupling;
32331
 
class ExtACTree;
32332
 
class ExtACKeywords;
32333
 
class WinAsm;
32334
 
class WinDeclSpecs;
32335
 
class WinMemberExplSpec;
32336
 
class WinTypeKeywords;
32337
 
class PragmaOnceUnitState;
32338
 
class PragmaOnce;
32339
 
class CCExprResolve;
32340
 
class CExprResolve;
32341
 
namespace Puma {
32342
 
 
32343
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32344
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
32345
 
#line 32346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32346
 
  friend class ::WinIfExists;
32347
 
  friend class ::WinImportHandler;
32348
 
  friend class ::WinMacros;
32349
 
  friend class ::CMatchSyntax;
32350
 
  friend class ::ExtGnu;
32351
 
  friend class ::ExtAC;
32352
 
  friend class ::ExtACBuilderCoupling;
32353
 
  friend class ::ExtACSyntaxCoupling;
32354
 
  friend class ::ExtACTree;
32355
 
  friend class ::ExtACKeywords;
32356
 
  friend class ::WinAsm;
32357
 
  friend class ::WinDeclSpecs;
32358
 
  friend class ::WinMemberExplSpec;
32359
 
  friend class ::WinTypeKeywords;
32360
 
  friend class ::PragmaOnceUnitState;
32361
 
  friend class ::PragmaOnce;
32362
 
  friend class ::CCExprResolve;
32363
 
  friend class ::CExprResolve;
32364
 
 
32365
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32366
 
 
32367
 
  CTree *sons[5]; // key, open, cond, close, stmt
32368
 
 
32369
 
public:
32370
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
32371
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
32372
 
  }
32373
 
  static const char *NodeId ();
32374
 
  const char *NodeName () const { return NodeId (); }
32375
 
  int Sons () const { return 5; }
32376
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
32377
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
32378
 
  CTree *Condition () const { return sons[2]; }
32379
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32380
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
32381
 
  }
32382
 
};
32383
 
 
32384
 
 
32385
 
#line 32386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32386
 
} // closed Puma
32387
 
class WinIfExists;
32388
 
class WinImportHandler;
32389
 
class WinMacros;
32390
 
class CMatchSyntax;
32391
 
class ExtGnu;
32392
 
class ExtAC;
32393
 
class ExtACBuilderCoupling;
32394
 
class ExtACSyntaxCoupling;
32395
 
class ExtACTree;
32396
 
class ExtACKeywords;
32397
 
class WinAsm;
32398
 
class WinDeclSpecs;
32399
 
class WinMemberExplSpec;
32400
 
class WinTypeKeywords;
32401
 
class PragmaOnceUnitState;
32402
 
class PragmaOnce;
32403
 
class CCExprResolve;
32404
 
class CExprResolve;
32405
 
namespace Puma {
32406
 
 
32407
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32408
 
class CT_DoStmt : public CT_Statement {
32409
 
#line 32410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32410
 
  friend class ::WinIfExists;
32411
 
  friend class ::WinImportHandler;
32412
 
  friend class ::WinMacros;
32413
 
  friend class ::CMatchSyntax;
32414
 
  friend class ::ExtGnu;
32415
 
  friend class ::ExtAC;
32416
 
  friend class ::ExtACBuilderCoupling;
32417
 
  friend class ::ExtACSyntaxCoupling;
32418
 
  friend class ::ExtACTree;
32419
 
  friend class ::ExtACKeywords;
32420
 
  friend class ::WinAsm;
32421
 
  friend class ::WinDeclSpecs;
32422
 
  friend class ::WinMemberExplSpec;
32423
 
  friend class ::WinTypeKeywords;
32424
 
  friend class ::PragmaOnceUnitState;
32425
 
  friend class ::PragmaOnce;
32426
 
  friend class ::CCExprResolve;
32427
 
  friend class ::CExprResolve;
32428
 
 
32429
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32430
 
 
32431
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
32432
 
 
32433
 
public:
32434
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
32435
 
             CTree *c, CTree *sc) {
32436
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
32437
 
    sons[5] = c; sons[6] = sc; 
32438
 
  }
32439
 
  static const char *NodeId ();
32440
 
  const char *NodeName () const { return NodeId (); }
32441
 
  int Sons () const { return 7; }
32442
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
32443
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
32444
 
  CTree *Expr () const { return sons[4]; }
32445
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32446
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
32447
 
  }
32448
 
};
32449
 
 
32450
 
 
32451
 
#line 32452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32452
 
} // closed Puma
32453
 
class WinIfExists;
32454
 
class WinImportHandler;
32455
 
class WinMacros;
32456
 
class CMatchSyntax;
32457
 
class ExtGnu;
32458
 
class ExtAC;
32459
 
class ExtACBuilderCoupling;
32460
 
class ExtACSyntaxCoupling;
32461
 
class ExtACTree;
32462
 
class ExtACKeywords;
32463
 
class WinAsm;
32464
 
class WinDeclSpecs;
32465
 
class WinMemberExplSpec;
32466
 
class WinTypeKeywords;
32467
 
class PragmaOnceUnitState;
32468
 
class PragmaOnce;
32469
 
class CCExprResolve;
32470
 
class CExprResolve;
32471
 
namespace Puma {
32472
 
 
32473
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32474
 
class CT_ForStmt : public CT_Statement, public CSemScope {
32475
 
#line 32476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32476
 
  friend class ::WinIfExists;
32477
 
  friend class ::WinImportHandler;
32478
 
  friend class ::WinMacros;
32479
 
  friend class ::CMatchSyntax;
32480
 
  friend class ::ExtGnu;
32481
 
  friend class ::ExtAC;
32482
 
  friend class ::ExtACBuilderCoupling;
32483
 
  friend class ::ExtACSyntaxCoupling;
32484
 
  friend class ::ExtACTree;
32485
 
  friend class ::ExtACKeywords;
32486
 
  friend class ::WinAsm;
32487
 
  friend class ::WinDeclSpecs;
32488
 
  friend class ::WinMemberExplSpec;
32489
 
  friend class ::WinTypeKeywords;
32490
 
  friend class ::PragmaOnceUnitState;
32491
 
  friend class ::PragmaOnce;
32492
 
  friend class ::CCExprResolve;
32493
 
  friend class ::CExprResolve;
32494
 
 
32495
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32496
 
 
32497
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
32498
 
 
32499
 
public:
32500
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
32501
 
              CTree *e, CTree *c, CTree *stmt) {
32502
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
32503
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
32504
 
  }
32505
 
  static const char *NodeId ();
32506
 
  const char *NodeName () const { return NodeId (); }
32507
 
  int Sons () const { return CTree::Sons (sons, 8); }
32508
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
32509
 
  CTree *InitStmt () const { return sons[2]; }
32510
 
  CTree *Condition () const { return sons[3]; }
32511
 
  CTree *Expr () const { return sons[5]; }
32512
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
32513
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32514
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
32515
 
  }
32516
 
};
32517
 
 
32518
 
 
32519
 
#line 32520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32520
 
} // closed Puma
32521
 
class WinIfExists;
32522
 
class WinImportHandler;
32523
 
class WinMacros;
32524
 
class CMatchSyntax;
32525
 
class ExtGnu;
32526
 
class ExtAC;
32527
 
class ExtACBuilderCoupling;
32528
 
class ExtACSyntaxCoupling;
32529
 
class ExtACTree;
32530
 
class ExtACKeywords;
32531
 
class WinAsm;
32532
 
class WinDeclSpecs;
32533
 
class WinMemberExplSpec;
32534
 
class WinTypeKeywords;
32535
 
class PragmaOnceUnitState;
32536
 
class PragmaOnce;
32537
 
class CCExprResolve;
32538
 
class CExprResolve;
32539
 
namespace Puma {
32540
 
 
32541
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32542
 
class CT_Condition : public CT_Decl, public CSemObject {
32543
 
#line 32544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32544
 
  friend class ::WinIfExists;
32545
 
  friend class ::WinImportHandler;
32546
 
  friend class ::WinMacros;
32547
 
  friend class ::CMatchSyntax;
32548
 
  friend class ::ExtGnu;
32549
 
  friend class ::ExtAC;
32550
 
  friend class ::ExtACBuilderCoupling;
32551
 
  friend class ::ExtACSyntaxCoupling;
32552
 
  friend class ::ExtACTree;
32553
 
  friend class ::ExtACKeywords;
32554
 
  friend class ::WinAsm;
32555
 
  friend class ::WinDeclSpecs;
32556
 
  friend class ::WinMemberExplSpec;
32557
 
  friend class ::WinTypeKeywords;
32558
 
  friend class ::PragmaOnceUnitState;
32559
 
  friend class ::PragmaOnce;
32560
 
  friend class ::CCExprResolve;
32561
 
  friend class ::CExprResolve;
32562
 
 
32563
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32564
 
 
32565
 
  CTree *sons[3]; // declspecs, declarator, init
32566
 
 
32567
 
public:
32568
 
  CT_Condition (CTree *dsl, CTree *d) {
32569
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
32570
 
  }
32571
 
  static const char *NodeId ();
32572
 
  const char *NodeName () const { return NodeId (); }
32573
 
  int Sons () const { return CTree::Sons (sons, 3); }
32574
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32575
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
32576
 
  CTree *Declarator () const { return sons[1]; }
32577
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
32578
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
32579
 
  void Initializer (CTree *i) { sons[2] = i; }
32580
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32581
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32582
 
  }
32583
 
};
32584
 
 
32585
 
/*****************************************************************************/
32586
 
/*                                                                           */
32587
 
/*                              Classes                                      */
32588
 
/*                                                                           */
32589
 
/*****************************************************************************/
32590
 
 
32591
 
 
32592
 
#line 32593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32593
 
} // closed Puma
32594
 
class WinIfExists;
32595
 
class WinImportHandler;
32596
 
class WinMacros;
32597
 
class CMatchSyntax;
32598
 
class ExtGnu;
32599
 
class ExtAC;
32600
 
class ExtACBuilderCoupling;
32601
 
class ExtACSyntaxCoupling;
32602
 
class ExtACTree;
32603
 
class ExtACKeywords;
32604
 
class WinAsm;
32605
 
class WinDeclSpecs;
32606
 
class WinMemberExplSpec;
32607
 
class WinTypeKeywords;
32608
 
class PragmaOnceUnitState;
32609
 
class PragmaOnce;
32610
 
class CCExprResolve;
32611
 
class CExprResolve;
32612
 
namespace Puma {
32613
 
 
32614
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32615
 
class CT_ClassDef : public CT_Decl, public CSemObject {
32616
 
#line 32617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32617
 
  friend class ::WinIfExists;
32618
 
  friend class ::WinImportHandler;
32619
 
  friend class ::WinMacros;
32620
 
  friend class ::CMatchSyntax;
32621
 
  friend class ::ExtGnu;
32622
 
  friend class ::ExtAC;
32623
 
  friend class ::ExtACBuilderCoupling;
32624
 
  friend class ::ExtACSyntaxCoupling;
32625
 
  friend class ::ExtACTree;
32626
 
  friend class ::ExtACKeywords;
32627
 
  friend class ::WinAsm;
32628
 
  friend class ::WinDeclSpecs;
32629
 
  friend class ::WinMemberExplSpec;
32630
 
  friend class ::WinTypeKeywords;
32631
 
  friend class ::PragmaOnceUnitState;
32632
 
  friend class ::PragmaOnce;
32633
 
  friend class ::CCExprResolve;
32634
 
  friend class ::CExprResolve;
32635
 
 
32636
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32637
 
 
32638
 
   
32639
 
#line 32640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32640
 
 
32641
 
  struct __ac_wrapper_sons {
32642
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
32643
 
    operator A& () { return _data; }
32644
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
32645
 
    operator const A& () { return _data; }
32646
 
    operator const A& () const { return _data; }
32647
 
    operator void* () { return _data; }
32648
 
    operator void* () const { return (void*)_data; }
32649
 
    operator const void* () { return _data; }
32650
 
    operator const void* () const { return _data; }
32651
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
32652
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
32653
 
  } sons
32654
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32655
 
 
32656
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32657
 
; // key, name, bases, members
32658
 
  CTree *obj_decl;
32659
 
 
32660
 
public:
32661
 
  
32662
 
#line 32663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32663
 
 
32664
 
 
32665
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
32666
 
  typedef void Result;
32667
 
  typedef ::Puma::CT_ClassDef That;
32668
 
  typedef ::Puma::CT_ClassDef Target;
32669
 
  static const int JPID = 4;
32670
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
32671
 
  struct Res {
32672
 
    typedef void Type;
32673
 
    typedef void ReferredType;
32674
 
  };
32675
 
  enum { ARGS = 3 };
32676
 
  template <int I, int DUMMY = 0> struct Arg {
32677
 
    typedef void Type;
32678
 
    typedef void ReferredType;
32679
 
  };
32680
 
  template <int DUMMY> struct Arg<0, DUMMY> {
32681
 
    typedef ::Puma::CTree * Type;
32682
 
    typedef ::Puma::CTree * ReferredType;
32683
 
  };
32684
 
  template <int DUMMY> struct Arg<1, DUMMY> {
32685
 
    typedef ::Puma::CTree * Type;
32686
 
    typedef ::Puma::CTree * ReferredType;
32687
 
  };
32688
 
  template <int DUMMY> struct Arg<2, DUMMY> {
32689
 
    typedef ::Puma::CTree * Type;
32690
 
    typedef ::Puma::CTree * ReferredType;
32691
 
  };
32692
 
 
32693
 
  That *_that;
32694
 
 
32695
 
  inline That *that() {return (That*)_that;}
32696
 
 
32697
 
};
32698
 
 
32699
 
 
32700
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32701
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
32702
 
#line 32703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32703
 
{
32704
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
32705
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
32706
 
this->__exec_old_C1(arg0, arg1, arg2);
32707
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
32708
 
 
32709
 
}
32710
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
32711
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32712
 
{
32713
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
32714
 
  }
32715
 
  static const char *NodeId ();
32716
 
  const char *NodeName () const { return NodeId (); }
32717
 
  int Sons () const { return CTree::Sons (sons, 4); }
32718
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32719
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
32720
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
32721
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
32722
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
32723
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
32724
 
  void Members (CTree *m) { sons[3] = m; }
32725
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
32726
 
  void ObjDecl (CTree *od) { obj_decl = od; }
32727
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
32728
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
32729
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
32730
 
  }
32731
 
   private:
32732
 
 
32733
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
32734
 
 CTree * _intro_members ;
32735
 
public :
32736
 
CTree * IntroMembers ( ) const { return _intro_members ; }
32737
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
32738
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32739
 
 
32740
 
#line 32741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32741
 
 
32742
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
32743
 
  typedef void Result;
32744
 
  typedef ::Puma::CT_ClassDef That;
32745
 
  typedef ::Puma::CT_ClassDef Target;
32746
 
  static const int JPID = 4;
32747
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
32748
 
  struct Res {
32749
 
    typedef void Type;
32750
 
    typedef void ReferredType;
32751
 
  };
32752
 
  enum { ARGS = 1 };
32753
 
  template <int I, int DUMMY = 0> struct Arg {
32754
 
    typedef void Type;
32755
 
    typedef void ReferredType;
32756
 
  };
32757
 
  template <int DUMMY> struct Arg<0, DUMMY> {
32758
 
    typedef const ::Puma::CT_ClassDef & Type;
32759
 
    typedef const ::Puma::CT_ClassDef ReferredType;
32760
 
  };
32761
 
 
32762
 
  That *_that;
32763
 
 
32764
 
  inline That *that() {return (That*)_that;}
32765
 
 
32766
 
};
32767
 
 
32768
 
 
32769
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32770
 
 
32771
 
#line 32772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32772
 
 
32773
 
public:
32774
 
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members) {
32775
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
32776
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
32777
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
32778
 
 
32779
 
}
32780
 
 
32781
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32782
 
 
32783
 
#line 32784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32784
 
 
32785
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
32786
 
  typedef void Result;
32787
 
  typedef ::Puma::CT_ClassDef That;
32788
 
  typedef ::Puma::CT_ClassDef Target;
32789
 
  static const int JPID = 4;
32790
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
32791
 
  struct Res {
32792
 
    typedef void Type;
32793
 
    typedef void ReferredType;
32794
 
  };
32795
 
  enum { ARGS = 0 };
32796
 
  template <int I, int DUMMY = 0> struct Arg {
32797
 
    typedef void Type;
32798
 
    typedef void ReferredType;
32799
 
  };
32800
 
 
32801
 
  That *_that;
32802
 
 
32803
 
  inline That *that() {return (That*)_that;}
32804
 
 
32805
 
};
32806
 
 
32807
 
 
32808
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32809
 
 
32810
 
#line 32811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32811
 
 
32812
 
public:
32813
 
inline ~CT_ClassDef () {
32814
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
32815
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
32816
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
32817
 
 
32818
 
}
32819
 
 
32820
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32821
 
};
32822
 
      
32823
 
 
32824
 
#line 32825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32825
 
} // closed Puma
32826
 
class WinIfExists;
32827
 
class WinImportHandler;
32828
 
class WinMacros;
32829
 
class CMatchSyntax;
32830
 
class ExtGnu;
32831
 
class ExtAC;
32832
 
class ExtACBuilderCoupling;
32833
 
class ExtACSyntaxCoupling;
32834
 
class ExtACTree;
32835
 
class ExtACKeywords;
32836
 
class WinAsm;
32837
 
class WinDeclSpecs;
32838
 
class WinMemberExplSpec;
32839
 
class WinTypeKeywords;
32840
 
class PragmaOnceUnitState;
32841
 
class PragmaOnce;
32842
 
class CCExprResolve;
32843
 
class CExprResolve;
32844
 
namespace Puma {
32845
 
 
32846
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32847
 
class CT_UnionDef : public CT_ClassDef {
32848
 
#line 32849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32849
 
  friend class ::WinIfExists;
32850
 
  friend class ::WinImportHandler;
32851
 
  friend class ::WinMacros;
32852
 
  friend class ::CMatchSyntax;
32853
 
  friend class ::ExtGnu;
32854
 
  friend class ::ExtAC;
32855
 
  friend class ::ExtACBuilderCoupling;
32856
 
  friend class ::ExtACSyntaxCoupling;
32857
 
  friend class ::ExtACTree;
32858
 
  friend class ::ExtACKeywords;
32859
 
  friend class ::WinAsm;
32860
 
  friend class ::WinDeclSpecs;
32861
 
  friend class ::WinMemberExplSpec;
32862
 
  friend class ::WinTypeKeywords;
32863
 
  friend class ::PragmaOnceUnitState;
32864
 
  friend class ::PragmaOnce;
32865
 
  friend class ::CCExprResolve;
32866
 
  friend class ::CExprResolve;
32867
 
 
32868
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32869
 
 
32870
 
public:
32871
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
32872
 
  static const char *NodeId ();
32873
 
  const char *NodeName () const { return NodeId (); }
32874
 
};
32875
 
      
32876
 
 
32877
 
#line 32878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32878
 
} // closed Puma
32879
 
class WinIfExists;
32880
 
class WinImportHandler;
32881
 
class WinMacros;
32882
 
class CMatchSyntax;
32883
 
class ExtGnu;
32884
 
class ExtAC;
32885
 
class ExtACBuilderCoupling;
32886
 
class ExtACSyntaxCoupling;
32887
 
class ExtACTree;
32888
 
class ExtACKeywords;
32889
 
class WinAsm;
32890
 
class WinDeclSpecs;
32891
 
class WinMemberExplSpec;
32892
 
class WinTypeKeywords;
32893
 
class PragmaOnceUnitState;
32894
 
class PragmaOnce;
32895
 
class CCExprResolve;
32896
 
class CExprResolve;
32897
 
namespace Puma {
32898
 
 
32899
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32900
 
class CT_MembList : public CT_DeclList, public CSemScope {
32901
 
#line 32902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32902
 
  friend class ::WinIfExists;
32903
 
  friend class ::WinImportHandler;
32904
 
  friend class ::WinMacros;
32905
 
  friend class ::CMatchSyntax;
32906
 
  friend class ::ExtGnu;
32907
 
  friend class ::ExtAC;
32908
 
  friend class ::ExtACBuilderCoupling;
32909
 
  friend class ::ExtACSyntaxCoupling;
32910
 
  friend class ::ExtACTree;
32911
 
  friend class ::ExtACKeywords;
32912
 
  friend class ::WinAsm;
32913
 
  friend class ::WinDeclSpecs;
32914
 
  friend class ::WinMemberExplSpec;
32915
 
  friend class ::WinTypeKeywords;
32916
 
  friend class ::PragmaOnceUnitState;
32917
 
  friend class ::PragmaOnce;
32918
 
  friend class ::CCExprResolve;
32919
 
  friend class ::CExprResolve;
32920
 
 
32921
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32922
 
 
32923
 
public:
32924
 
  CT_MembList (int size = 10, int incr = 10) : 
32925
 
    CT_DeclList (size, incr) {}
32926
 
  static const char *NodeId ();
32927
 
  const char *NodeName () const { return NodeId (); }
32928
 
};
32929
 
 
32930
 
 
32931
 
#line 32932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32932
 
} // closed Puma
32933
 
class WinIfExists;
32934
 
class WinImportHandler;
32935
 
class WinMacros;
32936
 
class CMatchSyntax;
32937
 
class ExtGnu;
32938
 
class ExtAC;
32939
 
class ExtACBuilderCoupling;
32940
 
class ExtACSyntaxCoupling;
32941
 
class ExtACTree;
32942
 
class ExtACKeywords;
32943
 
class WinAsm;
32944
 
class WinDeclSpecs;
32945
 
class WinMemberExplSpec;
32946
 
class WinTypeKeywords;
32947
 
class PragmaOnceUnitState;
32948
 
class PragmaOnce;
32949
 
class CCExprResolve;
32950
 
class CExprResolve;
32951
 
namespace Puma {
32952
 
 
32953
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32954
 
class CT_MembInitList : public CT_List, public CSemScope {
32955
 
#line 32956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32956
 
  friend class ::WinIfExists;
32957
 
  friend class ::WinImportHandler;
32958
 
  friend class ::WinMacros;
32959
 
  friend class ::CMatchSyntax;
32960
 
  friend class ::ExtGnu;
32961
 
  friend class ::ExtAC;
32962
 
  friend class ::ExtACBuilderCoupling;
32963
 
  friend class ::ExtACSyntaxCoupling;
32964
 
  friend class ::ExtACTree;
32965
 
  friend class ::ExtACKeywords;
32966
 
  friend class ::WinAsm;
32967
 
  friend class ::WinDeclSpecs;
32968
 
  friend class ::WinMemberExplSpec;
32969
 
  friend class ::WinTypeKeywords;
32970
 
  friend class ::PragmaOnceUnitState;
32971
 
  friend class ::PragmaOnce;
32972
 
  friend class ::CCExprResolve;
32973
 
  friend class ::CExprResolve;
32974
 
 
32975
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32976
 
 
32977
 
public:
32978
 
  CT_MembInitList (int size = 2) : 
32979
 
    CT_List (size, 2, CT_List::OPEN) {}
32980
 
  static const char *NodeId ();
32981
 
  const char *NodeName () const { return NodeId (); }
32982
 
};
32983
 
 
32984
 
 
32985
 
#line 32986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
32986
 
} // closed Puma
32987
 
class WinIfExists;
32988
 
class WinImportHandler;
32989
 
class WinMacros;
32990
 
class CMatchSyntax;
32991
 
class ExtGnu;
32992
 
class ExtAC;
32993
 
class ExtACBuilderCoupling;
32994
 
class ExtACSyntaxCoupling;
32995
 
class ExtACTree;
32996
 
class ExtACKeywords;
32997
 
class WinAsm;
32998
 
class WinDeclSpecs;
32999
 
class WinMemberExplSpec;
33000
 
class WinTypeKeywords;
33001
 
class PragmaOnceUnitState;
33002
 
class PragmaOnce;
33003
 
class CCExprResolve;
33004
 
class CExprResolve;
33005
 
namespace Puma {
33006
 
 
33007
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33008
 
class CT_MembInit : public CT_Expression, public CSemObject {
33009
 
#line 33010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33010
 
  friend class ::WinIfExists;
33011
 
  friend class ::WinImportHandler;
33012
 
  friend class ::WinMacros;
33013
 
  friend class ::CMatchSyntax;
33014
 
  friend class ::ExtGnu;
33015
 
  friend class ::ExtAC;
33016
 
  friend class ::ExtACBuilderCoupling;
33017
 
  friend class ::ExtACSyntaxCoupling;
33018
 
  friend class ::ExtACTree;
33019
 
  friend class ::ExtACKeywords;
33020
 
  friend class ::WinAsm;
33021
 
  friend class ::WinDeclSpecs;
33022
 
  friend class ::WinMemberExplSpec;
33023
 
  friend class ::WinTypeKeywords;
33024
 
  friend class ::PragmaOnceUnitState;
33025
 
  friend class ::PragmaOnce;
33026
 
  friend class ::CCExprResolve;
33027
 
  friend class ::CExprResolve;
33028
 
 
33029
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33030
 
 
33031
 
  CTree *sons[2]; // name, init
33032
 
 
33033
 
public:
33034
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
33035
 
  static const char *NodeId ();
33036
 
  const char *NodeName () const { return NodeId (); }
33037
 
  int Sons () const { return 2; }
33038
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
33039
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33040
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33041
 
  }
33042
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
33043
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
33044
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
33045
 
   private:
33046
 
  typedef CT_MembInit CCExprResolveExpr;
33047
 
 
33048
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
33049
 
 public :
33050
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
33051
 
  typedef CT_MembInit CExprResolveExpr;
33052
 
 
33053
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
33054
 
 public :
33055
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
33056
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33057
 
};
33058
 
 
33059
 
 
33060
 
#line 33061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33061
 
} // closed Puma
33062
 
class WinIfExists;
33063
 
class WinImportHandler;
33064
 
class WinMacros;
33065
 
class CMatchSyntax;
33066
 
class ExtGnu;
33067
 
class ExtAC;
33068
 
class ExtACBuilderCoupling;
33069
 
class ExtACSyntaxCoupling;
33070
 
class ExtACTree;
33071
 
class ExtACKeywords;
33072
 
class WinAsm;
33073
 
class WinDeclSpecs;
33074
 
class WinMemberExplSpec;
33075
 
class WinTypeKeywords;
33076
 
class PragmaOnceUnitState;
33077
 
class PragmaOnce;
33078
 
class CCExprResolve;
33079
 
class CExprResolve;
33080
 
namespace Puma {
33081
 
 
33082
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33083
 
class CT_BaseSpecList : public CT_List {
33084
 
#line 33085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33085
 
  friend class ::WinIfExists;
33086
 
  friend class ::WinImportHandler;
33087
 
  friend class ::WinMacros;
33088
 
  friend class ::CMatchSyntax;
33089
 
  friend class ::ExtGnu;
33090
 
  friend class ::ExtAC;
33091
 
  friend class ::ExtACBuilderCoupling;
33092
 
  friend class ::ExtACSyntaxCoupling;
33093
 
  friend class ::ExtACTree;
33094
 
  friend class ::ExtACKeywords;
33095
 
  friend class ::WinAsm;
33096
 
  friend class ::WinDeclSpecs;
33097
 
  friend class ::WinMemberExplSpec;
33098
 
  friend class ::WinTypeKeywords;
33099
 
  friend class ::PragmaOnceUnitState;
33100
 
  friend class ::PragmaOnce;
33101
 
  friend class ::CCExprResolve;
33102
 
  friend class ::CExprResolve;
33103
 
 
33104
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33105
 
 
33106
 
public:
33107
 
  CT_BaseSpecList (int size = 2) : 
33108
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
33109
 
  static const char *NodeId ();
33110
 
  const char *NodeName () const { return NodeId (); }
33111
 
};
33112
 
 
33113
 
 
33114
 
#line 33115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33115
 
} // closed Puma
33116
 
class WinIfExists;
33117
 
class WinImportHandler;
33118
 
class WinMacros;
33119
 
class CMatchSyntax;
33120
 
class ExtGnu;
33121
 
class ExtAC;
33122
 
class ExtACBuilderCoupling;
33123
 
class ExtACSyntaxCoupling;
33124
 
class ExtACTree;
33125
 
class ExtACKeywords;
33126
 
class WinAsm;
33127
 
class WinDeclSpecs;
33128
 
class WinMemberExplSpec;
33129
 
class WinTypeKeywords;
33130
 
class PragmaOnceUnitState;
33131
 
class PragmaOnce;
33132
 
class CCExprResolve;
33133
 
class CExprResolve;
33134
 
namespace Puma {
33135
 
 
33136
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33137
 
class CT_AccessSpec : public CTree {
33138
 
#line 33139 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33139
 
  friend class ::WinIfExists;
33140
 
  friend class ::WinImportHandler;
33141
 
  friend class ::WinMacros;
33142
 
  friend class ::CMatchSyntax;
33143
 
  friend class ::ExtGnu;
33144
 
  friend class ::ExtAC;
33145
 
  friend class ::ExtACBuilderCoupling;
33146
 
  friend class ::ExtACSyntaxCoupling;
33147
 
  friend class ::ExtACTree;
33148
 
  friend class ::ExtACKeywords;
33149
 
  friend class ::WinAsm;
33150
 
  friend class ::WinDeclSpecs;
33151
 
  friend class ::WinMemberExplSpec;
33152
 
  friend class ::WinTypeKeywords;
33153
 
  friend class ::PragmaOnceUnitState;
33154
 
  friend class ::PragmaOnce;
33155
 
  friend class ::CCExprResolve;
33156
 
  friend class ::CExprResolve;
33157
 
 
33158
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33159
 
 
33160
 
  CTree *sons[2]; // access, colon
33161
 
 
33162
 
public:
33163
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
33164
 
  static const char *NodeId ();
33165
 
  const char *NodeName () const { return NodeId (); }
33166
 
  int Sons () const { return 2; }
33167
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
33168
 
  int Access () const { return sons[0]->token ()->type (); }
33169
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33170
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33171
 
  }
33172
 
};
33173
 
 
33174
 
 
33175
 
#line 33176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33176
 
} // closed Puma
33177
 
class WinIfExists;
33178
 
class WinImportHandler;
33179
 
class WinMacros;
33180
 
class CMatchSyntax;
33181
 
class ExtGnu;
33182
 
class ExtAC;
33183
 
class ExtACBuilderCoupling;
33184
 
class ExtACSyntaxCoupling;
33185
 
class ExtACTree;
33186
 
class ExtACKeywords;
33187
 
class WinAsm;
33188
 
class WinDeclSpecs;
33189
 
class WinMemberExplSpec;
33190
 
class WinTypeKeywords;
33191
 
class PragmaOnceUnitState;
33192
 
class PragmaOnce;
33193
 
class CCExprResolve;
33194
 
class CExprResolve;
33195
 
namespace Puma {
33196
 
 
33197
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33198
 
class CT_BaseSpec : public CTree {
33199
 
#line 33200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33200
 
  friend class ::WinIfExists;
33201
 
  friend class ::WinImportHandler;
33202
 
  friend class ::WinMacros;
33203
 
  friend class ::CMatchSyntax;
33204
 
  friend class ::ExtGnu;
33205
 
  friend class ::ExtAC;
33206
 
  friend class ::ExtACBuilderCoupling;
33207
 
  friend class ::ExtACSyntaxCoupling;
33208
 
  friend class ::ExtACTree;
33209
 
  friend class ::ExtACKeywords;
33210
 
  friend class ::WinAsm;
33211
 
  friend class ::WinDeclSpecs;
33212
 
  friend class ::WinMemberExplSpec;
33213
 
  friend class ::WinTypeKeywords;
33214
 
  friend class ::PragmaOnceUnitState;
33215
 
  friend class ::PragmaOnce;
33216
 
  friend class ::CCExprResolve;
33217
 
  friend class ::CExprResolve;
33218
 
 
33219
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33220
 
 
33221
 
  CTree *sons[3]; // virtual, access, name
33222
 
 
33223
 
public:
33224
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
33225
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
33226
 
  }
33227
 
  static const char *NodeId ();
33228
 
  const char *NodeName () const { return NodeId (); }
33229
 
  int Sons () const { return CTree::Sons (sons, 3); }
33230
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33231
 
  int Access () const { return sons[1]->token ()->type (); }
33232
 
  CTree *AccessSpec () const { return sons[1]; }
33233
 
  CTree *Virtual () const { return sons[0]; }
33234
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
33235
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33236
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33237
 
  }
33238
 
};
33239
 
 
33240
 
 
33241
 
#line 33242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33242
 
} // closed Puma
33243
 
class WinIfExists;
33244
 
class WinImportHandler;
33245
 
class WinMacros;
33246
 
class CMatchSyntax;
33247
 
class ExtGnu;
33248
 
class ExtAC;
33249
 
class ExtACBuilderCoupling;
33250
 
class ExtACSyntaxCoupling;
33251
 
class ExtACTree;
33252
 
class ExtACKeywords;
33253
 
class WinAsm;
33254
 
class WinDeclSpecs;
33255
 
class WinMemberExplSpec;
33256
 
class WinTypeKeywords;
33257
 
class PragmaOnceUnitState;
33258
 
class PragmaOnce;
33259
 
class CCExprResolve;
33260
 
class CExprResolve;
33261
 
namespace Puma {
33262
 
 
33263
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33264
 
class CT_AccessDecl : public CT_Decl {
33265
 
#line 33266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33266
 
  friend class ::WinIfExists;
33267
 
  friend class ::WinImportHandler;
33268
 
  friend class ::WinMacros;
33269
 
  friend class ::CMatchSyntax;
33270
 
  friend class ::ExtGnu;
33271
 
  friend class ::ExtAC;
33272
 
  friend class ::ExtACBuilderCoupling;
33273
 
  friend class ::ExtACSyntaxCoupling;
33274
 
  friend class ::ExtACTree;
33275
 
  friend class ::ExtACKeywords;
33276
 
  friend class ::WinAsm;
33277
 
  friend class ::WinDeclSpecs;
33278
 
  friend class ::WinMemberExplSpec;
33279
 
  friend class ::WinTypeKeywords;
33280
 
  friend class ::PragmaOnceUnitState;
33281
 
  friend class ::PragmaOnce;
33282
 
  friend class ::CCExprResolve;
33283
 
  friend class ::CExprResolve;
33284
 
 
33285
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33286
 
 
33287
 
  CTree *sons[2]; // name, semi_colon
33288
 
 
33289
 
public:
33290
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
33291
 
  static const char *NodeId ();
33292
 
  const char *NodeName () const { return NodeId (); }
33293
 
  int Sons () const { return 2; }
33294
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
33295
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
33296
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33297
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33298
 
  }
33299
 
};
33300
 
 
33301
 
 
33302
 
#line 33303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33303
 
} // closed Puma
33304
 
class WinIfExists;
33305
 
class WinImportHandler;
33306
 
class WinMacros;
33307
 
class CMatchSyntax;
33308
 
class ExtGnu;
33309
 
class ExtAC;
33310
 
class ExtACBuilderCoupling;
33311
 
class ExtACSyntaxCoupling;
33312
 
class ExtACTree;
33313
 
class ExtACKeywords;
33314
 
class WinAsm;
33315
 
class WinDeclSpecs;
33316
 
class WinMemberExplSpec;
33317
 
class WinTypeKeywords;
33318
 
class PragmaOnceUnitState;
33319
 
class PragmaOnce;
33320
 
class CCExprResolve;
33321
 
class CExprResolve;
33322
 
namespace Puma {
33323
 
 
33324
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33325
 
class CT_UsingDecl : public CT_AccessDecl {
33326
 
#line 33327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33327
 
  friend class ::WinIfExists;
33328
 
  friend class ::WinImportHandler;
33329
 
  friend class ::WinMacros;
33330
 
  friend class ::CMatchSyntax;
33331
 
  friend class ::ExtGnu;
33332
 
  friend class ::ExtAC;
33333
 
  friend class ::ExtACBuilderCoupling;
33334
 
  friend class ::ExtACSyntaxCoupling;
33335
 
  friend class ::ExtACTree;
33336
 
  friend class ::ExtACKeywords;
33337
 
  friend class ::WinAsm;
33338
 
  friend class ::WinDeclSpecs;
33339
 
  friend class ::WinMemberExplSpec;
33340
 
  friend class ::WinTypeKeywords;
33341
 
  friend class ::PragmaOnceUnitState;
33342
 
  friend class ::PragmaOnce;
33343
 
  friend class ::CCExprResolve;
33344
 
  friend class ::CExprResolve;
33345
 
 
33346
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33347
 
 
33348
 
  CTree *sons[2]; // using, typename
33349
 
 
33350
 
public:
33351
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
33352
 
    sons[0] = u; sons[1] = 0; 
33353
 
  }
33354
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
33355
 
    sons[0] = u; sons[1] = t; 
33356
 
  }
33357
 
  static const char *NodeId ();
33358
 
  const char *NodeName () const { return NodeId (); }
33359
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
33360
 
  CTree *Son (int n) const {
33361
 
    int num = CTree::Sons (sons, 2);
33362
 
    CTree *result = CTree::Son (sons, 2, n);
33363
 
    return result ? result : CT_AccessDecl::Son (n-num);
33364
 
  }
33365
 
  CTree *Typename () const { return sons[1]; }
33366
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33367
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33368
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
33369
 
  }
33370
 
};
33371
 
 
33372
 
/*****************************************************************************/
33373
 
/*                                                                           */
33374
 
/*                              Wildcards                                    */
33375
 
/*                                                                           */
33376
 
/*****************************************************************************/
33377
 
 
33378
 
 
33379
 
#line 33380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33380
 
} // closed Puma
33381
 
class WinIfExists;
33382
 
class WinImportHandler;
33383
 
class WinMacros;
33384
 
class CMatchSyntax;
33385
 
class ExtGnu;
33386
 
class ExtAC;
33387
 
class ExtACBuilderCoupling;
33388
 
class ExtACSyntaxCoupling;
33389
 
class ExtACTree;
33390
 
class ExtACKeywords;
33391
 
class WinAsm;
33392
 
class WinDeclSpecs;
33393
 
class WinMemberExplSpec;
33394
 
class WinTypeKeywords;
33395
 
class PragmaOnceUnitState;
33396
 
class PragmaOnce;
33397
 
class CCExprResolve;
33398
 
class CExprResolve;
33399
 
namespace Puma {
33400
 
 
33401
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33402
 
class CT_Any : public CTree {
33403
 
#line 33404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33404
 
  friend class ::WinIfExists;
33405
 
  friend class ::WinImportHandler;
33406
 
  friend class ::WinMacros;
33407
 
  friend class ::CMatchSyntax;
33408
 
  friend class ::ExtGnu;
33409
 
  friend class ::ExtAC;
33410
 
  friend class ::ExtACBuilderCoupling;
33411
 
  friend class ::ExtACSyntaxCoupling;
33412
 
  friend class ::ExtACTree;
33413
 
  friend class ::ExtACKeywords;
33414
 
  friend class ::WinAsm;
33415
 
  friend class ::WinDeclSpecs;
33416
 
  friend class ::WinMemberExplSpec;
33417
 
  friend class ::WinTypeKeywords;
33418
 
  friend class ::PragmaOnceUnitState;
33419
 
  friend class ::PragmaOnce;
33420
 
  friend class ::CCExprResolve;
33421
 
  friend class ::CExprResolve;
33422
 
 
33423
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33424
 
 
33425
 
  CTree *sons[2]; // keyword, extension
33426
 
 
33427
 
public:
33428
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
33429
 
  static const char *NodeId ();
33430
 
  const char *NodeName () const { return NodeId (); }
33431
 
  int Sons () const { return CTree::Sons (sons, 2); }
33432
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
33433
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33434
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33435
 
  }
33436
 
  int AnyType () const { return sons[0]->token ()->type (); }
33437
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
33438
 
};
33439
 
 
33440
 
 
33441
 
#line 33442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33442
 
} // closed Puma
33443
 
class WinIfExists;
33444
 
class WinImportHandler;
33445
 
class WinMacros;
33446
 
class CMatchSyntax;
33447
 
class ExtGnu;
33448
 
class ExtAC;
33449
 
class ExtACBuilderCoupling;
33450
 
class ExtACSyntaxCoupling;
33451
 
class ExtACTree;
33452
 
class ExtACKeywords;
33453
 
class WinAsm;
33454
 
class WinDeclSpecs;
33455
 
class WinMemberExplSpec;
33456
 
class WinTypeKeywords;
33457
 
class PragmaOnceUnitState;
33458
 
class PragmaOnce;
33459
 
class CCExprResolve;
33460
 
class CExprResolve;
33461
 
namespace Puma {
33462
 
 
33463
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33464
 
class CT_AnyList : public CT_Any {
33465
 
#line 33466 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33466
 
  friend class ::WinIfExists;
33467
 
  friend class ::WinImportHandler;
33468
 
  friend class ::WinMacros;
33469
 
  friend class ::CMatchSyntax;
33470
 
  friend class ::ExtGnu;
33471
 
  friend class ::ExtAC;
33472
 
  friend class ::ExtACBuilderCoupling;
33473
 
  friend class ::ExtACSyntaxCoupling;
33474
 
  friend class ::ExtACTree;
33475
 
  friend class ::ExtACKeywords;
33476
 
  friend class ::WinAsm;
33477
 
  friend class ::WinDeclSpecs;
33478
 
  friend class ::WinMemberExplSpec;
33479
 
  friend class ::WinTypeKeywords;
33480
 
  friend class ::PragmaOnceUnitState;
33481
 
  friend class ::PragmaOnce;
33482
 
  friend class ::CCExprResolve;
33483
 
  friend class ::CExprResolve;
33484
 
 
33485
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33486
 
 
33487
 
public:
33488
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
33489
 
  static const char *NodeId ();
33490
 
  const char *NodeName () const { return NodeId (); }
33491
 
};
33492
 
 
33493
 
 
33494
 
#line 33495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33495
 
} // closed Puma
33496
 
class WinIfExists;
33497
 
class WinImportHandler;
33498
 
class WinMacros;
33499
 
class CMatchSyntax;
33500
 
class ExtGnu;
33501
 
class ExtAC;
33502
 
class ExtACBuilderCoupling;
33503
 
class ExtACSyntaxCoupling;
33504
 
class ExtACTree;
33505
 
class ExtACKeywords;
33506
 
class WinAsm;
33507
 
class WinDeclSpecs;
33508
 
class WinMemberExplSpec;
33509
 
class WinTypeKeywords;
33510
 
class PragmaOnceUnitState;
33511
 
class PragmaOnce;
33512
 
class CCExprResolve;
33513
 
class CExprResolve;
33514
 
namespace Puma {
33515
 
 
33516
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33517
 
class CT_AnyExtension : public CTree, public CSemValue {
33518
 
#line 33519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33519
 
  friend class ::WinIfExists;
33520
 
  friend class ::WinImportHandler;
33521
 
  friend class ::WinMacros;
33522
 
  friend class ::CMatchSyntax;
33523
 
  friend class ::ExtGnu;
33524
 
  friend class ::ExtAC;
33525
 
  friend class ::ExtACBuilderCoupling;
33526
 
  friend class ::ExtACSyntaxCoupling;
33527
 
  friend class ::ExtACTree;
33528
 
  friend class ::ExtACKeywords;
33529
 
  friend class ::WinAsm;
33530
 
  friend class ::WinDeclSpecs;
33531
 
  friend class ::WinMemberExplSpec;
33532
 
  friend class ::WinTypeKeywords;
33533
 
  friend class ::PragmaOnceUnitState;
33534
 
  friend class ::PragmaOnce;
33535
 
  friend class ::CCExprResolve;
33536
 
  friend class ::CExprResolve;
33537
 
 
33538
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33539
 
 
33540
 
  CTree *sons[5]; // open, string, comma, cond, close
33541
 
 
33542
 
public:
33543
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
33544
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
33545
 
  }
33546
 
  static const char *NodeId ();
33547
 
  const char *NodeName () const { return NodeId (); }
33548
 
  int Sons () const { return CTree::Sons (sons, 5); }
33549
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
33550
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33551
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
33552
 
  }
33553
 
  CTree *Condition () const { return sons[3]; }
33554
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
33555
 
  const char *Name () const { 
33556
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
33557
 
 
33558
 
  CExprValue *Value () const { return value; }
33559
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
33560
 
};
33561
 
 
33562
 
 
33563
 
#line 33564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33564
 
} // closed Puma
33565
 
class WinIfExists;
33566
 
class WinImportHandler;
33567
 
class WinMacros;
33568
 
class CMatchSyntax;
33569
 
class ExtGnu;
33570
 
class ExtAC;
33571
 
class ExtACBuilderCoupling;
33572
 
class ExtACSyntaxCoupling;
33573
 
class ExtACTree;
33574
 
class ExtACKeywords;
33575
 
class WinAsm;
33576
 
class WinDeclSpecs;
33577
 
class WinMemberExplSpec;
33578
 
class WinTypeKeywords;
33579
 
class PragmaOnceUnitState;
33580
 
class PragmaOnce;
33581
 
class CCExprResolve;
33582
 
class CExprResolve;
33583
 
namespace Puma {
33584
 
 
33585
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33586
 
class CT_AnyCondition : public CTree {
33587
 
#line 33588 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33588
 
  friend class ::WinIfExists;
33589
 
  friend class ::WinImportHandler;
33590
 
  friend class ::WinMacros;
33591
 
  friend class ::CMatchSyntax;
33592
 
  friend class ::ExtGnu;
33593
 
  friend class ::ExtAC;
33594
 
  friend class ::ExtACBuilderCoupling;
33595
 
  friend class ::ExtACSyntaxCoupling;
33596
 
  friend class ::ExtACTree;
33597
 
  friend class ::ExtACKeywords;
33598
 
  friend class ::WinAsm;
33599
 
  friend class ::WinDeclSpecs;
33600
 
  friend class ::WinMemberExplSpec;
33601
 
  friend class ::WinTypeKeywords;
33602
 
  friend class ::PragmaOnceUnitState;
33603
 
  friend class ::PragmaOnce;
33604
 
  friend class ::CCExprResolve;
33605
 
  friend class ::CExprResolve;
33606
 
 
33607
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33608
 
 
33609
 
  CTree *sons[3]; // arg1, arg2, arg3
33610
 
 
33611
 
public:
33612
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
33613
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
33614
 
  }
33615
 
  static const char *NodeId ();
33616
 
  const char *NodeName () const { return NodeId (); }
33617
 
  int Sons () const { return CTree::Sons (sons, 3); }
33618
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33619
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33620
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33621
 
  }
33622
 
};
33623
 
 
33624
 
 
33625
 
} // namespace Puma
33626
 
 
33627
 
#endif /* __CTree_h__ */
33628
 
 
33629
 
#line 33630 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33630
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
33631
 
 
33632
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33633
 
 
33634
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33635
 
namespace Puma {
33636
 
 
33637
 
 
33638
 
 
33639
 
#line 33640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33640
 
} // closed Puma
33641
 
class WinIfExists;
33642
 
class WinImportHandler;
33643
 
class WinMacros;
33644
 
class CMatchSyntax;
33645
 
class ExtGnu;
33646
 
class ExtAC;
33647
 
class ExtACBuilderCoupling;
33648
 
class ExtACSyntaxCoupling;
33649
 
class ExtACTree;
33650
 
class ExtACKeywords;
33651
 
class WinAsm;
33652
 
class WinDeclSpecs;
33653
 
class WinMemberExplSpec;
33654
 
class WinTypeKeywords;
33655
 
class PragmaOnceUnitState;
33656
 
class PragmaOnce;
33657
 
class CCExprResolve;
33658
 
class CExprResolve;
33659
 
namespace Puma {
33660
 
 
33661
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33662
 
class CT_AdviceDecl : public CT_Decl {
33663
 
#line 33664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33664
 
  friend class ::WinIfExists;
33665
 
  friend class ::WinImportHandler;
33666
 
  friend class ::WinMacros;
33667
 
  friend class ::CMatchSyntax;
33668
 
  friend class ::ExtGnu;
33669
 
  friend class ::ExtAC;
33670
 
  friend class ::ExtACBuilderCoupling;
33671
 
  friend class ::ExtACSyntaxCoupling;
33672
 
  friend class ::ExtACTree;
33673
 
  friend class ::ExtACKeywords;
33674
 
  friend class ::WinAsm;
33675
 
  friend class ::WinDeclSpecs;
33676
 
  friend class ::WinMemberExplSpec;
33677
 
  friend class ::WinTypeKeywords;
33678
 
  friend class ::PragmaOnceUnitState;
33679
 
  friend class ::PragmaOnce;
33680
 
  friend class ::CCExprResolve;
33681
 
  friend class ::CExprResolve;
33682
 
 
33683
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33684
 
 
33685
 
  CTree *_advice;    // CT_Token
33686
 
  CTree *_pointcut;
33687
 
  CTree *_colon;     // CT_Token
33688
 
  CTree *_decl;
33689
 
 
33690
 
public:
33691
 
  CT_AdviceDecl (CTree *a, CTree *p, CTree *c, CTree *d) : 
33692
 
    _advice (a), _pointcut (p), _colon (c), _decl (d) {}
33693
 
  static const char *NodeId ();
33694
 
  const char *NodeName () const { return NodeId (); }
33695
 
  int Sons () const { return 4; }
33696
 
  CTree *Son (int n) const { 
33697
 
    switch (n) { 
33698
 
      case 0: return _advice;
33699
 
      case 1: return _pointcut;
33700
 
      case 2: return _colon;
33701
 
      case 3: return _decl;
33702
 
      default: return (CTree*)0;
33703
 
    }
33704
 
  }
33705
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33706
 
    if (old_son == _decl) _decl = new_son; 
33707
 
    else if (old_son == _pointcut) _pointcut = new_son; 
33708
 
    else if (old_son == _advice) _advice = new_son; 
33709
 
    else if (old_son == _colon) _colon = new_son; 
33710
 
  }
33711
 
  CTree *Pointcut () const { return _pointcut; }
33712
 
  CTree *Decl () const { return _decl; }
33713
 
};
33714
 
 
33715
 
 
33716
 
#line 33717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33717
 
} // closed Puma
33718
 
class WinIfExists;
33719
 
class WinImportHandler;
33720
 
class WinMacros;
33721
 
class CMatchSyntax;
33722
 
class ExtGnu;
33723
 
class ExtAC;
33724
 
class ExtACBuilderCoupling;
33725
 
class ExtACSyntaxCoupling;
33726
 
class ExtACTree;
33727
 
class ExtACKeywords;
33728
 
class WinAsm;
33729
 
class WinDeclSpecs;
33730
 
class WinMemberExplSpec;
33731
 
class WinTypeKeywords;
33732
 
class PragmaOnceUnitState;
33733
 
class PragmaOnce;
33734
 
class CCExprResolve;
33735
 
class CExprResolve;
33736
 
namespace Puma {
33737
 
 
33738
 
#line 58 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33739
 
class CT_OrderList : public CT_List {
33740
 
#line 33741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33741
 
  friend class ::WinIfExists;
33742
 
  friend class ::WinImportHandler;
33743
 
  friend class ::WinMacros;
33744
 
  friend class ::CMatchSyntax;
33745
 
  friend class ::ExtGnu;
33746
 
  friend class ::ExtAC;
33747
 
  friend class ::ExtACBuilderCoupling;
33748
 
  friend class ::ExtACSyntaxCoupling;
33749
 
  friend class ::ExtACTree;
33750
 
  friend class ::ExtACKeywords;
33751
 
  friend class ::WinAsm;
33752
 
  friend class ::WinDeclSpecs;
33753
 
  friend class ::WinMemberExplSpec;
33754
 
  friend class ::WinTypeKeywords;
33755
 
  friend class ::PragmaOnceUnitState;
33756
 
  friend class ::PragmaOnce;
33757
 
  friend class ::CCExprResolve;
33758
 
  friend class ::CExprResolve;
33759
 
 
33760
 
#line 58 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33761
 
 
33762
 
public:
33763
 
  CT_OrderList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
33764
 
  static const char *NodeId ();
33765
 
  const char *NodeName () const { return NodeId (); }
33766
 
};
33767
 
 
33768
 
 
33769
 
#line 33770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33770
 
} // closed Puma
33771
 
class WinIfExists;
33772
 
class WinImportHandler;
33773
 
class WinMacros;
33774
 
class CMatchSyntax;
33775
 
class ExtGnu;
33776
 
class ExtAC;
33777
 
class ExtACBuilderCoupling;
33778
 
class ExtACSyntaxCoupling;
33779
 
class ExtACTree;
33780
 
class ExtACKeywords;
33781
 
class WinAsm;
33782
 
class WinDeclSpecs;
33783
 
class WinMemberExplSpec;
33784
 
class WinTypeKeywords;
33785
 
class PragmaOnceUnitState;
33786
 
class PragmaOnce;
33787
 
class CCExprResolve;
33788
 
class CExprResolve;
33789
 
namespace Puma {
33790
 
 
33791
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33792
 
class CT_OrderDecl : public CTree {
33793
 
#line 33794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33794
 
  friend class ::WinIfExists;
33795
 
  friend class ::WinImportHandler;
33796
 
  friend class ::WinMacros;
33797
 
  friend class ::CMatchSyntax;
33798
 
  friend class ::ExtGnu;
33799
 
  friend class ::ExtAC;
33800
 
  friend class ::ExtACBuilderCoupling;
33801
 
  friend class ::ExtACSyntaxCoupling;
33802
 
  friend class ::ExtACTree;
33803
 
  friend class ::ExtACKeywords;
33804
 
  friend class ::WinAsm;
33805
 
  friend class ::WinDeclSpecs;
33806
 
  friend class ::WinMemberExplSpec;
33807
 
  friend class ::WinTypeKeywords;
33808
 
  friend class ::PragmaOnceUnitState;
33809
 
  friend class ::PragmaOnce;
33810
 
  friend class ::CCExprResolve;
33811
 
  friend class ::CExprResolve;
33812
 
 
33813
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33814
 
 
33815
 
  CTree *_order;
33816
 
  CTree *_order_list;
33817
 
  CTree *_semi_colon;
33818
 
public:
33819
 
  CT_OrderDecl (CTree *o, CTree *ol, CTree *s) :
33820
 
    _order (o), _order_list (ol), _semi_colon (s) {}
33821
 
  static const char *NodeId ();
33822
 
  const char *NodeName () const { return NodeId (); }
33823
 
  int Sons () const { return 3; }
33824
 
  CTree *Son (int n) const { 
33825
 
    switch (n) { 
33826
 
      case 0: return _order;
33827
 
      case 1: return _order_list;
33828
 
      case 2: return _semi_colon;
33829
 
      default: return (CTree*)0;
33830
 
    }
33831
 
  }
33832
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33833
 
    if (old_son == _order) _order = new_son; 
33834
 
    else if (old_son == _order_list) _order_list = new_son; 
33835
 
    else if (old_son == _semi_colon) _semi_colon = new_son; 
33836
 
  }
33837
 
  CT_OrderList *OrderList () const { return (CT_OrderList*)_order_list; }
33838
 
};
33839
 
 
33840
 
 
33841
 
#line 33842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33842
 
} // closed Puma
33843
 
class WinIfExists;
33844
 
class WinImportHandler;
33845
 
class WinMacros;
33846
 
class CMatchSyntax;
33847
 
class ExtGnu;
33848
 
class ExtAC;
33849
 
class ExtACBuilderCoupling;
33850
 
class ExtACSyntaxCoupling;
33851
 
class ExtACTree;
33852
 
class ExtACKeywords;
33853
 
class WinAsm;
33854
 
class WinDeclSpecs;
33855
 
class WinMemberExplSpec;
33856
 
class WinTypeKeywords;
33857
 
class PragmaOnceUnitState;
33858
 
class PragmaOnce;
33859
 
class CCExprResolve;
33860
 
class CExprResolve;
33861
 
namespace Puma {
33862
 
 
33863
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33864
 
class CT_PointcutDecl : public CT_Decl {
33865
 
#line 33866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33866
 
  friend class ::WinIfExists;
33867
 
  friend class ::WinImportHandler;
33868
 
  friend class ::WinMacros;
33869
 
  friend class ::CMatchSyntax;
33870
 
  friend class ::ExtGnu;
33871
 
  friend class ::ExtAC;
33872
 
  friend class ::ExtACBuilderCoupling;
33873
 
  friend class ::ExtACSyntaxCoupling;
33874
 
  friend class ::ExtACTree;
33875
 
  friend class ::ExtACKeywords;
33876
 
  friend class ::WinAsm;
33877
 
  friend class ::WinDeclSpecs;
33878
 
  friend class ::WinMemberExplSpec;
33879
 
  friend class ::WinTypeKeywords;
33880
 
  friend class ::PragmaOnceUnitState;
33881
 
  friend class ::PragmaOnce;
33882
 
  friend class ::CCExprResolve;
33883
 
  friend class ::CExprResolve;
33884
 
 
33885
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33886
 
 
33887
 
  CTree *_pointcut;    // CT_Token
33888
 
  CTree *_decl;
33889
 
 
33890
 
public:
33891
 
  CT_PointcutDecl (CTree *p, CTree *d) : _pointcut (p), _decl (d) {}
33892
 
  static const char *NodeId ();
33893
 
  const char *NodeName () const { return NodeId (); }
33894
 
  int Sons () const { return 2; }
33895
 
  CTree *Son (int n) const { 
33896
 
    switch (n) { 
33897
 
      case 0: return _pointcut;
33898
 
      case 1: return _decl;
33899
 
      default: return (CTree*)0;
33900
 
    }
33901
 
  }
33902
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33903
 
    if (old_son == _decl) _decl = new_son; 
33904
 
    else if (old_son == _pointcut) _pointcut = new_son; 
33905
 
  }
33906
 
  CTree *Decl () const { return _decl; }
33907
 
};
33908
 
 
33909
 
 
33910
 
#line 33911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33911
 
} // closed Puma
33912
 
class WinIfExists;
33913
 
class WinImportHandler;
33914
 
class WinMacros;
33915
 
class CMatchSyntax;
33916
 
class ExtGnu;
33917
 
class ExtAC;
33918
 
class ExtACBuilderCoupling;
33919
 
class ExtACSyntaxCoupling;
33920
 
class ExtACTree;
33921
 
class ExtACKeywords;
33922
 
class WinAsm;
33923
 
class WinDeclSpecs;
33924
 
class WinMemberExplSpec;
33925
 
class WinTypeKeywords;
33926
 
class PragmaOnceUnitState;
33927
 
class PragmaOnce;
33928
 
class CCExprResolve;
33929
 
class CExprResolve;
33930
 
namespace Puma {
33931
 
 
33932
 
#line 114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33933
 
class CT_Intro : public CT_List, public CSemScope {
33934
 
#line 33935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33935
 
  friend class ::WinIfExists;
33936
 
  friend class ::WinImportHandler;
33937
 
  friend class ::WinMacros;
33938
 
  friend class ::CMatchSyntax;
33939
 
  friend class ::ExtGnu;
33940
 
  friend class ::ExtAC;
33941
 
  friend class ::ExtACBuilderCoupling;
33942
 
  friend class ::ExtACSyntaxCoupling;
33943
 
  friend class ::ExtACTree;
33944
 
  friend class ::ExtACKeywords;
33945
 
  friend class ::WinAsm;
33946
 
  friend class ::WinDeclSpecs;
33947
 
  friend class ::WinMemberExplSpec;
33948
 
  friend class ::WinTypeKeywords;
33949
 
  friend class ::PragmaOnceUnitState;
33950
 
  friend class ::PragmaOnce;
33951
 
  friend class ::CCExprResolve;
33952
 
  friend class ::CExprResolve;
33953
 
 
33954
 
#line 114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
33955
 
 
33956
 
  // indices of aspect or slice names in introduction
33957
 
  Array<int> _name_indices;    // start index
33958
 
  Array<int> _name_to_indices; // end index
33959
 
  Array<bool> _name_qual;      // true if the token should be replaced by a
33960
 
                               // qualified name
33961
 
public:
33962
 
  static const char *NodeId ();
33963
 
  const char *NodeName () const { return NodeId (); }
33964
 
  void AddNameIndex (int index) {
33965
 
    _name_indices.append (index);
33966
 
    _name_to_indices.append (index);
33967
 
    _name_qual.append (false);
33968
 
  }
33969
 
  void AddNameIndex (int index_from, int index_to) {
33970
 
    _name_indices.append (index_from);
33971
 
    _name_to_indices.append (index_to);
33972
 
    _name_qual.append (true);
33973
 
  }
33974
 
  void RollbackNameIndex (int pos) {
33975
 
    for (int i = NameIndices () - 1; i >= 0; i--) {
33976
 
      if (NameIndex (i) >= pos) {
33977
 
        _name_indices.remove (i);
33978
 
        _name_to_indices.remove (i);
33979
 
        _name_qual.remove (i);
33980
 
      }
33981
 
      else
33982
 
        break;
33983
 
    }
33984
 
  }
33985
 
  int NameIndices () const { return _name_indices.length (); }
33986
 
  int NameIndex (int i) const { return _name_indices.lookup (i); }
33987
 
  int NameToIndex (int i) const { return _name_to_indices.lookup (i); }
33988
 
  bool NameQual (int i) const { return _name_qual.lookup (i); }
33989
 
};
33990
 
 
33991
 
 
33992
 
#line 33993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
33993
 
} // closed Puma
33994
 
class WinIfExists;
33995
 
class WinImportHandler;
33996
 
class WinMacros;
33997
 
class CMatchSyntax;
33998
 
class ExtGnu;
33999
 
class ExtAC;
34000
 
class ExtACBuilderCoupling;
34001
 
class ExtACSyntaxCoupling;
34002
 
class ExtACTree;
34003
 
class ExtACKeywords;
34004
 
class WinAsm;
34005
 
class WinDeclSpecs;
34006
 
class WinMemberExplSpec;
34007
 
class WinTypeKeywords;
34008
 
class PragmaOnceUnitState;
34009
 
class PragmaOnce;
34010
 
class CCExprResolve;
34011
 
class CExprResolve;
34012
 
namespace Puma {
34013
 
 
34014
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
34015
 
class CT_ClassSliceDecl : public CTree, public CSemObject {
34016
 
#line 34017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
34017
 
  friend class ::WinIfExists;
34018
 
  friend class ::WinImportHandler;
34019
 
  friend class ::WinMacros;
34020
 
  friend class ::CMatchSyntax;
34021
 
  friend class ::ExtGnu;
34022
 
  friend class ::ExtAC;
34023
 
  friend class ::ExtACBuilderCoupling;
34024
 
  friend class ::ExtACSyntaxCoupling;
34025
 
  friend class ::ExtACTree;
34026
 
  friend class ::ExtACKeywords;
34027
 
  friend class ::WinAsm;
34028
 
  friend class ::WinDeclSpecs;
34029
 
  friend class ::WinMemberExplSpec;
34030
 
  friend class ::WinTypeKeywords;
34031
 
  friend class ::PragmaOnceUnitState;
34032
 
  friend class ::PragmaOnce;
34033
 
  friend class ::CCExprResolve;
34034
 
  friend class ::CExprResolve;
34035
 
 
34036
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
34037
 
 
34038
 
  CTree *sons[6]; // SLICE? <key>? <name>? <baseclasses>? <members> ;
34039
 
public:
34040
 
  CT_ClassSliceDecl (CTree *sl, CTree *k, CTree *n, CTree *b, CTree *m, CTree *se) {
34041
 
    sons[0] = sl; sons[1] = k; sons[2] = n; sons[3] = b; sons[4] = m; sons[5] = se;
34042
 
  }
34043
 
  static const char *NodeId ();
34044
 
  const char *NodeName () const { return NodeId (); }
34045
 
  int Sons () const { return CTree::Sons (sons, 6); }
34046
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
34047
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34048
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
34049
 
  }
34050
 
  CT_Token *key () const { return (CT_Token*)sons[1]; }
34051
 
  CT_SimpleName *name () const { return (CT_SimpleName*)sons[2]; }
34052
 
  CT_Intro *base_clause () const { return (CT_Intro*)sons[3]; }
34053
 
  CT_Intro *members () const { return (CT_Intro*)sons[4]; }
34054
 
};
34055
 
 
34056
 
 
34057
 
#line 34058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
34058
 
} // closed Puma
34059
 
class WinIfExists;
34060
 
class WinImportHandler;
34061
 
class WinMacros;
34062
 
class CMatchSyntax;
34063
 
class ExtGnu;
34064
 
class ExtAC;
34065
 
class ExtACBuilderCoupling;
34066
 
class ExtACSyntaxCoupling;
34067
 
class ExtACTree;
34068
 
class ExtACKeywords;
34069
 
class WinAsm;
34070
 
class WinDeclSpecs;
34071
 
class WinMemberExplSpec;
34072
 
class WinTypeKeywords;
34073
 
class PragmaOnceUnitState;
34074
 
class PragmaOnce;
34075
 
class CCExprResolve;
34076
 
class CExprResolve;
34077
 
namespace Puma {
34078
 
 
34079
 
#line 169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
34080
 
class CT_SliceRef : public CTree {
34081
 
#line 34082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
34082
 
  friend class ::WinIfExists;
34083
 
  friend class ::WinImportHandler;
34084
 
  friend class ::WinMacros;
34085
 
  friend class ::CMatchSyntax;
34086
 
  friend class ::ExtGnu;
34087
 
  friend class ::ExtAC;
34088
 
  friend class ::ExtACBuilderCoupling;
34089
 
  friend class ::ExtACSyntaxCoupling;
34090
 
  friend class ::ExtACTree;
34091
 
  friend class ::ExtACKeywords;
34092
 
  friend class ::WinAsm;
34093
 
  friend class ::WinDeclSpecs;
34094
 
  friend class ::WinMemberExplSpec;
34095
 
  friend class ::WinTypeKeywords;
34096
 
  friend class ::PragmaOnceUnitState;
34097
 
  friend class ::PragmaOnce;
34098
 
  friend class ::CCExprResolve;
34099
 
  friend class ::CExprResolve;
34100
 
 
34101
 
#line 169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
34102
 
 
34103
 
  CTree *sons[3];
34104
 
public:
34105
 
  CT_SliceRef (CTree *sl, CTree *n, CTree *se) {
34106
 
    sons[0] = sl; sons[1] = n; sons[2] = se;
34107
 
  }
34108
 
  static const char *NodeId ();
34109
 
  const char *NodeName () const { return NodeId (); }
34110
 
  int Sons () const { return 3; }
34111
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
34112
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34113
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
34114
 
  }
34115
 
  CT_SimpleName *name () const { return (CT_SimpleName*)sons[1]; }
34116
 
};
34117
 
 
34118
 
 
34119
 
} // namespace Puma
34120
 
 
34121
 
#endif /* __ACTree_h__ */
34122
 
 
34123
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
34124
 
// This file is part of PUMA.
34125
 
// Copyright (C) 1999-2003  The PUMA developer team.
34126
 
//                                                                
34127
 
// This program is free software;  you can redistribute it and/or 
34128
 
// modify it under the terms of the GNU General Public License as 
34129
 
// published by the Free Software Foundation; either version 2 of 
34130
 
// the License, or (at your option) any later version.            
34131
 
//                                                                
34132
 
// This program is distributed in the hope that it will be useful,
34133
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
34134
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
34135
 
// GNU General Public License for more details.                   
34136
 
//                                                                
34137
 
// You should have received a copy of the GNU General Public      
34138
 
// License along with this program; if not, write to the Free     
34139
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
34140
 
// MA  02111-1307  USA                                            
34141
 
 
34142
 
#ifndef __ACClassDatabase_h__
34143
 
#define __ACClassDatabase_h__
34144
 
 
34145
 
// #include "Puma/CClassDatabase.h"
34146
 
 
34147
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
34148
 
using std::ostream;
34149
 
using std::endl;
34150
 
 
34151
 
namespace Puma {
34152
 
 
34153
 
 
34154
 
class ACAspectInfo;
34155
 
class ACPointcutInfo;
34156
 
class ACSliceInfo;
34157
 
class CObjectInfo;
34158
 
class CFunctionInfo;
34159
 
class CClassInfo;
34160
 
 
34161
 
/** \file 
34162
 
 *  AspectC++ specific class database. This is a database of all
34163
 
 *  aspect and pointcut info objects.
34164
 
 *  \see Puma::ACClassDatabase */
34165
 
 
34166
 
/** \class ACClassDatabase ACClassDatabase.h Puma/infos/acinfos/ACClassDatabase.h
34167
 
 *  An ACClassDatabase object is an AspectC++ specific database of all  
34168
 
 *  aspect, slice, and pointcut info objects. */
34169
 
 
34170
 
#line 34171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
34171
 
} // closed Puma
34172
 
class WinIfExists;
34173
 
class WinImportHandler;
34174
 
class WinMacros;
34175
 
class CMatchSyntax;
34176
 
class ExtGnu;
34177
 
class ExtAC;
34178
 
class ExtACBuilderCoupling;
34179
 
class ExtACSyntaxCoupling;
34180
 
class ExtACTree;
34181
 
class ExtACKeywords;
34182
 
class WinAsm;
34183
 
class WinDeclSpecs;
34184
 
class WinMemberExplSpec;
34185
 
class WinTypeKeywords;
34186
 
class PragmaOnceUnitState;
34187
 
class PragmaOnce;
34188
 
class CCExprResolve;
34189
 
class CExprResolve;
34190
 
namespace Puma {
34191
 
 
34192
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
34193
 
class ACClassDatabase {
34194
 
#line 34195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
34195
 
  friend class ::WinIfExists;
34196
 
  friend class ::WinImportHandler;
34197
 
  friend class ::WinMacros;
34198
 
  friend class ::CMatchSyntax;
34199
 
  friend class ::ExtGnu;
34200
 
  friend class ::ExtAC;
34201
 
  friend class ::ExtACBuilderCoupling;
34202
 
  friend class ::ExtACSyntaxCoupling;
34203
 
  friend class ::ExtACTree;
34204
 
  friend class ::ExtACKeywords;
34205
 
  friend class ::WinAsm;
34206
 
  friend class ::WinDeclSpecs;
34207
 
  friend class ::WinMemberExplSpec;
34208
 
  friend class ::WinTypeKeywords;
34209
 
  friend class ::PragmaOnceUnitState;
34210
 
  friend class ::PragmaOnce;
34211
 
  friend class ::CCExprResolve;
34212
 
  friend class ::CExprResolve;
34213
 
 
34214
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
34215
 
 
34216
 
  Array<ACAspectInfo*>   _aspect;   // index of aspects
34217
 
  Array<ACPointcutInfo*> _pointcut; // index of pointcuts
34218
 
  Array<ACSliceInfo*>    _slice;    // index of slices
34219
 
 
34220
 
  void clear (); // release all allocated heap objects
34221
 
  
34222
 
public:
34223
 
  /** Destruct the database. Destroys all aspect and pointcut infos
34224
 
   *  in the database. */
34225
 
  virtual ~ACClassDatabase ();
34226
 
 
34227
 
  // access to the database entries /////////////////////////////
34228
 
  
34229
 
  /** Get the number of aspect infos in the database. */
34230
 
  int AspectInfos () const { return _aspect.length (); }
34231
 
  /** Get the n-th aspect info. 
34232
 
   *  \param n The number of the aspect info.
34233
 
   *  \return The aspect info or \c NULL if \e n is invalid. */
34234
 
  ACAspectInfo *AspectInfo (int n) const { return _aspect.lookup (n); }
34235
 
  /** Get the info of the aspect with the given name.
34236
 
   *  \param n The name of the aspect. 
34237
 
   *  \return The aspect info or \c NULL if there is no aspect with that name. */
34238
 
  ACAspectInfo *AspectInfo (const char *n) const;
34239
 
  /** Get the aspect info according to the given class info. 
34240
 
   *  \param ci The class info of the aspect. 
34241
 
   *  \return The aspect info or \c NULL if no matching aspect was found. */
34242
 
  ACAspectInfo *AspectInfo (CClassInfo *ci) const;
34243
 
  /** Get the number of pointcut infos in the database. */
34244
 
  int PointcutInfos () const { return _pointcut.length (); }
34245
 
  /** Get the n-th pointcut info. 
34246
 
   *  \param n The number of the pointcut info.
34247
 
   *  \return The pointcut info or \c NULL if \e n is invalid. */
34248
 
  ACPointcutInfo *PointcutInfo (int n) const { return _pointcut.lookup (n); }
34249
 
  /** Get the pointcut info according to the given function info. 
34250
 
   *  \param fi The function info of the pointcut. 
34251
 
   *  \return The pointcut info or \c NULL if no matching pointcut was found. */
34252
 
  ACPointcutInfo *PointcutInfo (CFunctionInfo* fi) const;
34253
 
  /** Get the number of slice infos in the database. */
34254
 
  int SliceInfos () const { return _slice.length (); }
34255
 
  /** Get the n-th slice info. 
34256
 
   *  \param n The number of the slice info.
34257
 
   *  \return The slice info or \c NULL if \e n is invalid. */
34258
 
  ACSliceInfo *SliceInfo (int n) const { return _slice.lookup (n); }
34259
 
  /** Get the slice info that is represented by the given object info.
34260
 
   *  \param oi The object info of the slice. 
34261
 
   *  \return The slice info or \c NULL if no matching slice was found. */
34262
 
  ACSliceInfo *SliceInfo (CObjectInfo* oi) const;
34263
 
  
34264
 
public:
34265
 
  // Administration /////////////////////////////////////////////
34266
 
 
34267
 
  /** Create a new aspect info from the given class info.
34268
 
   *  The info is added to the database.
34269
 
   *  \param ci The class info. */
34270
 
  ACAspectInfo *new_aspect (CClassInfo *ci);
34271
 
  /** Create a new pointcut info from the given function info.
34272
 
   *  The info is added to the database.
34273
 
   *  \param ci The function info. */
34274
 
  ACPointcutInfo *new_pointcut (CFunctionInfo *fi);
34275
 
  /** Create a new slice info from the given object info.
34276
 
   *  The info is added to the database.
34277
 
   *  \param oi The object info. */
34278
 
  ACSliceInfo *new_slice (CObjectInfo *oi);
34279
 
 
34280
 
  /** Dump the contents of the database. 
34281
 
   *  \param out The output stream to dump to. 
34282
 
   *  \param level The output level (not yet used). */
34283
 
  void Dump (ostream &out, int level = 0) const;
34284
 
};
34285
 
 
34286
 
inline ACClassDatabase::~ACClassDatabase () {
34287
 
  clear ();
34288
 
}
34289
 
 
34290
 
} // namespace Puma
34291
 
 
34292
 
#endif /* __ACClassDatabase_h__ */
34293
 
 
34294
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
34295
 
// This file is part of PUMA.
34296
 
// Copyright (C) 1999-2003  The PUMA developer team.
34297
 
//                                                                
34298
 
// This program is free software;  you can redistribute it and/or 
34299
 
// modify it under the terms of the GNU General Public License as 
34300
 
// published by the Free Software Foundation; either version 2 of 
34301
 
// the License, or (at your option) any later version.            
34302
 
//                                                                
34303
 
// This program is distributed in the hope that it will be useful,
34304
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
34305
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
34306
 
// GNU General Public License for more details.                   
34307
 
//                                                                
34308
 
// You should have received a copy of the GNU General Public      
34309
 
// License along with this program; if not, write to the Free     
34310
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
34311
 
// MA  02111-1307  USA                                            
34312
 
 
34313
 
#ifndef __ACAspectInfo_h__
34314
 
#define __ACAspectInfo_h__
34315
 
 
34316
 
#include <set>
34317
 
using std::set;
34318
 
 
34319
 
 
34320
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
34321
 
// This file is part of PUMA.
34322
 
// Copyright (C) 1999-2003  The PUMA developer team.
34323
 
//                                                                
34324
 
// This program is free software;  you can redistribute it and/or 
34325
 
// modify it under the terms of the GNU General Public License as 
34326
 
// published by the Free Software Foundation; either version 2 of 
34327
 
// the License, or (at your option) any later version.            
34328
 
//                                                                
34329
 
// This program is distributed in the hope that it will be useful,
34330
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
34331
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
34332
 
// GNU General Public License for more details.                   
34333
 
//                                                                
34334
 
// You should have received a copy of the GNU General Public      
34335
 
// License along with this program; if not, write to the Free     
34336
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
34337
 
// MA  02111-1307  USA                                            
34338
 
 
34339
 
#ifndef __CClassInfo_h__
34340
 
#define __CClassInfo_h__
34341
 
 
34342
 
// class/struct info 
34343
 
// knows its base and derived classes
34344
 
 
34345
 
 
34346
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
34347
 
// This file is part of PUMA.
34348
 
// Copyright (C) 1999-2003  The PUMA developer team.
34349
 
//                                                                
34350
 
// This program is free software;  you can redistribute it and/or 
34351
 
// modify it under the terms of the GNU General Public License as 
34352
 
// published by the Free Software Foundation; either version 2 of 
34353
 
// the License, or (at your option) any later version.            
34354
 
//                                                                
34355
 
// This program is distributed in the hope that it will be useful,
34356
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
34357
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
34358
 
// GNU General Public License for more details.                   
34359
 
//                                                                
34360
 
// You should have received a copy of the GNU General Public      
34361
 
// License along with this program; if not, write to the Free     
34362
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
34363
 
// MA  02111-1307  USA                                            
34364
 
 
34365
 
#ifndef __CRecord_h__
34366
 
#define __CRecord_h__
34367
 
 
34368
 
// base class of class and union infos
34369
 
 
34370
 
 
34371
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
34372
 
// This file is part of PUMA.
34373
 
// Copyright (C) 1999-2003  The PUMA developer team.
34374
 
//                                                                
34375
 
// This program is free software;  you can redistribute it and/or 
34376
 
// modify it under the terms of the GNU General Public License as 
34377
 
// published by the Free Software Foundation; either version 2 of 
34378
 
// the License, or (at your option) any later version.            
34379
 
//                                                                
34380
 
// This program is distributed in the hope that it will be useful,
34381
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
34382
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
34383
 
// GNU General Public License for more details.                   
34384
 
//                                                                
34385
 
// You should have received a copy of the GNU General Public      
34386
 
// License along with this program; if not, write to the Free     
34387
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
34388
 
// MA  02111-1307  USA                                            
34389
 
 
34390
 
#ifndef __CStructure_h__
34391
 
#define __CStructure_h__
34392
 
 
34393
 
// base class of everything that also is a scope
34394
 
// (function, class, union, namespace...)
34395
 
// stores semantic info objects for variables, 
34396
 
// enumerators, function and template parameters,
34397
 
// typedefs, classes, unions, enumerations, 
34398
 
// namespaces, using-directives, friend function 
34399
 
// declarations, functions, class methods, class 
34400
 
// data members, function and class templates,
34401
 
// function and class template instances, member 
34402
 
// aliases
34403
 
 
34404
 
 
34405
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
30323
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
 
30324
  template <class JoinPoint>
 
30325
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
 
30326
  template <class JoinPoint>
 
30327
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
 
30328
  template <class JoinPoint>
 
30329
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
 
30330
  template <class JoinPoint>
 
30331
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
 
30332
  template <class JoinPoint>
 
30333
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
 
30334
  template <class JoinPoint>
 
30335
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
 
30336
  template <class JoinPoint>
 
30337
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
 
30338
  template <class JoinPoint>
 
30339
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
 
30340
  template <class JoinPoint>
 
30341
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
 
30342
  template <class JoinPoint>
 
30343
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
 
30344
  template <class JoinPoint>
 
30345
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a11_after (JoinPoint *tjp);
 
30346
}
 
30347
#endif
 
30348
 
 
30349
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
30350
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
30351
#endif
 
30352
 
 
30353
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
30354
// This file is part of PUMA.
 
30355
// Copyright (C) 1999-2003  The PUMA developer team.
 
30356
//                                                                
 
30357
// This program is free software;  you can redistribute it and/or 
 
30358
// modify it under the terms of the GNU General Public License as 
 
30359
// published by the Free Software Foundation; either version 2 of 
 
30360
// the License, or (at your option) any later version.            
 
30361
//                                                                
 
30362
// This program is distributed in the hope that it will be useful,
 
30363
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
30364
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
30365
// GNU General Public License for more details.                   
 
30366
//                                                                
 
30367
// You should have received a copy of the GNU General Public      
 
30368
// License along with this program; if not, write to the Free     
 
30369
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
30370
// MA  02111-1307  USA                                            
 
30371
 
 
30372
#ifndef __CClassDatabase_h__
 
30373
#define __CClassDatabase_h__
 
30374
 
 
30375
 
 
30376
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
34406
30377
// This file is part of PUMA.
34407
30378
// Copyright (C) 1999-2003  The PUMA developer team.
34408
30379
//                                                                
34427
30398
// scope info
34428
30399
 
34429
30400
 
34430
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
30401
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
34431
30402
// This file is part of PUMA.
34432
30403
// Copyright (C) 1999-2003  The PUMA developer team.
34433
30404
//                                                                
34461
30432
// to the same entity
34462
30433
 
34463
30434
 
34464
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
30435
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
34465
30436
// This file is part of PUMA.
34466
30437
// Copyright (C) 1999-2003  The PUMA developer team.
34467
30438
//                                                                
34496
30467
class Unit;
34497
30468
 
34498
30469
 
34499
 
#line 34500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30470
#line 30471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
34500
30471
} // closed Puma
 
30472
class CCExprResolve;
 
30473
class CExprResolve;
34501
30474
class WinIfExists;
34502
30475
class WinImportHandler;
34503
30476
class WinMacros;
34504
 
class CMatchSyntax;
34505
 
class ExtGnu;
 
30477
class WinAsm;
 
30478
class WinDeclSpecs;
 
30479
class WinMemberExplSpec;
 
30480
class WinTypeKeywords;
 
30481
class WinFriend;
34506
30482
class ExtAC;
34507
30483
class ExtACBuilderCoupling;
34508
30484
class ExtACSyntaxCoupling;
34509
30485
class ExtACTree;
34510
30486
class ExtACKeywords;
34511
 
class WinAsm;
34512
 
class WinDeclSpecs;
34513
 
class WinMemberExplSpec;
34514
 
class WinTypeKeywords;
 
30487
class ExtGnu;
34515
30488
class PragmaOnceUnitState;
34516
30489
class PragmaOnce;
34517
 
class CCExprResolve;
34518
 
class CExprResolve;
 
30490
class CMatchSyntax;
34519
30491
namespace Puma {
34520
30492
 
34521
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
30493
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
34522
30494
class CSourceInfo {
34523
 
#line 34524 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30495
#line 30496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30496
  friend class ::CCExprResolve;
 
30497
  friend class ::CExprResolve;
34524
30498
  friend class ::WinIfExists;
34525
30499
  friend class ::WinImportHandler;
34526
30500
  friend class ::WinMacros;
34527
 
  friend class ::CMatchSyntax;
34528
 
  friend class ::ExtGnu;
 
30501
  friend class ::WinAsm;
 
30502
  friend class ::WinDeclSpecs;
 
30503
  friend class ::WinMemberExplSpec;
 
30504
  friend class ::WinTypeKeywords;
 
30505
  friend class ::WinFriend;
34529
30506
  friend class ::ExtAC;
34530
30507
  friend class ::ExtACBuilderCoupling;
34531
30508
  friend class ::ExtACSyntaxCoupling;
34532
30509
  friend class ::ExtACTree;
34533
30510
  friend class ::ExtACKeywords;
34534
 
  friend class ::WinAsm;
34535
 
  friend class ::WinDeclSpecs;
34536
 
  friend class ::WinMemberExplSpec;
34537
 
  friend class ::WinTypeKeywords;
 
30511
  friend class ::ExtGnu;
34538
30512
  friend class ::PragmaOnceUnitState;
34539
30513
  friend class ::PragmaOnce;
34540
 
  friend class ::CCExprResolve;
34541
 
  friend class ::CExprResolve;
 
30514
  friend class ::CMatchSyntax;
34542
30515
 
34543
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
30516
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
34544
30517
 
34545
30518
  CFileInfo *_FileInfo; 
34546
30519
  CT_Token *_StartToken;
34614
30587
 
34615
30588
#endif /* __CSourceInfo_h__ */
34616
30589
 
34617
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
30590
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
34618
30591
// This file is part of PUMA.
34619
30592
// Copyright (C) 1999-2003  The PUMA developer team.
34620
30593
//                                                                
34642
30615
 
34643
30616
 
34644
30617
 
34645
 
#line 34646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30618
#line 30619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
34646
30619
} // closed Puma
 
30620
class CCExprResolve;
 
30621
class CExprResolve;
34647
30622
class WinIfExists;
34648
30623
class WinImportHandler;
34649
30624
class WinMacros;
34650
 
class CMatchSyntax;
34651
 
class ExtGnu;
 
30625
class WinAsm;
 
30626
class WinDeclSpecs;
 
30627
class WinMemberExplSpec;
 
30628
class WinTypeKeywords;
 
30629
class WinFriend;
34652
30630
class ExtAC;
34653
30631
class ExtACBuilderCoupling;
34654
30632
class ExtACSyntaxCoupling;
34655
30633
class ExtACTree;
34656
30634
class ExtACKeywords;
34657
 
class WinAsm;
34658
 
class WinDeclSpecs;
34659
 
class WinMemberExplSpec;
34660
 
class WinTypeKeywords;
 
30635
class ExtGnu;
34661
30636
class PragmaOnceUnitState;
34662
30637
class PragmaOnce;
34663
 
class CCExprResolve;
34664
 
class CExprResolve;
 
30638
class CMatchSyntax;
34665
30639
namespace Puma {
34666
30640
 
34667
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
30641
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
34668
30642
struct CProtection {
34669
 
#line 34670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30643
#line 30644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30644
  friend class ::CCExprResolve;
 
30645
  friend class ::CExprResolve;
34670
30646
  friend class ::WinIfExists;
34671
30647
  friend class ::WinImportHandler;
34672
30648
  friend class ::WinMacros;
34673
 
  friend class ::CMatchSyntax;
34674
 
  friend class ::ExtGnu;
 
30649
  friend class ::WinAsm;
 
30650
  friend class ::WinDeclSpecs;
 
30651
  friend class ::WinMemberExplSpec;
 
30652
  friend class ::WinTypeKeywords;
 
30653
  friend class ::WinFriend;
34675
30654
  friend class ::ExtAC;
34676
30655
  friend class ::ExtACBuilderCoupling;
34677
30656
  friend class ::ExtACSyntaxCoupling;
34678
30657
  friend class ::ExtACTree;
34679
30658
  friend class ::ExtACKeywords;
34680
 
  friend class ::WinAsm;
34681
 
  friend class ::WinDeclSpecs;
34682
 
  friend class ::WinMemberExplSpec;
34683
 
  friend class ::WinTypeKeywords;
 
30659
  friend class ::ExtGnu;
34684
30660
  friend class ::PragmaOnceUnitState;
34685
30661
  friend class ::PragmaOnce;
34686
 
  friend class ::CCExprResolve;
34687
 
  friend class ::CExprResolve;
 
30662
  friend class ::CMatchSyntax;
34688
30663
 
34689
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
30664
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
34690
30665
 
34691
30666
  enum Type {
34692
30667
    PROT_PUBLIC, 
34701
30676
 
34702
30677
#endif /* __CProtection_h__ */
34703
30678
 
34704
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
30679
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
34705
30680
// This file is part of PUMA.
34706
30681
// Copyright (C) 1999-2003  The PUMA developer team.
34707
30682
//                                                                
34729
30704
 
34730
30705
 
34731
30706
 
34732
 
#line 34733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30707
#line 30708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
34733
30708
} // closed Puma
 
30709
class CCExprResolve;
 
30710
class CExprResolve;
34734
30711
class WinIfExists;
34735
30712
class WinImportHandler;
34736
30713
class WinMacros;
34737
 
class CMatchSyntax;
34738
 
class ExtGnu;
 
30714
class WinAsm;
 
30715
class WinDeclSpecs;
 
30716
class WinMemberExplSpec;
 
30717
class WinTypeKeywords;
 
30718
class WinFriend;
34739
30719
class ExtAC;
34740
30720
class ExtACBuilderCoupling;
34741
30721
class ExtACSyntaxCoupling;
34742
30722
class ExtACTree;
34743
30723
class ExtACKeywords;
34744
 
class WinAsm;
34745
 
class WinDeclSpecs;
34746
 
class WinMemberExplSpec;
34747
 
class WinTypeKeywords;
 
30724
class ExtGnu;
34748
30725
class PragmaOnceUnitState;
34749
30726
class PragmaOnce;
34750
 
class CCExprResolve;
34751
 
class CExprResolve;
 
30727
class CMatchSyntax;
34752
30728
namespace Puma {
34753
30729
 
34754
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
30730
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
34755
30731
struct CStorage {
34756
 
#line 34757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30732
#line 30733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30733
  friend class ::CCExprResolve;
 
30734
  friend class ::CExprResolve;
34757
30735
  friend class ::WinIfExists;
34758
30736
  friend class ::WinImportHandler;
34759
30737
  friend class ::WinMacros;
34760
 
  friend class ::CMatchSyntax;
34761
 
  friend class ::ExtGnu;
 
30738
  friend class ::WinAsm;
 
30739
  friend class ::WinDeclSpecs;
 
30740
  friend class ::WinMemberExplSpec;
 
30741
  friend class ::WinTypeKeywords;
 
30742
  friend class ::WinFriend;
34762
30743
  friend class ::ExtAC;
34763
30744
  friend class ::ExtACBuilderCoupling;
34764
30745
  friend class ::ExtACSyntaxCoupling;
34765
30746
  friend class ::ExtACTree;
34766
30747
  friend class ::ExtACKeywords;
34767
 
  friend class ::WinAsm;
34768
 
  friend class ::WinDeclSpecs;
34769
 
  friend class ::WinMemberExplSpec;
34770
 
  friend class ::WinTypeKeywords;
 
30748
  friend class ::ExtGnu;
34771
30749
  friend class ::PragmaOnceUnitState;
34772
30750
  friend class ::PragmaOnce;
34773
 
  friend class ::CCExprResolve;
34774
 
  friend class ::CExprResolve;
 
30751
  friend class ::CMatchSyntax;
34775
30752
 
34776
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
30753
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
34777
30754
 
34778
30755
  enum Type {
34779
30756
    CLASS_STATIC,
34788
30765
 
34789
30766
#endif /* __CStorage_h__ */
34790
30767
 
34791
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
30768
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
34792
30769
// This file is part of PUMA.
34793
30770
// Copyright (C) 1999-2003  The PUMA developer team.
34794
30771
//                                                                
34816
30793
 
34817
30794
 
34818
30795
 
34819
 
#line 34820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30796
#line 30797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
34820
30797
} // closed Puma
 
30798
class CCExprResolve;
 
30799
class CExprResolve;
34821
30800
class WinIfExists;
34822
30801
class WinImportHandler;
34823
30802
class WinMacros;
34824
 
class CMatchSyntax;
34825
 
class ExtGnu;
 
30803
class WinAsm;
 
30804
class WinDeclSpecs;
 
30805
class WinMemberExplSpec;
 
30806
class WinTypeKeywords;
 
30807
class WinFriend;
34826
30808
class ExtAC;
34827
30809
class ExtACBuilderCoupling;
34828
30810
class ExtACSyntaxCoupling;
34829
30811
class ExtACTree;
34830
30812
class ExtACKeywords;
34831
 
class WinAsm;
34832
 
class WinDeclSpecs;
34833
 
class WinMemberExplSpec;
34834
 
class WinTypeKeywords;
 
30813
class ExtGnu;
34835
30814
class PragmaOnceUnitState;
34836
30815
class PragmaOnce;
34837
 
class CCExprResolve;
34838
 
class CExprResolve;
 
30816
class CMatchSyntax;
34839
30817
namespace Puma {
34840
30818
 
34841
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
30819
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
34842
30820
struct CLinkage {
34843
 
#line 34844 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30821
#line 30822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30822
  friend class ::CCExprResolve;
 
30823
  friend class ::CExprResolve;
34844
30824
  friend class ::WinIfExists;
34845
30825
  friend class ::WinImportHandler;
34846
30826
  friend class ::WinMacros;
34847
 
  friend class ::CMatchSyntax;
34848
 
  friend class ::ExtGnu;
 
30827
  friend class ::WinAsm;
 
30828
  friend class ::WinDeclSpecs;
 
30829
  friend class ::WinMemberExplSpec;
 
30830
  friend class ::WinTypeKeywords;
 
30831
  friend class ::WinFriend;
34849
30832
  friend class ::ExtAC;
34850
30833
  friend class ::ExtACBuilderCoupling;
34851
30834
  friend class ::ExtACSyntaxCoupling;
34852
30835
  friend class ::ExtACTree;
34853
30836
  friend class ::ExtACKeywords;
34854
 
  friend class ::WinAsm;
34855
 
  friend class ::WinDeclSpecs;
34856
 
  friend class ::WinMemberExplSpec;
34857
 
  friend class ::WinTypeKeywords;
 
30837
  friend class ::ExtGnu;
34858
30838
  friend class ::PragmaOnceUnitState;
34859
30839
  friend class ::PragmaOnce;
34860
 
  friend class ::CCExprResolve;
34861
 
  friend class ::CExprResolve;
 
30840
  friend class ::CMatchSyntax;
34862
30841
 
34863
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
30842
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
34864
30843
 
34865
30844
  enum Type {
34866
30845
    LINK_INTERNAL, 
34874
30853
 
34875
30854
#endif /* __CLinkage_h__ */
34876
30855
 
34877
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
30856
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
34878
30857
// This file is part of PUMA.
34879
30858
// Copyright (C) 1999-2003  The PUMA developer team.
34880
30859
//                                                                
34897
30876
#define __CLanguage_h__
34898
30877
 
34899
30878
 
34900
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
30879
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
34901
30880
// Entity name encoding language; language linkage
34902
30881
 
34903
30882
namespace Puma {
34904
30883
 
34905
30884
 
34906
30885
 
34907
 
#line 34908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30886
#line 30887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
34908
30887
} // closed Puma
 
30888
class CCExprResolve;
 
30889
class CExprResolve;
34909
30890
class WinIfExists;
34910
30891
class WinImportHandler;
34911
30892
class WinMacros;
34912
 
class CMatchSyntax;
34913
 
class ExtGnu;
 
30893
class WinAsm;
 
30894
class WinDeclSpecs;
 
30895
class WinMemberExplSpec;
 
30896
class WinTypeKeywords;
 
30897
class WinFriend;
34914
30898
class ExtAC;
34915
30899
class ExtACBuilderCoupling;
34916
30900
class ExtACSyntaxCoupling;
34917
30901
class ExtACTree;
34918
30902
class ExtACKeywords;
34919
 
class WinAsm;
34920
 
class WinDeclSpecs;
34921
 
class WinMemberExplSpec;
34922
 
class WinTypeKeywords;
 
30903
class ExtGnu;
34923
30904
class PragmaOnceUnitState;
34924
30905
class PragmaOnce;
34925
 
class CCExprResolve;
34926
 
class CExprResolve;
 
30906
class CMatchSyntax;
34927
30907
namespace Puma {
34928
30908
 
34929
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
30909
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
34930
30910
class CLanguage {
34931
 
#line 34932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30911
#line 30912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
30912
  friend class ::CCExprResolve;
 
30913
  friend class ::CExprResolve;
34932
30914
  friend class ::WinIfExists;
34933
30915
  friend class ::WinImportHandler;
34934
30916
  friend class ::WinMacros;
34935
 
  friend class ::CMatchSyntax;
34936
 
  friend class ::ExtGnu;
 
30917
  friend class ::WinAsm;
 
30918
  friend class ::WinDeclSpecs;
 
30919
  friend class ::WinMemberExplSpec;
 
30920
  friend class ::WinTypeKeywords;
 
30921
  friend class ::WinFriend;
34937
30922
  friend class ::ExtAC;
34938
30923
  friend class ::ExtACBuilderCoupling;
34939
30924
  friend class ::ExtACSyntaxCoupling;
34940
30925
  friend class ::ExtACTree;
34941
30926
  friend class ::ExtACKeywords;
34942
 
  friend class ::WinAsm;
34943
 
  friend class ::WinDeclSpecs;
34944
 
  friend class ::WinMemberExplSpec;
34945
 
  friend class ::WinTypeKeywords;
 
30927
  friend class ::ExtGnu;
34946
30928
  friend class ::PragmaOnceUnitState;
34947
30929
  friend class ::PragmaOnce;
34948
 
  friend class ::CCExprResolve;
34949
 
  friend class ::CExprResolve;
 
30930
  friend class ::CMatchSyntax;
34950
30931
 
34951
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
30932
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
34952
30933
 
34953
30934
public:
34954
30935
  enum LangType {
34984
30965
 
34985
30966
#endif /* __CLanguage_h__ */
34986
30967
 
34987
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
30968
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
34988
30969
// This file is part of PUMA.
34989
30970
// Copyright (C) 1999-2003  The PUMA developer team.
34990
30971
//                                                                
35012
30993
 
35013
30994
 
35014
30995
 
35015
 
#line 35016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
30996
#line 30997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
35016
30997
} // closed Puma
 
30998
class CCExprResolve;
 
30999
class CExprResolve;
35017
31000
class WinIfExists;
35018
31001
class WinImportHandler;
35019
31002
class WinMacros;
35020
 
class CMatchSyntax;
35021
 
class ExtGnu;
 
31003
class WinAsm;
 
31004
class WinDeclSpecs;
 
31005
class WinMemberExplSpec;
 
31006
class WinTypeKeywords;
 
31007
class WinFriend;
35022
31008
class ExtAC;
35023
31009
class ExtACBuilderCoupling;
35024
31010
class ExtACSyntaxCoupling;
35025
31011
class ExtACTree;
35026
31012
class ExtACKeywords;
35027
 
class WinAsm;
35028
 
class WinDeclSpecs;
35029
 
class WinMemberExplSpec;
35030
 
class WinTypeKeywords;
 
31013
class ExtGnu;
35031
31014
class PragmaOnceUnitState;
35032
31015
class PragmaOnce;
35033
 
class CCExprResolve;
35034
 
class CExprResolve;
 
31016
class CMatchSyntax;
35035
31017
namespace Puma {
35036
31018
 
35037
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
31019
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
35038
31020
class CSpecifiers {
35039
 
#line 35040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
31021
#line 31022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
31022
  friend class ::CCExprResolve;
 
31023
  friend class ::CExprResolve;
35040
31024
  friend class ::WinIfExists;
35041
31025
  friend class ::WinImportHandler;
35042
31026
  friend class ::WinMacros;
35043
 
  friend class ::CMatchSyntax;
35044
 
  friend class ::ExtGnu;
 
31027
  friend class ::WinAsm;
 
31028
  friend class ::WinDeclSpecs;
 
31029
  friend class ::WinMemberExplSpec;
 
31030
  friend class ::WinTypeKeywords;
 
31031
  friend class ::WinFriend;
35045
31032
  friend class ::ExtAC;
35046
31033
  friend class ::ExtACBuilderCoupling;
35047
31034
  friend class ::ExtACSyntaxCoupling;
35048
31035
  friend class ::ExtACTree;
35049
31036
  friend class ::ExtACKeywords;
35050
 
  friend class ::WinAsm;
35051
 
  friend class ::WinDeclSpecs;
35052
 
  friend class ::WinMemberExplSpec;
35053
 
  friend class ::WinTypeKeywords;
 
31037
  friend class ::ExtGnu;
35054
31038
  friend class ::PragmaOnceUnitState;
35055
31039
  friend class ::PragmaOnce;
35056
 
  friend class ::CCExprResolve;
35057
 
  friend class ::CExprResolve;
 
31040
  friend class ::CMatchSyntax;
35058
31041
 
35059
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
31042
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
35060
31043
 
35061
31044
public:
35062
31045
  enum Spec {
35110
31093
 
35111
31094
#endif /* __CSpecifiers__ */
35112
31095
 
35113
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
31096
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
35114
31097
namespace Puma {
35115
31098
 
35116
31099
 
35144
31127
class CTemplateInstance;
35145
31128
 
35146
31129
 
35147
 
#line 35148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
31130
#line 31131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
35148
31131
} // closed Puma
 
31132
class CCExprResolve;
 
31133
class CExprResolve;
35149
31134
class WinIfExists;
35150
31135
class WinImportHandler;
35151
31136
class WinMacros;
35152
 
class CMatchSyntax;
35153
 
class ExtGnu;
 
31137
class WinAsm;
 
31138
class WinDeclSpecs;
 
31139
class WinMemberExplSpec;
 
31140
class WinTypeKeywords;
 
31141
class WinFriend;
35154
31142
class ExtAC;
35155
31143
class ExtACBuilderCoupling;
35156
31144
class ExtACSyntaxCoupling;
35157
31145
class ExtACTree;
35158
31146
class ExtACKeywords;
35159
 
class WinAsm;
35160
 
class WinDeclSpecs;
35161
 
class WinMemberExplSpec;
35162
 
class WinTypeKeywords;
 
31147
class ExtGnu;
35163
31148
class PragmaOnceUnitState;
35164
31149
class PragmaOnce;
35165
 
class CCExprResolve;
35166
 
class CExprResolve;
 
31150
class CMatchSyntax;
35167
31151
namespace Puma {
35168
31152
 
35169
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
31153
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
35170
31154
class CObjectInfo {
35171
 
#line 35172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
31155
#line 31156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
31156
  friend class ::CCExprResolve;
 
31157
  friend class ::CExprResolve;
35172
31158
  friend class ::WinIfExists;
35173
31159
  friend class ::WinImportHandler;
35174
31160
  friend class ::WinMacros;
35175
 
  friend class ::CMatchSyntax;
35176
 
  friend class ::ExtGnu;
 
31161
  friend class ::WinAsm;
 
31162
  friend class ::WinDeclSpecs;
 
31163
  friend class ::WinMemberExplSpec;
 
31164
  friend class ::WinTypeKeywords;
 
31165
  friend class ::WinFriend;
35177
31166
  friend class ::ExtAC;
35178
31167
  friend class ::ExtACBuilderCoupling;
35179
31168
  friend class ::ExtACSyntaxCoupling;
35180
31169
  friend class ::ExtACTree;
35181
31170
  friend class ::ExtACKeywords;
35182
 
  friend class ::WinAsm;
35183
 
  friend class ::WinDeclSpecs;
35184
 
  friend class ::WinMemberExplSpec;
35185
 
  friend class ::WinTypeKeywords;
 
31171
  friend class ::ExtGnu;
35186
31172
  friend class ::PragmaOnceUnitState;
35187
31173
  friend class ::PragmaOnce;
35188
 
  friend class ::CCExprResolve;
35189
 
  friend class ::CExprResolve;
 
31174
  friend class ::CMatchSyntax;
35190
31175
 
35191
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
31176
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
35192
31177
 
35193
31178
protected:
35194
31179
  enum ObjectId {
35219
31204
private:
35220
31205
  DString            _Name;
35221
31206
  const char        *_QualName;         // Full qualified name
 
31207
  bool              _abs, _tdef;        // Flags that were used for QualName()
35222
31208
  CTypeInfo         *_TypeInfo;
35223
31209
  CObjectInfo       *_BaseObject;       // corresponding object of base class
35224
31210
  CObjectInfo       *_Next;             // next linked object
35277
31263
  // Get ...
35278
31264
  ObjectId            Id () const;
35279
31265
  const DString&      Name () const; 
35280
 
  const char         *QualName ();                // created on demand
 
31266
  const char         *QualName (bool abs = false, // created on demand
 
31267
                                bool tdef = false);
35281
31268
  CObjectInfo        *DefObject () const;         // info of the definition
35282
31269
  CTypeInfo          *TypeInfo () const;
35283
31270
  CScopeInfo         *Scope () const;             // enclosing scope
35532
31519
 
35533
31520
#endif /* __CObjectInfo_h__ */
35534
31521
 
35535
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
31522
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
35536
31523
namespace Puma {
35537
31524
 
35538
31525
 
35544
31531
class CTemplateInfo;
35545
31532
 
35546
31533
 
35547
 
#line 35548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
31534
#line 31535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
35548
31535
} // closed Puma
 
31536
class CCExprResolve;
 
31537
class CExprResolve;
35549
31538
class WinIfExists;
35550
31539
class WinImportHandler;
35551
31540
class WinMacros;
35552
 
class CMatchSyntax;
35553
 
class ExtGnu;
 
31541
class WinAsm;
 
31542
class WinDeclSpecs;
 
31543
class WinMemberExplSpec;
 
31544
class WinTypeKeywords;
 
31545
class WinFriend;
35554
31546
class ExtAC;
35555
31547
class ExtACBuilderCoupling;
35556
31548
class ExtACSyntaxCoupling;
35557
31549
class ExtACTree;
35558
31550
class ExtACKeywords;
35559
 
class WinAsm;
35560
 
class WinDeclSpecs;
35561
 
class WinMemberExplSpec;
35562
 
class WinTypeKeywords;
 
31551
class ExtGnu;
35563
31552
class PragmaOnceUnitState;
35564
31553
class PragmaOnce;
35565
 
class CCExprResolve;
35566
 
class CExprResolve;
 
31554
class CMatchSyntax;
35567
31555
namespace Puma {
35568
31556
 
35569
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
31557
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
35570
31558
class CScopeInfo : public CObjectInfo {
35571
 
#line 35572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
31559
#line 31560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
31560
  friend class ::CCExprResolve;
 
31561
  friend class ::CExprResolve;
35572
31562
  friend class ::WinIfExists;
35573
31563
  friend class ::WinImportHandler;
35574
31564
  friend class ::WinMacros;
35575
 
  friend class ::CMatchSyntax;
35576
 
  friend class ::ExtGnu;
 
31565
  friend class ::WinAsm;
 
31566
  friend class ::WinDeclSpecs;
 
31567
  friend class ::WinMemberExplSpec;
 
31568
  friend class ::WinTypeKeywords;
 
31569
  friend class ::WinFriend;
35577
31570
  friend class ::ExtAC;
35578
31571
  friend class ::ExtACBuilderCoupling;
35579
31572
  friend class ::ExtACSyntaxCoupling;
35580
31573
  friend class ::ExtACTree;
35581
31574
  friend class ::ExtACKeywords;
35582
 
  friend class ::WinAsm;
35583
 
  friend class ::WinDeclSpecs;
35584
 
  friend class ::WinMemberExplSpec;
35585
 
  friend class ::WinTypeKeywords;
 
31575
  friend class ::ExtGnu;
35586
31576
  friend class ::PragmaOnceUnitState;
35587
31577
  friend class ::PragmaOnce;
35588
 
  friend class ::CCExprResolve;
35589
 
  friend class ::CExprResolve;
 
31578
  friend class ::CMatchSyntax;
35590
31579
 
35591
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
31580
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
35592
31581
 
35593
31582
  Array<CScopeInfo*> _Children; // child scopes
35594
31583
  CScopeInfo *_Parent; // parent scope
35707
31696
 
35708
31697
#endif /* __CScopeInfo_h__ */
35709
31698
 
35710
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
31699
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
31700
 
 
31701
#line 31702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
31702
 
 
31703
#ifndef __ac_fwd_ExtACKeywords__
 
31704
#define __ac_fwd_ExtACKeywords__
 
31705
class ExtACKeywords;
 
31706
namespace AC {
 
31707
  template <class JoinPoint>
 
31708
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
31709
  template <class JoinPoint>
 
31710
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
31711
  template <class JoinPoint>
 
31712
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
31713
}
 
31714
#endif
 
31715
 
 
31716
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
31717
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
31718
#endif
 
31719
 
 
31720
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
31721
// This file is part of PUMA.
 
31722
// Copyright (C) 1999-2003  The PUMA developer team.
 
31723
//                                                                
 
31724
// This program is free software;  you can redistribute it and/or 
 
31725
// modify it under the terms of the GNU General Public License as 
 
31726
// published by the Free Software Foundation; either version 2 of 
 
31727
// the License, or (at your option) any later version.            
 
31728
//                                                                
 
31729
// This program is distributed in the hope that it will be useful,
 
31730
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31731
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31732
// GNU General Public License for more details.                   
 
31733
//                                                                
 
31734
// You should have received a copy of the GNU General Public      
 
31735
// License along with this program; if not, write to the Free     
 
31736
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31737
// MA  02111-1307  USA                                            
 
31738
 
 
31739
#ifndef __CProject_h__
 
31740
#define __CProject_h__
 
31741
 
 
31742
// Special project derivation for C++ sources.
 
31743
 
 
31744
 
 
31745
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
31746
// This file is part of PUMA.
 
31747
// Copyright (C) 1999-2003  The PUMA developer team.
 
31748
//                                                                
 
31749
// This program is free software;  you can redistribute it and/or 
 
31750
// modify it under the terms of the GNU General Public License as 
 
31751
// published by the Free Software Foundation; either version 2 of 
 
31752
// the License, or (at your option) any later version.            
 
31753
//                                                                
 
31754
// This program is distributed in the hope that it will be useful,
 
31755
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31756
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31757
// GNU General Public License for more details.                   
 
31758
//                                                                
 
31759
// You should have received a copy of the GNU General Public      
 
31760
// License along with this program; if not, write to the Free     
 
31761
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31762
// MA  02111-1307  USA                                            
 
31763
 
 
31764
#ifndef __Config_h__
 
31765
#define __Config_h__
 
31766
 
 
31767
// Class Config provides evaluation of configuration 
 
31768
// information from file or command line.
 
31769
 
 
31770
 
 
31771
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
31772
// This file is part of PUMA.
 
31773
// Copyright (C) 1999-2003  The PUMA developer team.
 
31774
//                                                                
 
31775
// This program is free software;  you can redistribute it and/or 
 
31776
// modify it under the terms of the GNU General Public License as 
 
31777
// published by the Free Software Foundation; either version 2 of 
 
31778
// the License, or (at your option) any later version.            
 
31779
//                                                                
 
31780
// This program is distributed in the hope that it will be useful,
 
31781
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31782
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31783
// GNU General Public License for more details.                   
 
31784
//                                                                
 
31785
// You should have received a copy of the GNU General Public      
 
31786
// License along with this program; if not, write to the Free     
 
31787
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31788
// MA  02111-1307  USA                                            
 
31789
 
 
31790
#ifndef __Flags_h__
 
31791
#define __Flags_h__
 
31792
 
 
31793
namespace Puma {
 
31794
 
 
31795
 
 
31796
 
 
31797
#line 31798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
31798
} // closed Puma
 
31799
class CCExprResolve;
 
31800
class CExprResolve;
 
31801
class WinIfExists;
 
31802
class WinImportHandler;
 
31803
class WinMacros;
 
31804
class WinAsm;
 
31805
class WinDeclSpecs;
 
31806
class WinMemberExplSpec;
 
31807
class WinTypeKeywords;
 
31808
class WinFriend;
 
31809
class ExtAC;
 
31810
class ExtACBuilderCoupling;
 
31811
class ExtACSyntaxCoupling;
 
31812
class ExtACTree;
 
31813
class ExtACKeywords;
 
31814
class ExtGnu;
 
31815
class PragmaOnceUnitState;
 
31816
class PragmaOnce;
 
31817
class CMatchSyntax;
 
31818
namespace Puma {
 
31819
 
 
31820
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
31821
class Flags {
 
31822
#line 31823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
31823
  friend class ::CCExprResolve;
 
31824
  friend class ::CExprResolve;
 
31825
  friend class ::WinIfExists;
 
31826
  friend class ::WinImportHandler;
 
31827
  friend class ::WinMacros;
 
31828
  friend class ::WinAsm;
 
31829
  friend class ::WinDeclSpecs;
 
31830
  friend class ::WinMemberExplSpec;
 
31831
  friend class ::WinTypeKeywords;
 
31832
  friend class ::WinFriend;
 
31833
  friend class ::ExtAC;
 
31834
  friend class ::ExtACBuilderCoupling;
 
31835
  friend class ::ExtACSyntaxCoupling;
 
31836
  friend class ::ExtACTree;
 
31837
  friend class ::ExtACKeywords;
 
31838
  friend class ::ExtGnu;
 
31839
  friend class ::PragmaOnceUnitState;
 
31840
  friend class ::PragmaOnce;
 
31841
  friend class ::CMatchSyntax;
 
31842
 
 
31843
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
31844
 
 
31845
public:
 
31846
  enum Flag {
 
31847
    NONE                       = 0x0,
 
31848
    
 
31849
    SKIP_FCT_BODY              = 0x1,
 
31850
    SKIP_INITS                 = 0x2,
 
31851
    
 
31852
    // GNU extensions
 
31853
    GNU_NESTED_FCT             = 0x4,
 
31854
    GNU_CONDITION_SCOPE        = 0x8,
 
31855
    GNU_PARAM_DECL             = 0x10,
 
31856
    GNU_FCT_DECL               = 0x20,
 
31857
    GNU_PARAM_SCOPE            = 0x40,
 
31858
    GNU_DEFAULT_ARGS           = 0x80,
 
31859
    GNU_EXTENDED_ASM           = 0x100,
 
31860
    GNU_EXTENDED_EXPR          = 0x200,
 
31861
    GNU_LONG_LONG              = 0x400,
 
31862
    GNU_NAME_SCOPE             = 0x800, 
 
31863
    GNU_IMPLICIT_INT           = 0x1000,
 
31864
    GNU_FCT_ATTRIBUTE          = 0x2000,
 
31865
    GNU_IF_THEN_EXPR           = 0x4000
 
31866
  };
 
31867
  
 
31868
private:
 
31869
  Flag _Flags;
 
31870
  
 
31871
public:
 
31872
  Flags ();
 
31873
  Flags (const Flags &);
 
31874
  Flags &operator =(const Flags &);
 
31875
 
 
31876
  // add/remove flag
 
31877
  Flags &operator +=(Flag);
 
31878
  Flags &operator -=(Flag);
 
31879
  
 
31880
  // test for flag
 
31881
  bool operator ==(Flag) const;
 
31882
  bool operator !=(Flag) const;
 
31883
};
 
31884
 
 
31885
inline Flags::Flags () : _Flags (NONE) 
 
31886
 {}
 
31887
inline Flags::Flags (const Flags &f)
 
31888
 { _Flags = f._Flags; }
 
31889
inline Flags &Flags::operator =(const Flags &f)
 
31890
 { _Flags = f._Flags; return *(Flags*)this; }
 
31891
 
 
31892
inline Flags &Flags::operator +=(Flags::Flag f)
 
31893
 { _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
 
31894
inline Flags &Flags::operator -=(Flags::Flag f)
 
31895
 { _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
 
31896
 
 
31897
inline bool Flags::operator ==(Flags::Flag f) const
 
31898
 { return _Flags & f; }
 
31899
inline bool Flags::operator !=(Flags::Flag f) const
 
31900
 { return ! (_Flags & f); }
 
31901
 
 
31902
 
 
31903
} // namespace Puma
 
31904
 
 
31905
#endif /* __Flags_h__ */
 
31906
 
 
31907
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
31908
// This file is part of PUMA.
 
31909
// Copyright (C) 1999-2003  The PUMA developer team.
 
31910
//                                                                
 
31911
// This program is free software;  you can redistribute it and/or 
 
31912
// modify it under the terms of the GNU General Public License as 
 
31913
// published by the Free Software Foundation; either version 2 of 
 
31914
// the License, or (at your option) any later version.            
 
31915
//                                                                
 
31916
// This program is distributed in the hope that it will be useful,
 
31917
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31918
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31919
// GNU General Public License for more details.                   
 
31920
//                                                                
 
31921
// You should have received a copy of the GNU General Public      
 
31922
// License along with this program; if not, write to the Free     
 
31923
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31924
// MA  02111-1307  USA                                            
 
31925
 
 
31926
#ifndef __ConfOption_h__
 
31927
#define __ConfOption_h__
 
31928
 
 
31929
 
 
31930
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
31931
#include <stdlib.h>
 
31932
 
 
31933
namespace Puma {
 
31934
 
 
31935
 
 
31936
 
 
31937
#line 31938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
31938
} // closed Puma
 
31939
class CCExprResolve;
 
31940
class CExprResolve;
 
31941
class WinIfExists;
 
31942
class WinImportHandler;
 
31943
class WinMacros;
 
31944
class WinAsm;
 
31945
class WinDeclSpecs;
 
31946
class WinMemberExplSpec;
 
31947
class WinTypeKeywords;
 
31948
class WinFriend;
 
31949
class ExtAC;
 
31950
class ExtACBuilderCoupling;
 
31951
class ExtACSyntaxCoupling;
 
31952
class ExtACTree;
 
31953
class ExtACKeywords;
 
31954
class ExtGnu;
 
31955
class PragmaOnceUnitState;
 
31956
class PragmaOnce;
 
31957
class CMatchSyntax;
 
31958
namespace Puma {
 
31959
 
 
31960
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
31961
class ConfOption {
 
31962
#line 31963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
31963
  friend class ::CCExprResolve;
 
31964
  friend class ::CExprResolve;
 
31965
  friend class ::WinIfExists;
 
31966
  friend class ::WinImportHandler;
 
31967
  friend class ::WinMacros;
 
31968
  friend class ::WinAsm;
 
31969
  friend class ::WinDeclSpecs;
 
31970
  friend class ::WinMemberExplSpec;
 
31971
  friend class ::WinTypeKeywords;
 
31972
  friend class ::WinFriend;
 
31973
  friend class ::ExtAC;
 
31974
  friend class ::ExtACBuilderCoupling;
 
31975
  friend class ::ExtACSyntaxCoupling;
 
31976
  friend class ::ExtACTree;
 
31977
  friend class ::ExtACKeywords;
 
31978
  friend class ::ExtGnu;
 
31979
  friend class ::PragmaOnceUnitState;
 
31980
  friend class ::PragmaOnce;
 
31981
  friend class ::CMatchSyntax;
 
31982
 
 
31983
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
31984
 
 
31985
  const char *_name;
 
31986
  Array<const char *> _args;
 
31987
  
 
31988
public:
 
31989
  ConfOption (const char *);
 
31990
  ConfOption (const char *, const char *);
 
31991
  ConfOption (const char *, const char *, const char *);
 
31992
  ~ConfOption ();
 
31993
  
 
31994
  const char *Name () const;
 
31995
  unsigned Arguments () const;
 
31996
  const char *Argument (unsigned) const;
 
31997
  
 
31998
  void addArgument (const char *);
 
31999
};
 
32000
 
 
32001
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
 
32002
 { _name = StrCol::dup (n); }
 
32003
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1) 
 
32004
 { _name = StrCol::dup (n); addArgument (a1); }
 
32005
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1) 
 
32006
 { _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
 
32007
 
 
32008
inline ConfOption::~ConfOption ()
 
32009
 { delete[] _name; 
 
32010
   for (unsigned i = 0; i < Arguments (); i++) 
 
32011
     delete[] Argument (i);
 
32012
 }
 
32013
 
 
32014
inline const char *ConfOption::Name () const 
 
32015
 { return _name; }
 
32016
inline unsigned ConfOption::Arguments () const
 
32017
 { return _args.length (); }
 
32018
inline const char *ConfOption::Argument (unsigned i) const
 
32019
 { return _args.lookup (i); }
 
32020
  
 
32021
inline void ConfOption::addArgument (const char *a) 
 
32022
 { if (a) _args.append (StrCol::dup (a)); }
 
32023
 
 
32024
 
 
32025
} // namespace Puma
 
32026
 
 
32027
#endif /* __ConfOption_h__ */
 
32028
 
 
32029
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
32030
// This file is part of PUMA.
 
32031
// Copyright (C) 1999-2003  The PUMA developer team.
 
32032
//                                                                
 
32033
// This program is free software;  you can redistribute it and/or 
 
32034
// modify it under the terms of the GNU General Public License as 
 
32035
// published by the Free Software Foundation; either version 2 of 
 
32036
// the License, or (at your option) any later version.            
 
32037
//                                                                
 
32038
// This program is distributed in the hope that it will be useful,
 
32039
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32040
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32041
// GNU General Public License for more details.                   
 
32042
//                                                                
 
32043
// You should have received a copy of the GNU General Public      
 
32044
// License along with this program; if not, write to the Free     
 
32045
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32046
// MA  02111-1307  USA                                            
 
32047
 
 
32048
#ifndef __error_stream_h__
 
32049
#define __error_stream_h__
 
32050
 
 
32051
// An ErrorStream is a special ErrorSink that prints out an error message
 
32052
// as soon as it complete. It also stores the maximum error severity.
 
32053
// The ErrorStream can be reset to it's initial state.
 
32054
 
 
32055
 
 
32056
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
32057
using namespace std;
 
32058
 
 
32059
namespace Puma {
 
32060
 
 
32061
 
 
32062
 
 
32063
#line 32064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32064
} // closed Puma
 
32065
class CCExprResolve;
 
32066
class CExprResolve;
 
32067
class WinIfExists;
 
32068
class WinImportHandler;
 
32069
class WinMacros;
 
32070
class WinAsm;
 
32071
class WinDeclSpecs;
 
32072
class WinMemberExplSpec;
 
32073
class WinTypeKeywords;
 
32074
class WinFriend;
 
32075
class ExtAC;
 
32076
class ExtACBuilderCoupling;
 
32077
class ExtACSyntaxCoupling;
 
32078
class ExtACTree;
 
32079
class ExtACKeywords;
 
32080
class ExtGnu;
 
32081
class PragmaOnceUnitState;
 
32082
class PragmaOnce;
 
32083
class CMatchSyntax;
 
32084
namespace Puma {
 
32085
 
 
32086
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
32087
class ErrorStream : public ErrorSink {
 
32088
#line 32089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32089
  friend class ::CCExprResolve;
 
32090
  friend class ::CExprResolve;
 
32091
  friend class ::WinIfExists;
 
32092
  friend class ::WinImportHandler;
 
32093
  friend class ::WinMacros;
 
32094
  friend class ::WinAsm;
 
32095
  friend class ::WinDeclSpecs;
 
32096
  friend class ::WinMemberExplSpec;
 
32097
  friend class ::WinTypeKeywords;
 
32098
  friend class ::WinFriend;
 
32099
  friend class ::ExtAC;
 
32100
  friend class ::ExtACBuilderCoupling;
 
32101
  friend class ::ExtACSyntaxCoupling;
 
32102
  friend class ::ExtACTree;
 
32103
  friend class ::ExtACKeywords;
 
32104
  friend class ::ExtGnu;
 
32105
  friend class ::PragmaOnceUnitState;
 
32106
  friend class ::PragmaOnce;
 
32107
  friend class ::CMatchSyntax;
 
32108
 
 
32109
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
32110
 
 
32111
  ostream *_ostream;
 
32112
  ErrorSeverity _max_severity;
 
32113
  ErrorSeverity _curr_severity;
 
32114
  Location _location;
 
32115
  bool _have_location;
 
32116
  std::ostringstream *_msg;
 
32117
  bool _silently;
 
32118
 
 
32119
  void output ();
 
32120
  void clear ();
 
32121
 
 
32122
public:
 
32123
  ErrorStream (std::ostream &s = cerr) : _ostream (&s), _msg ((std::ostringstream*)0)
 
32124
   { reset (); _silently = false; }
 
32125
  virtual ~ErrorStream () { delete _msg; }
 
32126
 
 
32127
  ErrorStream &operator << (const char *);
 
32128
  ErrorStream &operator << (long);
 
32129
  ErrorStream &operator << (unsigned);
 
32130
  ErrorStream &operator << (int);
 
32131
  ErrorStream &operator << (short);
 
32132
  ErrorStream &operator << (char);
 
32133
  ErrorStream &operator << (double);
 
32134
  ErrorStream &operator << (const ErrorSeverity &);
 
32135
  ErrorStream &operator << (Location);
 
32136
  ErrorStream &operator << (const Printable &);
 
32137
  ErrorStream &operator << (void (*f)(ErrorSink &));
 
32138
 
 
32139
  void endMessage ();
 
32140
  void reset ();
 
32141
  void silent ();
 
32142
  void loud ();
 
32143
 
 
32144
  ErrorSeverity severity () const { return _max_severity; }
 
32145
};
 
32146
 
 
32147
 
 
32148
} // namespace Puma
 
32149
 
 
32150
#endif /* __error_stream_h__ */
 
32151
 
 
32152
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
32153
// This file is part of PUMA.
 
32154
// Copyright (C) 1999-2003  The PUMA developer team.
 
32155
//                                                                
 
32156
// This program is free software;  you can redistribute it and/or 
 
32157
// modify it under the terms of the GNU General Public License as 
 
32158
// published by the Free Software Foundation; either version 2 of 
 
32159
// the License, or (at your option) any later version.            
 
32160
//                                                                
 
32161
// This program is distributed in the hope that it will be useful,
 
32162
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32163
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32164
// GNU General Public License for more details.                   
 
32165
//                                                                
 
32166
// You should have received a copy of the GNU General Public      
 
32167
// License along with this program; if not, write to the Free     
 
32168
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32169
// MA  02111-1307  USA                                            
 
32170
 
 
32171
#ifndef __OptsParser_h__
 
32172
#define __OptsParser_h__
 
32173
 
 
32174
 
 
32175
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
32176
// This file is part of PUMA.
 
32177
// Copyright (C) 1999-2003  The PUMA developer team.
 
32178
//                                                                
 
32179
// This program is free software;  you can redistribute it and/or 
 
32180
// modify it under the terms of the GNU General Public License as 
 
32181
// published by the Free Software Foundation; either version 2 of 
 
32182
// the License, or (at your option) any later version.            
 
32183
//                                                                
 
32184
// This program is distributed in the hope that it will be useful,
 
32185
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32186
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32187
// GNU General Public License for more details.                   
 
32188
//                                                                
 
32189
// You should have received a copy of the GNU General Public      
 
32190
// License along with this program; if not, write to the Free     
 
32191
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32192
// MA  02111-1307  USA                                            
 
32193
 
 
32194
#ifndef __SimpleParser_h__
 
32195
#define __SimpleParser_h__
 
32196
 
 
32197
 
 
32198
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
32199
#include <vector>
 
32200
using namespace std;
 
32201
 
 
32202
namespace Puma {
 
32203
 
 
32204
 
 
32205
/** 
 
32206
 * Simple string parser. 
 
32207
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
 
32208
 */
 
32209
 
 
32210
#line 32211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32211
} // closed Puma
 
32212
class CCExprResolve;
 
32213
class CExprResolve;
 
32214
class WinIfExists;
 
32215
class WinImportHandler;
 
32216
class WinMacros;
 
32217
class WinAsm;
 
32218
class WinDeclSpecs;
 
32219
class WinMemberExplSpec;
 
32220
class WinTypeKeywords;
 
32221
class WinFriend;
 
32222
class ExtAC;
 
32223
class ExtACBuilderCoupling;
 
32224
class ExtACSyntaxCoupling;
 
32225
class ExtACTree;
 
32226
class ExtACKeywords;
 
32227
class ExtGnu;
 
32228
class PragmaOnceUnitState;
 
32229
class PragmaOnce;
 
32230
class CMatchSyntax;
 
32231
namespace Puma {
 
32232
 
 
32233
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
32234
class SimpleParser {
 
32235
#line 32236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32236
  friend class ::CCExprResolve;
 
32237
  friend class ::CExprResolve;
 
32238
  friend class ::WinIfExists;
 
32239
  friend class ::WinImportHandler;
 
32240
  friend class ::WinMacros;
 
32241
  friend class ::WinAsm;
 
32242
  friend class ::WinDeclSpecs;
 
32243
  friend class ::WinMemberExplSpec;
 
32244
  friend class ::WinTypeKeywords;
 
32245
  friend class ::WinFriend;
 
32246
  friend class ::ExtAC;
 
32247
  friend class ::ExtACBuilderCoupling;
 
32248
  friend class ::ExtACSyntaxCoupling;
 
32249
  friend class ::ExtACTree;
 
32250
  friend class ::ExtACKeywords;
 
32251
  friend class ::ExtGnu;
 
32252
  friend class ::PragmaOnceUnitState;
 
32253
  friend class ::PragmaOnce;
 
32254
  friend class ::CMatchSyntax;
 
32255
 
 
32256
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
32257
 
 
32258
public:
 
32259
  /**
 
32260
   * Remove enclosing double-quotes from a string.
 
32261
   * \param str The string to strip.
 
32262
   * \return String without the enclosing double-quotes.
 
32263
   */
 
32264
  static string strip (const string& str);
 
32265
  /**
 
32266
   * Splits a given string into tokens recognized by the given delimiters.
 
32267
   * \param str The string to split.
 
32268
   * \param tokens A vector for the tokens.
 
32269
   * \param delimiters A string with the delimiters. Default is a space or tab.
 
32270
   * \return Number of recognized tokens.
 
32271
   */
 
32272
  static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
 
32273
 
 
32274
private:
 
32275
  /**
 
32276
   * Get the position of the next token.
 
32277
   * \param line The string to tokenize.
 
32278
   * \param delimiters A string with the token delimiters.
 
32279
   * \param pos The current position in the string.
 
32280
   * \param lastPos The last position in the string.
 
32281
   * \return The position of the next token.
 
32282
   */
 
32283
  static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
 
32284
  /**
 
32285
   * Get the begin of the next token.
 
32286
   * \param line The string to tokenize.
 
32287
   * \param delimiters A string with the token delimiters.
 
32288
   * \param pos The current position in the string.
 
32289
   * \return The begin of the next token.
 
32290
   */
 
32291
  static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
 
32292
  /**
 
32293
   * Get the end of the next token.
 
32294
   * \param line The string to tokenize.
 
32295
   * \param delimiters A string with the token delimiters.
 
32296
   * \param lastPos The last position in the string, i.e. the begin of the next token.
 
32297
   * \return The end of the next token.
 
32298
   */
 
32299
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
 
32300
};
 
32301
 
 
32302
 
 
32303
} // namespace Puma
 
32304
 
 
32305
#endif /* __SimpleParser_h__ */
 
32306
 
 
32307
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
32308
using namespace std;
 
32309
 
 
32310
namespace Puma {
 
32311
 
 
32312
 
 
32313
/** \brief The %Options %Parser searches command line parameters for options and
 
32314
 *  handles their option arguments, if applicable.
 
32315
 */
 
32316
 
 
32317
#line 32318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32318
} // closed Puma
 
32319
class CCExprResolve;
 
32320
class CExprResolve;
 
32321
class WinIfExists;
 
32322
class WinImportHandler;
 
32323
class WinMacros;
 
32324
class WinAsm;
 
32325
class WinDeclSpecs;
 
32326
class WinMemberExplSpec;
 
32327
class WinTypeKeywords;
 
32328
class WinFriend;
 
32329
class ExtAC;
 
32330
class ExtACBuilderCoupling;
 
32331
class ExtACSyntaxCoupling;
 
32332
class ExtACTree;
 
32333
class ExtACKeywords;
 
32334
class ExtGnu;
 
32335
class PragmaOnceUnitState;
 
32336
class PragmaOnce;
 
32337
class CMatchSyntax;
 
32338
namespace Puma {
 
32339
 
 
32340
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
32341
class OptsParser : public SimpleParser {
 
32342
#line 32343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32343
  friend class ::CCExprResolve;
 
32344
  friend class ::CExprResolve;
 
32345
  friend class ::WinIfExists;
 
32346
  friend class ::WinImportHandler;
 
32347
  friend class ::WinMacros;
 
32348
  friend class ::WinAsm;
 
32349
  friend class ::WinDeclSpecs;
 
32350
  friend class ::WinMemberExplSpec;
 
32351
  friend class ::WinTypeKeywords;
 
32352
  friend class ::WinFriend;
 
32353
  friend class ::ExtAC;
 
32354
  friend class ::ExtACBuilderCoupling;
 
32355
  friend class ::ExtACSyntaxCoupling;
 
32356
  friend class ::ExtACTree;
 
32357
  friend class ::ExtACKeywords;
 
32358
  friend class ::ExtGnu;
 
32359
  friend class ::PragmaOnceUnitState;
 
32360
  friend class ::PragmaOnce;
 
32361
  friend class ::CMatchSyntax;
 
32362
 
 
32363
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
32364
 
 
32365
  
 
32366
  
 
32367
  /** \brief Vector holding the commandline parameters. 
 
32368
   *  
 
32369
   *  This vector is filled in the constructor
 
32370
   */
 
32371
  vector<string> m_argv;
 
32372
 
 
32373
  /** \brief Position of current parameter analyzed by the 
 
32374
   *  options parser.
 
32375
   */
 
32376
  unsigned int m_curarg;
 
32377
  
 
32378
  /** \brief The increment added to m_curarg used to get to the next 
 
32379
   *  entry of m_argv which shall be analysed.
 
32380
   */
 
32381
  unsigned int m_tonext;
 
32382
  
 
32383
  /** \brief %Option number of currently processed element of m_argv
 
32384
   */
 
32385
  int m_number;
 
32386
  
 
32387
  /** \brief Name of current option
 
32388
   */
 
32389
  string m_opt;
 
32390
 
 
32391
  /** \brief Value of current option argument
 
32392
   */
 
32393
  string m_arg;
 
32394
  
 
32395
   
 
32396
public:
 
32397
  
 
32398
  /** \enum
 
32399
   *  Return codes for OptsParser::getOption() and OptsParser::getArgument()
 
32400
   */
 
32401
  enum {
 
32402
     NOARG =-4, /**< %Option has no argument */
 
32403
     ERR = -3, /**< Error when parsing option */
 
32404
     NOOPTION = -2, /**< Command line parameter is not an option */
 
32405
     UNKNOWN = -1, /**< Parameter is an unknown option */
 
32406
     FINISH = 0 /**< All options are handled */
 
32407
  };
 
32408
  
 
32409
  /** \enum
 
32410
   *  Type of argument associated to an option  
 
32411
   */
 
32412
  enum ArgType { 
 
32413
     AT_NONE = 0, /**< %Option receives no argument */
 
32414
     AT_MANDATORY = 1, /**< %Option requires an argument */
 
32415
     AT_OPTIONAL = 2 /**< %Option has optionally an argument */
 
32416
  };
 
32417
  
 
32418
  /** \struct
 
32419
   *  Type for specifying an array of options recognized by the %Option %Parser.
 
32420
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
 
32421
   */
 
32422
  struct Option {
 
32423
#line 32424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32424
  friend class ::CCExprResolve;
 
32425
  friend class ::CExprResolve;
 
32426
  friend class ::WinIfExists;
 
32427
  friend class ::WinImportHandler;
 
32428
  friend class ::WinMacros;
 
32429
  friend class ::WinAsm;
 
32430
  friend class ::WinDeclSpecs;
 
32431
  friend class ::WinMemberExplSpec;
 
32432
  friend class ::WinTypeKeywords;
 
32433
  friend class ::WinFriend;
 
32434
  friend class ::ExtAC;
 
32435
  friend class ::ExtACBuilderCoupling;
 
32436
  friend class ::ExtACSyntaxCoupling;
 
32437
  friend class ::ExtACTree;
 
32438
  friend class ::ExtACKeywords;
 
32439
  friend class ::ExtGnu;
 
32440
  friend class ::PragmaOnceUnitState;
 
32441
  friend class ::PragmaOnce;
 
32442
  friend class ::CMatchSyntax;
 
32443
 
 
32444
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
32445
 
 
32446
    int number; /**< Number associated with this option */
 
32447
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
 
32448
    const char *longName; /**< Long namen of this option */
 
32449
    const char *desc; /**< Description of this option **/ 
 
32450
    ArgType argType; /**< Type of argument for this option */
 
32451
  };
 
32452
 
 
32453
private:
 
32454
  /** Pointer to array of available options. This value is set to the value of the 
 
32455
   * parameter passed to the constructor OptsParser::OptsParser()
 
32456
   */
 
32457
  const Option *m_opts;
 
32458
   
 
32459
public:
 
32460
  /** \brief Constructor of OptsParser
 
32461
   *  
 
32462
   *  \param argc Number of parameters to be analyzed
 
32463
   *  \param argv Parameters to be analyzed
 
32464
   *  \param opts Pointer to array of options which shall be
 
32465
   *              recognized by the options parser
 
32466
   *
 
32467
   */
 
32468
  OptsParser (int argc, char **argv, const Option *opts);
 
32469
  
 
32470
  /** \brief Constructor of OptsParser
 
32471
   *  
 
32472
   *  \param line Reference to string with parameters to analyse
 
32473
   *              The paramaters are extracted from the string by splitting it up 
 
32474
   *              into tokens at:
 
32475
   *               - space character
 
32476
   *               - tabs 
 
32477
   *               - newline
 
32478
   *               - carriage return
 
32479
   *  \param opts Pointer to array of options which shall be 
 
32480
   *              recognized by the options parser
 
32481
   */
 
32482
  OptsParser (const string &line, const Option *);
 
32483
 
 
32484
  
 
32485
  /** Get next parameter without modification. 
 
32486
   * No option parsing is done
 
32487
   *
 
32488
   * \return OptsParser::NOOPTION or OptsParser::FINISH 
 
32489
   */
 
32490
  int getRawOption ();
 
32491
  
 
32492
  /** \brief Get next option
 
32493
   *
 
32494
   * This function processes the next parameter passed to the constructor 
 
32495
   * OptsParser::OptsParser(). 
 
32496
   * That is, search for options and eventually process
 
32497
   * option and option arguement. 
 
32498
   *
 
32499
   * \return Number of option recognized by the options parser or
 
32500
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
32501
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
32502
   *
 
32503
   */
 
32504
  int getOption ();
 
32505
  
 
32506
  /** \brief Get result of last processed parameter
 
32507
   *
 
32508
   *  The number returned by this function is identical to the number 
 
32509
   *  returned by the last call of OptsParser::getOption
 
32510
   *   
 
32511
   * \return Number of option recognized by the options parser or
 
32512
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
32513
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
32514
   *
 
32515
   */
 
32516
  int getResult () const;
 
32517
  
 
32518
  /** \brief Get option argument of last processed parameter
 
32519
   *
 
32520
   *  This function returns the argument of the option processed during 
 
32521
   *  OptsParser::getOption. If the option does not provide any argument
 
32522
   *  the string will be empty.
 
32523
   *
 
32524
   *  If OptsParser::getOption or respectively OptsParser::getResult returns with 
 
32525
   *  OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter, 
 
32526
   *  which is no option, of course.
 
32527
   *
 
32528
   *  \return Argument of last processed parameter
 
32529
   */
 
32530
  const string &getArgument () const;
 
32531
  
 
32532
  /** \brief Get option name of last processed parameter
 
32533
   *
 
32534
   *  If the last processed parameter did not contain an option the string 
 
32535
   *  returned by this function is empty.
 
32536
   *
 
32537
   *  \return Name of last processed parameter
 
32538
   *
 
32539
   */
 
32540
  const string &getOptionName () const;
 
32541
  
 
32542
  /** \brief Get position of current argument
 
32543
   *
 
32544
   *  \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
 
32545
   *
 
32546
   */
 
32547
  int getCurrentArgNum () const;
 
32548
  
 
32549
  /** \brief Get position of next argument
 
32550
   *
 
32551
   *  \return Position of next parameter which will be processed by the %Options %Parser
 
32552
   *
 
32553
   */
 
32554
  int getNextArgNum () const;
 
32555
 
 
32556
private:
 
32557
  /** Search for an option in m_argv at position m_curarg
 
32558
   *
 
32559
   *  \param arg Currently processed parameter 
 
32560
   */
 
32561
  const Option*  findOption(const string &arg, bool isLong);
 
32562
  
 
32563
  /** Process an option found by OptsParser::findOption(). 
 
32564
   */
 
32565
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
 
32566
};
 
32567
 
 
32568
 
 
32569
} // namespace Puma
 
32570
 
 
32571
#endif /* __OptsParser_h__ */
 
32572
 
 
32573
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
32574
using namespace std;
 
32575
 
 
32576
namespace Puma {
 
32577
 
 
32578
 
 
32579
 
 
32580
#line 32581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32581
} // closed Puma
 
32582
class CCExprResolve;
 
32583
class CExprResolve;
 
32584
class WinIfExists;
 
32585
class WinImportHandler;
 
32586
class WinMacros;
 
32587
class WinAsm;
 
32588
class WinDeclSpecs;
 
32589
class WinMemberExplSpec;
 
32590
class WinTypeKeywords;
 
32591
class WinFriend;
 
32592
class ExtAC;
 
32593
class ExtACBuilderCoupling;
 
32594
class ExtACSyntaxCoupling;
 
32595
class ExtACTree;
 
32596
class ExtACKeywords;
 
32597
class ExtGnu;
 
32598
class PragmaOnceUnitState;
 
32599
class PragmaOnce;
 
32600
class CMatchSyntax;
 
32601
namespace Puma {
 
32602
 
 
32603
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
32604
class Config {
 
32605
#line 32606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32606
  friend class ::CCExprResolve;
 
32607
  friend class ::CExprResolve;
 
32608
  friend class ::WinIfExists;
 
32609
  friend class ::WinImportHandler;
 
32610
  friend class ::WinMacros;
 
32611
  friend class ::WinAsm;
 
32612
  friend class ::WinDeclSpecs;
 
32613
  friend class ::WinMemberExplSpec;
 
32614
  friend class ::WinTypeKeywords;
 
32615
  friend class ::WinFriend;
 
32616
  friend class ::ExtAC;
 
32617
  friend class ::ExtACBuilderCoupling;
 
32618
  friend class ::ExtACSyntaxCoupling;
 
32619
  friend class ::ExtACTree;
 
32620
  friend class ::ExtACKeywords;
 
32621
  friend class ::ExtGnu;
 
32622
  friend class ::PragmaOnceUnitState;
 
32623
  friend class ::PragmaOnce;
 
32624
  friend class ::CMatchSyntax;
 
32625
 
 
32626
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
32627
 
 
32628
  Flags _flags;
 
32629
  ErrorStream &_err;
 
32630
  Array<const ConfOption *> _options;
 
32631
  
 
32632
public:
 
32633
  enum OPTIONS {
 
32634
    PRE_ASSERT = 1,
 
32635
    PRE_DEFINE, 
 
32636
    PRE_UNDEFINE, 
 
32637
    PRE_LOCK_MACRO,
 
32638
    PRE_INCLUDE,
 
32639
    CFG_FILE, 
 
32640
    PROJ_PATH, 
 
32641
    PROJ_DESTINATION,
 
32642
    SET_SUFFIX, 
 
32643
    SET_EXTENSION, 
 
32644
    SET_WRITE_PROTECTED,
 
32645
    SET_OPTION, 
 
32646
    SET_OPTION_ARG
 
32647
  };
 
32648
   
 
32649
public:
 
32650
  Config (ErrorStream &);
 
32651
  Config (const Config &);
 
32652
  ~Config ();
 
32653
  
 
32654
  // read config file
 
32655
  Config (ErrorStream &, const char *);
 
32656
  // read command line
 
32657
  Config (ErrorStream &, int &, char **&);
 
32658
  // read config file and command line
 
32659
  Config (ErrorStream &, const char *, int &, char **&);
 
32660
        
 
32661
  // join with another configuration
 
32662
  void Join (const Config &);
 
32663
 
 
32664
  // evaluate file, if file not given read from $PUMA_CONFIG
 
32665
  // or /etc/puma.config
 
32666
  void Read (const char * = (const char *)0);
 
32667
  // evaluate command line
 
32668
  void Read (int &, char **&);
 
32669
 
 
32670
  // add options to configuration
 
32671
  void Add (const ConfOption *);
 
32672
  void Add (const char *);
 
32673
  void Add (const char *, const char *);
 
32674
  void Add (const char *, const char *, const char *);
 
32675
 
 
32676
  // get options
 
32677
  unsigned Options () const;
 
32678
  const ConfOption *Option (unsigned) const;
 
32679
  const ConfOption *Option (const char *) const;
 
32680
 
 
32681
  Flags FlagTable () const;
 
32682
  
 
32683
private:
 
32684
  bool Valid (const char *, const char * = (const char *)0) const;
 
32685
 
 
32686
  bool Process (OptsParser&, bool unescape = false);
 
32687
  bool ProcessAssert (const string&);
 
32688
  bool ProcessDefine (const string&);
 
32689
  bool ProcessLockMacro (const string&);
 
32690
  bool ProcessUndefine (const string&);
 
32691
  bool ProcessConfigFile (const string&,const string&);
 
32692
  bool ProcessArgument (const string&,const string&);
 
32693
  bool ProcessPathArgument (const string&,const string&);
 
32694
 
 
32695
  string Unescape(const string&);
 
32696
};
 
32697
 
 
32698
inline Config::Config (ErrorStream &e) : _err (e)
 
32699
 {}
 
32700
inline Config::Config (const Config &c) : _err (c._err)
 
32701
 { Join (c); }
 
32702
  
 
32703
inline Config::Config (ErrorStream &e, const char *file) : _err (e)
 
32704
 { Read (file); }
 
32705
inline Config::Config (ErrorStream &e, int &argc, char **&argv) : _err (e)
 
32706
 { Read (argc, argv); }
 
32707
inline Config::Config (ErrorStream &e, const char *file, int &argc, char **&argv) : _err (e)
 
32708
 { Read (file); Read (argc, argv); }
 
32709
 
 
32710
inline Config::~Config  ()
 
32711
 { for (unsigned i = 0; i < Options (); i++)
 
32712
     delete (ConfOption *) Option (i);
 
32713
 }
 
32714
 
 
32715
inline void Config::Add (const ConfOption *o) 
 
32716
 { _options.append (o); }
 
32717
inline void Config::Add (const char *n)
 
32718
 { Add (new ConfOption (n)); }
 
32719
inline void Config::Add (const char *n, const char *a1)
 
32720
 { Add (new ConfOption (n, a1)); }
 
32721
inline void Config::Add (const char *n, const char *a1, const char *a2)
 
32722
 { Add (new ConfOption (n, a1, a2)); }
 
32723
 
 
32724
inline unsigned Config::Options () const
 
32725
 { return _options.length (); }
 
32726
inline const ConfOption *Config::Option (unsigned i) const
 
32727
 { return _options.lookup (i); }
 
32728
 
 
32729
inline Flags Config::FlagTable () const
 
32730
 { return _flags; }
 
32731
 
 
32732
 
 
32733
} // namespace Puma
 
32734
 
 
32735
#endif /* __Config_h__ */
 
32736
 
 
32737
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
32738
// This file is part of PUMA.
 
32739
// Copyright (C) 1999-2003  The PUMA developer team.
 
32740
//                                                                
 
32741
// This program is free software;  you can redistribute it and/or 
 
32742
// modify it under the terms of the GNU General Public License as 
 
32743
// published by the Free Software Foundation; either version 2 of 
 
32744
// the License, or (at your option) any later version.            
 
32745
//                                                                
 
32746
// This program is distributed in the hope that it will be useful,
 
32747
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32748
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32749
// GNU General Public License for more details.                   
 
32750
//                                                                
 
32751
// You should have received a copy of the GNU General Public      
 
32752
// License along with this program; if not, write to the Free     
 
32753
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32754
// MA  02111-1307  USA                                            
 
32755
 
 
32756
#ifndef __project__
 
32757
#define __project__
 
32758
 
 
32759
// The basic project is a set of source directories. It provides 
 
32760
// methods for searching and writing files. 
 
32761
 
 
32762
 
 
32763
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
32764
// This file is part of PUMA.
 
32765
// Copyright (C) 1999-2003  The PUMA developer team.
 
32766
//                                                                
 
32767
// This program is free software;  you can redistribute it and/or 
 
32768
// modify it under the terms of the GNU General Public License as 
 
32769
// published by the Free Software Foundation; either version 2 of 
 
32770
// the License, or (at your option) any later version.            
 
32771
//                                                                
 
32772
// This program is distributed in the hope that it will be useful,
 
32773
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32774
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32775
// GNU General Public License for more details.                   
 
32776
//                                                                
 
32777
// You should have received a copy of the GNU General Public      
 
32778
// License along with this program; if not, write to the Free     
 
32779
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32780
// MA  02111-1307  USA                                            
 
32781
 
 
32782
#ifndef __path_manager__
 
32783
#define __path_manager__
 
32784
 
 
32785
// Manages directories and methods to access the files in it.
 
32786
 
 
32787
 
 
32788
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
32789
// This file is part of PUMA.
 
32790
// Copyright (C) 1999-2003  The PUMA developer team.
 
32791
//                                                                
 
32792
// This program is free software;  you can redistribute it and/or 
 
32793
// modify it under the terms of the GNU General Public License as 
 
32794
// published by the Free Software Foundation; either version 2 of 
 
32795
// the License, or (at your option) any later version.            
 
32796
//                                                                
 
32797
// This program is distributed in the hope that it will be useful,
 
32798
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32799
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32800
// GNU General Public License for more details.                   
 
32801
//                                                                
 
32802
// You should have received a copy of the GNU General Public      
 
32803
// License along with this program; if not, write to the Free     
 
32804
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32805
// MA  02111-1307  USA                                            
 
32806
 
 
32807
#ifndef __path_info__
 
32808
#define __path_info__
 
32809
 
 
32810
// A path information object consists of a source and optionally
 
32811
// a destination path.
 
32812
 
 
32813
namespace Puma {
 
32814
 
 
32815
 
 
32816
 
 
32817
#line 32818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32818
} // closed Puma
 
32819
class CCExprResolve;
 
32820
class CExprResolve;
 
32821
class WinIfExists;
 
32822
class WinImportHandler;
 
32823
class WinMacros;
 
32824
class WinAsm;
 
32825
class WinDeclSpecs;
 
32826
class WinMemberExplSpec;
 
32827
class WinTypeKeywords;
 
32828
class WinFriend;
 
32829
class ExtAC;
 
32830
class ExtACBuilderCoupling;
 
32831
class ExtACSyntaxCoupling;
 
32832
class ExtACTree;
 
32833
class ExtACKeywords;
 
32834
class ExtGnu;
 
32835
class PragmaOnceUnitState;
 
32836
class PragmaOnce;
 
32837
class CMatchSyntax;
 
32838
namespace Puma {
 
32839
 
 
32840
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
32841
class PathInfo {
 
32842
#line 32843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32843
  friend class ::CCExprResolve;
 
32844
  friend class ::CExprResolve;
 
32845
  friend class ::WinIfExists;
 
32846
  friend class ::WinImportHandler;
 
32847
  friend class ::WinMacros;
 
32848
  friend class ::WinAsm;
 
32849
  friend class ::WinDeclSpecs;
 
32850
  friend class ::WinMemberExplSpec;
 
32851
  friend class ::WinTypeKeywords;
 
32852
  friend class ::WinFriend;
 
32853
  friend class ::ExtAC;
 
32854
  friend class ::ExtACBuilderCoupling;
 
32855
  friend class ::ExtACSyntaxCoupling;
 
32856
  friend class ::ExtACTree;
 
32857
  friend class ::ExtACKeywords;
 
32858
  friend class ::ExtGnu;
 
32859
  friend class ::PragmaOnceUnitState;
 
32860
  friend class ::PragmaOnce;
 
32861
  friend class ::CMatchSyntax;
 
32862
 
 
32863
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
32864
 
 
32865
  const char *_src;        // Source path.
 
32866
  const char *_dest;        // Destination path.
 
32867
        
 
32868
public:
 
32869
  PathInfo () : _src ((const char*) 0), _dest ((const char*) 0) {}
 
32870
  PathInfo (const PathInfo &);
 
32871
  ~PathInfo ();
 
32872
        
 
32873
  // Needed for class Array.
 
32874
  PathInfo &operator =(const PathInfo &);
 
32875
 
 
32876
  // Set or get the source path.
 
32877
  void src (const char *);
 
32878
  const char *src () const { return _src; }
 
32879
        
 
32880
  // Set or get the destination path.
 
32881
  void dest (const char *);
 
32882
  const char *dest () const { return _dest; }
 
32883
};
 
32884
 
 
32885
 
 
32886
} // namespace Puma
 
32887
 
 
32888
#endif /* __path_info__ */
 
32889
 
 
32890
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
32891
// This file is part of PUMA.
 
32892
// Copyright (C) 1999-2003  The PUMA developer team.
 
32893
//                                                                
 
32894
// This program is free software;  you can redistribute it and/or 
 
32895
// modify it under the terms of the GNU General Public License as 
 
32896
// published by the Free Software Foundation; either version 2 of 
 
32897
// the License, or (at your option) any later version.            
 
32898
//                                                                
 
32899
// This program is distributed in the hope that it will be useful,
 
32900
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32901
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32902
// GNU General Public License for more details.                   
 
32903
//                                                                
 
32904
// You should have received a copy of the GNU General Public      
 
32905
// License along with this program; if not, write to the Free     
 
32906
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32907
// MA  02111-1307  USA                                            
 
32908
 
 
32909
#ifndef __path_iterator__
 
32910
#define __path_iterator__
 
32911
 
 
32912
// A path iterator is used to iterate the contents of the paths
 
32913
// a project is managing. But only files matching a given pattern 
 
32914
// are iterated. 
 
32915
 
 
32916
 
 
32917
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
32918
// This file is part of PUMA.
 
32919
// Copyright (C) 1999-2003  The PUMA developer team.
 
32920
//                                                                
 
32921
// This program is free software;  you can redistribute it and/or 
 
32922
// modify it under the terms of the GNU General Public License as 
 
32923
// published by the Free Software Foundation; either version 2 of 
 
32924
// the License, or (at your option) any later version.            
 
32925
//                                                                
 
32926
// This program is distributed in the hope that it will be useful,
 
32927
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32928
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32929
// GNU General Public License for more details.                   
 
32930
//                                                                
 
32931
// You should have received a copy of the GNU General Public      
 
32932
// License along with this program; if not, write to the Free     
 
32933
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32934
// MA  02111-1307  USA                                            
 
32935
 
 
32936
#ifndef __project_file__
 
32937
#define __project_file__
 
32938
 
 
32939
#include <map>
 
32940
using std::map;
 
32941
 
 
32942
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
32943
using std::string;
 
32944
 
 
32945
 
 
32946
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
32947
namespace Puma {
 
32948
 
 
32949
// the project file abstraction is used to store all filenames relevant
 
32950
// for a specific file that is managed by Puma.
 
32951
 
 
32952
 
 
32953
#line 32954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32954
} // closed Puma
 
32955
class CCExprResolve;
 
32956
class CExprResolve;
 
32957
class WinIfExists;
 
32958
class WinImportHandler;
 
32959
class WinMacros;
 
32960
class WinAsm;
 
32961
class WinDeclSpecs;
 
32962
class WinMemberExplSpec;
 
32963
class WinTypeKeywords;
 
32964
class WinFriend;
 
32965
class ExtAC;
 
32966
class ExtACBuilderCoupling;
 
32967
class ExtACSyntaxCoupling;
 
32968
class ExtACTree;
 
32969
class ExtACKeywords;
 
32970
class ExtGnu;
 
32971
class PragmaOnceUnitState;
 
32972
class PragmaOnce;
 
32973
class CMatchSyntax;
 
32974
namespace Puma {
 
32975
 
 
32976
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
32977
class ProjectFile {
 
32978
#line 32979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
32979
  friend class ::CCExprResolve;
 
32980
  friend class ::CExprResolve;
 
32981
  friend class ::WinIfExists;
 
32982
  friend class ::WinImportHandler;
 
32983
  friend class ::WinMacros;
 
32984
  friend class ::WinAsm;
 
32985
  friend class ::WinDeclSpecs;
 
32986
  friend class ::WinMemberExplSpec;
 
32987
  friend class ::WinTypeKeywords;
 
32988
  friend class ::WinFriend;
 
32989
  friend class ::ExtAC;
 
32990
  friend class ::ExtACBuilderCoupling;
 
32991
  friend class ::ExtACSyntaxCoupling;
 
32992
  friend class ::ExtACTree;
 
32993
  friend class ::ExtACKeywords;
 
32994
  friend class ::ExtGnu;
 
32995
  friend class ::PragmaOnceUnitState;
 
32996
  friend class ::PragmaOnce;
 
32997
  friend class ::CMatchSyntax;
 
32998
 
 
32999
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
33000
 
 
33001
  Filename _nick_name;
 
33002
  Filename _dest_path;
 
33003
public:  
 
33004
  ProjectFile (const Filename &nn) : _nick_name (nn) {}
 
33005
  ProjectFile (const Filename &nn, const Filename &dp) :
 
33006
    _nick_name (nn), _dest_path (dp) {}
 
33007
  void dest (const Filename &dp) { _dest_path = dp; }
 
33008
  Filename name () const { return _nick_name; }
 
33009
  Filename dest () const {
 
33010
    assert (_dest_path.is_defined ());
 
33011
    return _dest_path;
 
33012
  }
 
33013
};
 
33014
 
 
33015
typedef map<string, ProjectFile> PFMap;
 
33016
typedef PFMap::value_type PFMPair;
 
33017
typedef PFMap::const_iterator PFMConstIter;
 
33018
 
 
33019
} // namespace Puma
 
33020
 
 
33021
#endif // __project_file__
 
33022
 
 
33023
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
33024
namespace Puma {
 
33025
 
 
33026
class PathManager;
 
33027
class RegComp;
 
33028
 
 
33029
 
 
33030
#line 33031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33031
} // closed Puma
 
33032
class CCExprResolve;
 
33033
class CExprResolve;
 
33034
class WinIfExists;
 
33035
class WinImportHandler;
 
33036
class WinMacros;
 
33037
class WinAsm;
 
33038
class WinDeclSpecs;
 
33039
class WinMemberExplSpec;
 
33040
class WinTypeKeywords;
 
33041
class WinFriend;
 
33042
class ExtAC;
 
33043
class ExtACBuilderCoupling;
 
33044
class ExtACSyntaxCoupling;
 
33045
class ExtACTree;
 
33046
class ExtACKeywords;
 
33047
class ExtGnu;
 
33048
class PragmaOnceUnitState;
 
33049
class PragmaOnce;
 
33050
class CMatchSyntax;
 
33051
namespace Puma {
 
33052
 
 
33053
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
33054
class PathIterator : public PFMConstIter {
 
33055
#line 33056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33056
  friend class ::CCExprResolve;
 
33057
  friend class ::CExprResolve;
 
33058
  friend class ::WinIfExists;
 
33059
  friend class ::WinImportHandler;
 
33060
  friend class ::WinMacros;
 
33061
  friend class ::WinAsm;
 
33062
  friend class ::WinDeclSpecs;
 
33063
  friend class ::WinMemberExplSpec;
 
33064
  friend class ::WinTypeKeywords;
 
33065
  friend class ::WinFriend;
 
33066
  friend class ::ExtAC;
 
33067
  friend class ::ExtACBuilderCoupling;
 
33068
  friend class ::ExtACSyntaxCoupling;
 
33069
  friend class ::ExtACTree;
 
33070
  friend class ::ExtACKeywords;
 
33071
  friend class ::ExtGnu;
 
33072
  friend class ::PragmaOnceUnitState;
 
33073
  friend class ::PragmaOnce;
 
33074
  friend class ::CMatchSyntax;
 
33075
 
 
33076
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
33077
 
 
33078
  friend class PathManager;
 
33079
 
 
33080
  RegComp *_regexp;  // Search pattern.
 
33081
  bool _in_use;
 
33082
 
 
33083
public:
 
33084
  PathIterator (const char *);     // Expects a regular expression.
 
33085
  ~PathIterator ();                // for the files to match.
 
33086
 
 
33087
  void pattern (const char *);     // Set the search pattern.
 
33088
  void init (const PFMConstIter &begin);
 
33089
  bool in_use () const { return _in_use; }
 
33090
  void done () { _in_use = false; }
 
33091
 
 
33092
  // retrieve information about the currently referenced ProjectFile
 
33093
  const char *file () const;
 
33094
  const char *dest () const;
 
33095
};
 
33096
 
 
33097
} // namespace Puma
 
33098
 
 
33099
#endif /* __path_iterator__ */
 
33100
 
 
33101
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
33102
namespace Puma {
 
33103
 
 
33104
class RegComp;
 
33105
class Config;
 
33106
class Unit;
 
33107
 
 
33108
 
 
33109
#line 33110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33110
} // closed Puma
 
33111
class CCExprResolve;
 
33112
class CExprResolve;
 
33113
class WinIfExists;
 
33114
class WinImportHandler;
 
33115
class WinMacros;
 
33116
class WinAsm;
 
33117
class WinDeclSpecs;
 
33118
class WinMemberExplSpec;
 
33119
class WinTypeKeywords;
 
33120
class WinFriend;
 
33121
class ExtAC;
 
33122
class ExtACBuilderCoupling;
 
33123
class ExtACSyntaxCoupling;
 
33124
class ExtACTree;
 
33125
class ExtACKeywords;
 
33126
class ExtGnu;
 
33127
class PragmaOnceUnitState;
 
33128
class PragmaOnce;
 
33129
class CMatchSyntax;
 
33130
namespace Puma {
 
33131
 
 
33132
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
33133
class PathManager {
 
33134
#line 33135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33135
  friend class ::CCExprResolve;
 
33136
  friend class ::CExprResolve;
 
33137
  friend class ::WinIfExists;
 
33138
  friend class ::WinImportHandler;
 
33139
  friend class ::WinMacros;
 
33140
  friend class ::WinAsm;
 
33141
  friend class ::WinDeclSpecs;
 
33142
  friend class ::WinMemberExplSpec;
 
33143
  friend class ::WinTypeKeywords;
 
33144
  friend class ::WinFriend;
 
33145
  friend class ::ExtAC;
 
33146
  friend class ::ExtACBuilderCoupling;
 
33147
  friend class ::ExtACSyntaxCoupling;
 
33148
  friend class ::ExtACTree;
 
33149
  friend class ::ExtACKeywords;
 
33150
  friend class ::ExtGnu;
 
33151
  friend class ::PragmaOnceUnitState;
 
33152
  friend class ::PragmaOnce;
 
33153
  friend class ::CMatchSyntax;
 
33154
 
 
33155
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
33156
 
 
33157
 
 
33158
  ErrorStream     *_err;
 
33159
  Array<PathInfo>  _paths;     // List of directories path.
 
33160
  Array<RegComp*>  _protected; // List of regular patterns specifying 
 
33161
                               // protected paths.
 
33162
  PFMap _files;                // Maps the canonical filename of a project
 
33163
                               // to its related information
 
33164
 
 
33165
  // find all files of a directory tree and add them to _files
 
33166
  void traverse (const char *path);
 
33167
 
 
33168
  // find the canonical filename representation for a file
 
33169
  bool canonFilename (Filename name, Filename &abs_name) const;
 
33170
  
 
33171
  // Add a new file to the project file list
 
33172
  PFMConstIter addFile (const ProjectFile &file);
 
33173
 
 
33174
protected:
 
33175
  // Get the destination directory for a given source directory.
 
33176
  const char *getDestination (Filename file, ostream * = 0) const;
 
33177
        
 
33178
  // Called for every matched file.
 
33179
  virtual void action (PathIterator &) {}
 
33180
        
 
33181
  // Add the separator '/' to the copy of the given string.
 
33182
  char *addSeparator (const char *) const;
 
33183
 
 
33184
public:
 
33185
  PathManager (ErrorStream &e) : _err (&e) {} 
 
33186
  // Copy-constructor.
 
33187
  PathManager (PathManager &pm) { _err = pm._err; join (pm); }
 
33188
  virtual ~PathManager ();
 
33189
 
 
33190
  // Start the globbing. Let call action for every match.
 
33191
  void glob (char *pattern = (char*) 0);
 
33192
 
 
33193
  // Iterate the contents of the paths.
 
33194
  const char *iterate (PathIterator &) const;
 
33195
        
 
33196
  // Add a source and destination directories pair.
 
33197
  virtual void addPath (const char *, const char * = (const char*) 0);
 
33198
 
 
33199
  // Add a new file to the project file list
 
33200
  PFMConstIter addFile (Filename name);
 
33201
 
 
33202
  // Add a new file to the project file list with destination path
 
33203
  PFMConstIter addFile (Filename name, Filename dest);
 
33204
 
 
33205
  // search an absolute file name in the project tree
 
33206
  bool lookupFile (Filename abs_name, PFMConstIter &iter) const;
 
33207
 
 
33208
  // Set the destination directory of the given source directory.
 
33209
  void setDest (const char *, const char *);
 
33210
 
 
33211
  // Add a protected-path pattern.
 
33212
  void protect (const char *);
 
33213
 
 
33214
  // Get path information.
 
33215
  long numPaths () const { return _paths.length (); }
 
33216
  long numProts () const { return _protected.length (); }
 
33217
  const char *src (long pos) const { return _paths.lookup (pos).src (); }
 
33218
  const char *dest (long pos) const { return _paths.lookup (pos).dest (); }
 
33219
  RegComp *prot (long pos) const { return _protected.lookup (pos); }
 
33220
 
 
33221
  // Return true if the given file or path is protected.
 
33222
  bool isProtected (const char *file) const;
 
33223
 
 
33224
  // checks if a give file (by name) is a registered file of this path manager
 
33225
  // In case of success (found!) the an iterator is returned, which can be
 
33226
  // used to access more information about the file.
 
33227
  bool isBelow (const char *file, PFMConstIter &iter) const;
 
33228
 
 
33229
  // Returns true if the given file is registered with this path manager
 
33230
  virtual bool isBelow (const char *file) const;
 
33231
 
 
33232
  // Configure the project from the command line or a file.
 
33233
  virtual void configure (const Config &);
 
33234
 
 
33235
  // Join the paths of the given manager with the paths 
 
33236
  // of this path manager.
 
33237
  virtual void join (PathManager &);
 
33238
        
 
33239
  // Get the error stream object.
 
33240
  ErrorStream &err () const { return *_err; }
 
33241
 
 
33242
  // Get the path of a file in the destination directory.
 
33243
  bool getDestinationPath (const char *filename, ostream &out) const;
 
33244
        
 
33245
};
 
33246
 
 
33247
inline bool PathManager::isBelow (const char *file) const { 
 
33248
  PFMConstIter iter;
 
33249
  return isBelow (file, iter);
 
33250
}
 
33251
 
 
33252
 
 
33253
} // namespace Puma
 
33254
 
 
33255
#endif /* __path_manager__ */
 
33256
 
 
33257
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
33258
 
 
33259
#line 33260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33260
 
 
33261
#ifndef __ac_fwd_PragmaOnceUnitState__
 
33262
#define __ac_fwd_PragmaOnceUnitState__
 
33263
class PragmaOnceUnitState;
 
33264
namespace AC {
 
33265
  template <class JoinPoint>
 
33266
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
33267
  template <class JoinPoint>
 
33268
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
33269
}
 
33270
#endif
 
33271
 
 
33272
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
33273
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
33274
#endif
 
33275
 
 
33276
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
33277
// This file is part of PUMA.
 
33278
// Copyright (C) 1999-2003  The PUMA developer team.
 
33279
//                                                                
 
33280
// This program is free software;  you can redistribute it and/or 
 
33281
// modify it under the terms of the GNU General Public License as 
 
33282
// published by the Free Software Foundation; either version 2 of 
 
33283
// the License, or (at your option) any later version.            
 
33284
//                                                                
 
33285
// This program is distributed in the hope that it will be useful,
 
33286
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
33287
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
33288
// GNU General Public License for more details.                   
 
33289
//                                                                
 
33290
// You should have received a copy of the GNU General Public      
 
33291
// License along with this program; if not, write to the Free     
 
33292
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
33293
// MA  02111-1307  USA                                            
 
33294
 
 
33295
#ifndef __UnitManager__
 
33296
#define __UnitManager__
 
33297
 
 
33298
// Class UnitManager helps you to have control of all units built.
 
33299
 
 
33300
 
 
33301
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
33302
#include <list>
 
33303
 
 
33304
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
33305
using namespace std;
 
33306
 
 
33307
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
33308
namespace Puma {
 
33309
 
 
33310
 
 
33311
class Unit;
 
33312
class Source;
 
33313
class Tokenizer;
 
33314
 
 
33315
 
 
33316
#line 33317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33317
} // closed Puma
 
33318
class CCExprResolve;
 
33319
class CExprResolve;
 
33320
class WinIfExists;
 
33321
class WinImportHandler;
 
33322
class WinMacros;
 
33323
class WinAsm;
 
33324
class WinDeclSpecs;
 
33325
class WinMemberExplSpec;
 
33326
class WinTypeKeywords;
 
33327
class WinFriend;
 
33328
class ExtAC;
 
33329
class ExtACBuilderCoupling;
 
33330
class ExtACSyntaxCoupling;
 
33331
class ExtACTree;
 
33332
class ExtACKeywords;
 
33333
class ExtGnu;
 
33334
class PragmaOnceUnitState;
 
33335
class PragmaOnce;
 
33336
class CMatchSyntax;
 
33337
namespace Puma {
 
33338
 
 
33339
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
33340
class UnitManager {
 
33341
#line 33342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33342
  friend class ::CCExprResolve;
 
33343
  friend class ::CExprResolve;
 
33344
  friend class ::WinIfExists;
 
33345
  friend class ::WinImportHandler;
 
33346
  friend class ::WinMacros;
 
33347
  friend class ::WinAsm;
 
33348
  friend class ::WinDeclSpecs;
 
33349
  friend class ::WinMemberExplSpec;
 
33350
  friend class ::WinTypeKeywords;
 
33351
  friend class ::WinFriend;
 
33352
  friend class ::ExtAC;
 
33353
  friend class ::ExtACBuilderCoupling;
 
33354
  friend class ::ExtACSyntaxCoupling;
 
33355
  friend class ::ExtACTree;
 
33356
  friend class ::ExtACKeywords;
 
33357
  friend class ::ExtGnu;
 
33358
  friend class ::PragmaOnceUnitState;
 
33359
  friend class ::PragmaOnce;
 
33360
  friend class ::CMatchSyntax;
 
33361
 
 
33362
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
33363
 
 
33364
public:
 
33365
  typedef map<string, Unit*> UMap;
 
33366
private:
 
33367
  ErrorStream *_err;        // For error messages.
 
33368
  list<Unit*> _nonames;     // Noname units list.
 
33369
  mutable UMap _umap;       // Named units, map supports fast lookup by name
 
33370
  typedef UMap::value_type UMapPair;
 
33371
  Tokenizer *_tokenizer;    // File scanner.
 
33372
 
 
33373
public:
 
33374
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
 
33375
        
 
33376
  // Destructor: Delete all units.
 
33377
  virtual ~UnitManager ();
 
33378
        
 
33379
  // Get the unit hash table.
 
33380
  UMap &getTable () const { return _umap; }
 
33381
  typedef UMap::iterator UMapIter;
 
33382
        
 
33383
  // Get/Set the file scanner that is used by newUnit
 
33384
  Tokenizer *tokenizer () const { return _tokenizer; }
 
33385
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
 
33386
 
 
33387
  // Add a unit to manager.
 
33388
  void addUnit (Unit *unit);
 
33389
        
 
33390
  // Remove (and destroy) a unit from hash table. If the name
 
33391
  // is NULL remove all (but not the nonames).
 
33392
  void removeUnit (const char *name = (const char*) 0, bool = false, 
 
33393
                   bool destroy = true) const;
 
33394
 
 
33395
  // Empty a unit. Don't remove from hash table.
 
33396
  // Preserve the last save location information.
 
33397
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
 
33398
 
 
33399
  // Build and add a new unit. 
 
33400
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
 
33401
        
 
33402
  // Get a unit by name. 
 
33403
  Unit *getUnit (const char *name, bool = false) const;
 
33404
                        
 
33405
  // Print given unit to the given outstream. If no
 
33406
  // name is given, print all units.
 
33407
  void print (const char *name = (const char*) 0, bool = false, 
 
33408
              ostream &out = cout) const;
 
33409
 
 
33410
  // Destroy all noname units.
 
33411
  void removeNonames ();
 
33412
      
 
33413
  // Initialize the unit manager and the managed 
 
33414
  // units for the next parse process.
 
33415
  
 
33416
#line 33417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33417
public: __attribute__((always_inline)) inline void __exec_old_init();
 
33418
 
 
33419
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
33420
void init ();
 
33421
};
 
33422
 
 
33423
 
 
33424
} // namespace Puma
 
33425
 
 
33426
#endif /* __UnitManager__ */
 
33427
 
 
33428
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
33429
// This file is part of PUMA.
 
33430
// Copyright (C) 1999-2003  The PUMA developer team.
 
33431
//                                                                
 
33432
// This program is free software;  you can redistribute it and/or 
 
33433
// modify it under the terms of the GNU General Public License as 
 
33434
// published by the Free Software Foundation; either version 2 of 
 
33435
// the License, or (at your option) any later version.            
 
33436
//                                                                
 
33437
// This program is distributed in the hope that it will be useful,
 
33438
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
33439
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
33440
// GNU General Public License for more details.                   
 
33441
//                                                                
 
33442
// You should have received a copy of the GNU General Public      
 
33443
// License along with this program; if not, write to the Free     
 
33444
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
33445
// MA  02111-1307  USA                                            
 
33446
 
 
33447
#ifndef __SaveMode__
 
33448
#define __SaveMode__
 
33449
 
 
33450
namespace Puma {
 
33451
 
 
33452
 
 
33453
// Project file save mode.
 
33454
 
 
33455
#line 33456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33456
} // closed Puma
 
33457
class CCExprResolve;
 
33458
class CExprResolve;
 
33459
class WinIfExists;
 
33460
class WinImportHandler;
 
33461
class WinMacros;
 
33462
class WinAsm;
 
33463
class WinDeclSpecs;
 
33464
class WinMemberExplSpec;
 
33465
class WinTypeKeywords;
 
33466
class WinFriend;
 
33467
class ExtAC;
 
33468
class ExtACBuilderCoupling;
 
33469
class ExtACSyntaxCoupling;
 
33470
class ExtACTree;
 
33471
class ExtACKeywords;
 
33472
class ExtGnu;
 
33473
class PragmaOnceUnitState;
 
33474
class PragmaOnce;
 
33475
class CMatchSyntax;
 
33476
namespace Puma {
 
33477
 
 
33478
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
33479
struct SaveMode {
 
33480
#line 33481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33481
  friend class ::CCExprResolve;
 
33482
  friend class ::CExprResolve;
 
33483
  friend class ::WinIfExists;
 
33484
  friend class ::WinImportHandler;
 
33485
  friend class ::WinMacros;
 
33486
  friend class ::WinAsm;
 
33487
  friend class ::WinDeclSpecs;
 
33488
  friend class ::WinMemberExplSpec;
 
33489
  friend class ::WinTypeKeywords;
 
33490
  friend class ::WinFriend;
 
33491
  friend class ::ExtAC;
 
33492
  friend class ::ExtACBuilderCoupling;
 
33493
  friend class ::ExtACSyntaxCoupling;
 
33494
  friend class ::ExtACTree;
 
33495
  friend class ::ExtACKeywords;
 
33496
  friend class ::ExtGnu;
 
33497
  friend class ::PragmaOnceUnitState;
 
33498
  friend class ::PragmaOnce;
 
33499
  friend class ::CMatchSyntax;
 
33500
 
 
33501
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
33502
 
 
33503
  enum Mode { 
 
33504
    OVERWRITE = 1, 
 
33505
    RENAME_OLD, 
 
33506
    NEW_SUFFIX 
 
33507
  };
 
33508
};
 
33509
    
 
33510
 
 
33511
} // namespace Puma
 
33512
 
 
33513
#endif /* __SaveMode__ */
 
33514
 
 
33515
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
33516
#include <fstream>
 
33517
 
 
33518
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
33519
using namespace std;
 
33520
 
 
33521
namespace Puma {
 
33522
 
 
33523
 
 
33524
 
 
33525
#line 33526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33526
} // closed Puma
 
33527
class CCExprResolve;
 
33528
class CExprResolve;
 
33529
class WinIfExists;
 
33530
class WinImportHandler;
 
33531
class WinMacros;
 
33532
class WinAsm;
 
33533
class WinDeclSpecs;
 
33534
class WinMemberExplSpec;
 
33535
class WinTypeKeywords;
 
33536
class WinFriend;
 
33537
class ExtAC;
 
33538
class ExtACBuilderCoupling;
 
33539
class ExtACSyntaxCoupling;
 
33540
class ExtACTree;
 
33541
class ExtACKeywords;
 
33542
class ExtGnu;
 
33543
class PragmaOnceUnitState;
 
33544
class PragmaOnce;
 
33545
class CMatchSyntax;
 
33546
namespace Puma {
 
33547
 
 
33548
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
33549
class Project : public PathManager, public SaveMode {
 
33550
#line 33551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33551
  friend class ::CCExprResolve;
 
33552
  friend class ::CExprResolve;
 
33553
  friend class ::WinIfExists;
 
33554
  friend class ::WinImportHandler;
 
33555
  friend class ::WinMacros;
 
33556
  friend class ::WinAsm;
 
33557
  friend class ::WinDeclSpecs;
 
33558
  friend class ::WinMemberExplSpec;
 
33559
  friend class ::WinTypeKeywords;
 
33560
  friend class ::WinFriend;
 
33561
  friend class ::ExtAC;
 
33562
  friend class ::ExtACBuilderCoupling;
 
33563
  friend class ::ExtACSyntaxCoupling;
 
33564
  friend class ::ExtACTree;
 
33565
  friend class ::ExtACKeywords;
 
33566
  friend class ::ExtGnu;
 
33567
  friend class ::PragmaOnceUnitState;
 
33568
  friend class ::PragmaOnce;
 
33569
  friend class ::CMatchSyntax;
 
33570
 
 
33571
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
33572
 
 
33573
  UnitManager  _unitManager; 
 
33574
  const char  *_suffix;           // Current file name suffix.
 
33575
  Mode         _mode;      // Current save mode.
 
33576
 
 
33577
  // Change to the directory, or create it if necessary.
 
33578
  bool makeDir (const char *) const;
 
33579
        
 
33580
  // Create the directory hierarchy need for file 'path'.
 
33581
  bool makeDirHierarchy (Filename path) const;
 
33582
 
 
33583
protected:
 
33584
  // Write a unit on a file. Called by save().
 
33585
  virtual void write (Unit *unit, ofstream &) const; 
 
33586
 
 
33587
  // Check/update the state of the given unit.
 
33588
  bool checkState (const char *, Unit *) const;
 
33589
  void updateState (const char *, Unit *) const;
 
33590
        
 
33591
public:
 
33592
  Project (ErrorStream &);
 
33593
  virtual ~Project ();
 
33594
 
 
33595
  // Set the mode for saving an unit.
 
33596
  // OVERWRITE  -> Save the unit under its name and overwrite existing
 
33597
  //                   files.
 
33598
  // RENAME_OLD -> An existing file will be renamed. A suffix will be
 
33599
  //                   added to the name of the file, like `main.cc.old'
 
33600
  //                   for the file `main.cc' and the suffix `.old'.
 
33601
  // NEW_SUFFIX -> The unit will be saved with a new suffix, like 
 
33602
  //                   `main.cpp' for the unit `main.cc' and the suffix 
 
33603
  //               `cpp'.
 
33604
  void saveMode (Mode = OVERWRITE, const char *suffix = (const char*)0);
 
33605
 
 
33606
  // Save a unit using the name of the unit to get the full 
 
33607
  // name of the file and path to save to. The save location
 
33608
  // must not be protected by a protect pattern and the original
 
33609
  // file must be located in one of the source directories.
 
33610
  virtual void save (Unit *, bool = false) const;
 
33611
        
 
33612
  // Save a FileUnit (or all) to a file (or files).
 
33613
  virtual void save (const char *file = (const char*)0,
 
33614
                     bool only_modified = false, bool is_reg_ex = false) const;
 
33615
 
 
33616
  // Print an unit, regular expression for more units.
 
33617
  // If no name is given print all units.
 
33618
  void print (const char *name = (const char*)0, ostream &out = cout,
 
33619
              bool is_reg_ex = false) const;
 
33620
        
 
33621
  // Close an unit, regular expression for more units.
 
33622
  // If no name is given close all units. If destroy is true,
 
33623
  // the unit(s) will be deleted. 
 
33624
  void close (const char *name = (const char*)0, bool destroy = false,
 
33625
              bool is_reg_ex = false) const;
 
33626
 
 
33627
  // Add a new file to the project.
 
33628
  Unit *addFile (Filename);
 
33629
  Unit *addFile (Filename, Filename);
 
33630
 
 
33631
  // Configure the project from the command line or a file.
 
33632
  virtual void configure (const Config &);
 
33633
        
 
33634
  // Member access.
 
33635
  UnitManager &unitManager ();
 
33636
        
 
33637
  // Return true if the given file in the source directory
 
33638
  // (or at the unit manager) is newer than the corresponding
 
33639
  // file in the destination directory.
 
33640
  bool isNewer (const char *) const;
 
33641
 
 
33642
  // Returns true if the given file is in or below the project dirs
 
33643
  virtual bool isBelow (const char *) const;
 
33644
  virtual bool isBelow (Unit *) const;
 
33645
};
 
33646
 
 
33647
inline UnitManager &Project::unitManager () 
 
33648
 {  return _unitManager; }
 
33649
 
 
33650
inline bool Project::isBelow (const char *file) const
 
33651
 { return PathManager::isBelow (file); }
 
33652
 
 
33653
 
 
33654
} // namespace Puma
 
33655
 
 
33656
#endif /* __project__ */
 
33657
 
 
33658
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
33659
 
 
33660
#line 33661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33661
 
 
33662
#ifndef __ac_fwd_ExtACKeywords__
 
33663
#define __ac_fwd_ExtACKeywords__
 
33664
class ExtACKeywords;
 
33665
namespace AC {
 
33666
  template <class JoinPoint>
 
33667
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
33668
  template <class JoinPoint>
 
33669
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
33670
  template <class JoinPoint>
 
33671
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
33672
}
 
33673
#endif
 
33674
 
 
33675
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
33676
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
33677
#endif
 
33678
 
 
33679
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
33680
// This file is part of PUMA.
 
33681
// Copyright (C) 1999-2003  The PUMA developer team.
 
33682
//                                                                
 
33683
// This program is free software;  you can redistribute it and/or 
 
33684
// modify it under the terms of the GNU General Public License as 
 
33685
// published by the Free Software Foundation; either version 2 of 
 
33686
// the License, or (at your option) any later version.            
 
33687
//                                                                
 
33688
// This program is distributed in the hope that it will be useful,
 
33689
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
33690
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
33691
// GNU General Public License for more details.                   
 
33692
//                                                                
 
33693
// You should have received a copy of the GNU General Public      
 
33694
// License along with this program; if not, write to the Free     
 
33695
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
33696
// MA  02111-1307  USA                                            
 
33697
 
 
33698
#ifndef __c_scanner_h__
 
33699
#define __c_scanner_h__
 
33700
 
 
33701
 
 
33702
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
33703
// This file is part of PUMA.
 
33704
// Copyright (C) 1999-2003  The PUMA developer team.
 
33705
//                                                                
 
33706
// This program is free software;  you can redistribute it and/or 
 
33707
// modify it under the terms of the GNU General Public License as 
 
33708
// published by the Free Software Foundation; either version 2 of 
 
33709
// the License, or (at your option) any later version.            
 
33710
//                                                                
 
33711
// This program is distributed in the hope that it will be useful,
 
33712
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
33713
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
33714
// GNU General Public License for more details.                   
 
33715
//                                                                
 
33716
// You should have received a copy of the GNU General Public      
 
33717
// License along with this program; if not, write to the Free     
 
33718
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
33719
// MA  02111-1307  USA                                            
 
33720
 
 
33721
#ifndef __c_recognizer_h__
 
33722
#define __c_recognizer_h__
 
33723
 
 
33724
 
 
33725
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
33726
// This file is part of PUMA.
 
33727
// Copyright (C) 1999-2003  The PUMA developer team.
 
33728
//                                                                
 
33729
// This program is free software;  you can redistribute it and/or 
 
33730
// modify it under the terms of the GNU General Public License as 
 
33731
// published by the Free Software Foundation; either version 2 of 
 
33732
// the License, or (at your option) any later version.            
 
33733
//                                                                
 
33734
// This program is distributed in the hope that it will be useful,
 
33735
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
33736
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
33737
// GNU General Public License for more details.                   
 
33738
//                                                                
 
33739
// You should have received a copy of the GNU General Public      
 
33740
// License along with this program; if not, write to the Free     
 
33741
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
33742
// MA  02111-1307  USA                                            
 
33743
 
 
33744
#ifndef __CScanBuffer_h__
 
33745
#define __CScanBuffer_h__
 
33746
 
 
33747
 
 
33748
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
33749
// This file is part of PUMA.
 
33750
// Copyright (C) 1999-2003  The PUMA developer team.
 
33751
//                                                                
 
33752
// This program is free software;  you can redistribute it and/or 
 
33753
// modify it under the terms of the GNU General Public License as 
 
33754
// published by the Free Software Foundation; either version 2 of 
 
33755
// the License, or (at your option) any later version.            
 
33756
//                                                                
 
33757
// This program is distributed in the hope that it will be useful,
 
33758
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
33759
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
33760
// GNU General Public License for more details.                   
 
33761
//                                                                
 
33762
// You should have received a copy of the GNU General Public      
 
33763
// License along with this program; if not, write to the Free     
 
33764
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
33765
// MA  02111-1307  USA                                            
 
33766
 
 
33767
#ifndef __scan_buffer_h__
 
33768
#define __scan_buffer_h__
 
33769
 
 
33770
 
 
33771
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
33772
using namespace std;
 
33773
 
 
33774
namespace Puma {
 
33775
 
 
33776
 
 
33777
#line 33778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33778
} // closed Puma
 
33779
class CCExprResolve;
 
33780
class CExprResolve;
 
33781
class WinIfExists;
 
33782
class WinImportHandler;
 
33783
class WinMacros;
 
33784
class WinAsm;
 
33785
class WinDeclSpecs;
 
33786
class WinMemberExplSpec;
 
33787
class WinTypeKeywords;
 
33788
class WinFriend;
 
33789
class ExtAC;
 
33790
class ExtACBuilderCoupling;
 
33791
class ExtACSyntaxCoupling;
 
33792
class ExtACTree;
 
33793
class ExtACKeywords;
 
33794
class ExtGnu;
 
33795
class PragmaOnceUnitState;
 
33796
class PragmaOnce;
 
33797
class CMatchSyntax;
 
33798
namespace Puma {
 
33799
 
 
33800
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
33801
class ScanBuffer {
 
33802
#line 33803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33803
  friend class ::CCExprResolve;
 
33804
  friend class ::CExprResolve;
 
33805
  friend class ::WinIfExists;
 
33806
  friend class ::WinImportHandler;
 
33807
  friend class ::WinMacros;
 
33808
  friend class ::WinAsm;
 
33809
  friend class ::WinDeclSpecs;
 
33810
  friend class ::WinMemberExplSpec;
 
33811
  friend class ::WinTypeKeywords;
 
33812
  friend class ::WinFriend;
 
33813
  friend class ::ExtAC;
 
33814
  friend class ::ExtACBuilderCoupling;
 
33815
  friend class ::ExtACSyntaxCoupling;
 
33816
  friend class ::ExtACTree;
 
33817
  friend class ::ExtACKeywords;
 
33818
  friend class ::ExtGnu;
 
33819
  friend class ::PragmaOnceUnitState;
 
33820
  friend class ::PragmaOnce;
 
33821
  friend class ::CMatchSyntax;
 
33822
 
 
33823
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
33824
 
 
33825
public:
 
33826
  typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
 
33827
 
 
33828
private:
 
33829
  int _token;      // start position of current token
 
33830
  int _pos;        // current position (in token; _pos >= _token && pos < filled)
 
33831
  char *_buffer;   // token to the buffer that contains all input characters
 
33832
  int  _buff_size; // size of the input buffer
 
33833
  State _state;
 
33834
 
 
33835
public:  
 
33836
  ScanBuffer () : _state (STATE_NEW) {}
 
33837
 
 
33838
  // init buffer to directly scan from a string
 
33839
  void init (const char *str, int l = 0);
 
33840
  
 
33841
  char next () { return _buffer[_pos++]; }
 
33842
  char lookahead () { return _buffer[_pos]; }
 
33843
  char *token () const { return _buffer + _token; }
 
33844
  int len () const { return _pos - _token; }
 
33845
  void reset () { _token = _pos = 0; }
 
33846
  void retry () { _pos = _token; } 
 
33847
  void accept (int len) {
 
33848
    _token += len;
 
33849
    _pos = _token;
 
33850
  }
 
33851
  void more (int len) { _pos = _token + len; }
 
33852
  State state () {
 
33853
    if (_state == STATE_OK && _pos >= _buff_size)
 
33854
      return STATE_END;
 
33855
    return _state;
 
33856
  }
 
33857
};
 
33858
 
 
33859
 
 
33860
} // namespace Puma
 
33861
 
 
33862
#endif /* __scan_buffer_h__ */
 
33863
 
 
33864
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
33865
namespace Puma {
 
33866
 
 
33867
 
 
33868
 
 
33869
#line 33870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33870
} // closed Puma
 
33871
class CCExprResolve;
 
33872
class CExprResolve;
 
33873
class WinIfExists;
 
33874
class WinImportHandler;
 
33875
class WinMacros;
 
33876
class WinAsm;
 
33877
class WinDeclSpecs;
 
33878
class WinMemberExplSpec;
 
33879
class WinTypeKeywords;
 
33880
class WinFriend;
 
33881
class ExtAC;
 
33882
class ExtACBuilderCoupling;
 
33883
class ExtACSyntaxCoupling;
 
33884
class ExtACTree;
 
33885
class ExtACKeywords;
 
33886
class ExtGnu;
 
33887
class PragmaOnceUnitState;
 
33888
class PragmaOnce;
 
33889
class CMatchSyntax;
 
33890
namespace Puma {
 
33891
 
 
33892
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
33893
class CScanBuffer : public ScanBuffer {
 
33894
#line 33895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
33895
  friend class ::CCExprResolve;
 
33896
  friend class ::CExprResolve;
 
33897
  friend class ::WinIfExists;
 
33898
  friend class ::WinImportHandler;
 
33899
  friend class ::WinMacros;
 
33900
  friend class ::WinAsm;
 
33901
  friend class ::WinDeclSpecs;
 
33902
  friend class ::WinMemberExplSpec;
 
33903
  friend class ::WinTypeKeywords;
 
33904
  friend class ::WinFriend;
 
33905
  friend class ::ExtAC;
 
33906
  friend class ::ExtACBuilderCoupling;
 
33907
  friend class ::ExtACSyntaxCoupling;
 
33908
  friend class ::ExtACTree;
 
33909
  friend class ::ExtACKeywords;
 
33910
  friend class ::ExtGnu;
 
33911
  friend class ::PragmaOnceUnitState;
 
33912
  friend class ::PragmaOnce;
 
33913
  friend class ::CMatchSyntax;
 
33914
 
 
33915
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
33916
 
 
33917
 
 
33918
  int _new_line_pos;
 
33919
  void check ();
 
33920
 
 
33921
public:
 
33922
  CScanBuffer () : _new_line_pos (-1) {}
 
33923
  inline char next ();
 
33924
  inline void reset ();
 
33925
  inline void retry (); 
 
33926
  inline void accept (int len);
 
33927
  inline bool new_line (int len) const;
 
33928
};
 
33929
 
 
33930
 
 
33931
inline char CScanBuffer::next () {
 
33932
  char character = ScanBuffer::next ();
 
33933
  if (character == '\n' && _new_line_pos == -1)
 
33934
    _new_line_pos = len ();
 
33935
  if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
 
33936
      ScanBuffer::lookahead () == '\\')
 
33937
    check ();
 
33938
  return character;
 
33939
}
 
33940
 
 
33941
inline void CScanBuffer::reset () { 
 
33942
  ScanBuffer::reset ();
 
33943
  _new_line_pos = -1;
 
33944
  check ();
 
33945
}
 
33946
 
 
33947
inline void CScanBuffer::retry () {
 
33948
  ScanBuffer::retry ();
 
33949
  _new_line_pos = -1;
 
33950
}
 
33951
 
 
33952
inline void CScanBuffer::accept (int len) {
 
33953
  ScanBuffer::accept (len);
 
33954
  _new_line_pos = -1;
 
33955
}
 
33956
 
 
33957
inline bool CScanBuffer::new_line (int len) const {
 
33958
  return _new_line_pos != -1 && _new_line_pos <= len;
 
33959
}
 
33960
 
 
33961
} // namespace Puma
 
33962
 
 
33963
#endif // __CScanBuffer_h__
 
33964
 
 
33965
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
33966
// This file is part of PUMA.
 
33967
// Copyright (C) 1999-2003  The PUMA developer team.
 
33968
//                                                                
 
33969
// This program is free software;  you can redistribute it and/or 
 
33970
// modify it under the terms of the GNU General Public License as 
 
33971
// published by the Free Software Foundation; either version 2 of 
 
33972
// the License, or (at your option) any later version.            
 
33973
//                                                                
 
33974
// This program is distributed in the hope that it will be useful,
 
33975
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
33976
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
33977
// GNU General Public License for more details.                   
 
33978
//                                                                
 
33979
// You should have received a copy of the GNU General Public      
 
33980
// License along with this program; if not, write to the Free     
 
33981
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
33982
// MA  02111-1307  USA                                            
 
33983
 
 
33984
#ifndef __c_comment_recognizer_h__
 
33985
#define __c_comment_recognizer_h__
 
33986
 
 
33987
 
 
33988
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
33989
// This file is part of PUMA.
 
33990
// Copyright (C) 1999-2003  The PUMA developer team.
 
33991
//                                                                
 
33992
// This program is free software;  you can redistribute it and/or 
 
33993
// modify it under the terms of the GNU General Public License as 
 
33994
// published by the Free Software Foundation; either version 2 of 
 
33995
// the License, or (at your option) any later version.            
 
33996
//                                                                
 
33997
// This program is distributed in the hope that it will be useful,
 
33998
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
33999
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34000
// GNU General Public License for more details.                   
 
34001
//                                                                
 
34002
// You should have received a copy of the GNU General Public      
 
34003
// License along with this program; if not, write to the Free     
 
34004
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34005
// MA  02111-1307  USA                                            
 
34006
 
 
34007
#ifndef __mapped_orange_recognizer_h__
 
34008
#define __mapped_orange_recognizer_h__
 
34009
 
 
34010
// The token recognizer class, which uses scanner tables generated by the
 
34011
// orange tool. Returned expressions mapped according to an orange
 
34012
// generated mapping table
 
34013
 
 
34014
 
 
34015
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
 
34016
// This file is part of PUMA.
 
34017
// Copyright (C) 1999-2003  The PUMA developer team.
 
34018
//                                                                
 
34019
// This program is free software;  you can redistribute it and/or 
 
34020
// modify it under the terms of the GNU General Public License as 
 
34021
// published by the Free Software Foundation; either version 2 of 
 
34022
// the License, or (at your option) any later version.            
 
34023
//                                                                
 
34024
// This program is distributed in the hope that it will be useful,
 
34025
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
34026
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34027
// GNU General Public License for more details.                   
 
34028
//                                                                
 
34029
// You should have received a copy of the GNU General Public      
 
34030
// License along with this program; if not, write to the Free     
 
34031
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34032
// MA  02111-1307  USA                                            
 
34033
 
 
34034
#ifndef __recognizer_h__
 
34035
#define __recognizer_h__
 
34036
 
 
34037
// The token recognizer class, which uses scanner tables generated by the
 
34038
// orange tool.
 
34039
 
 
34040
namespace Puma {
 
34041
 
 
34042
 
 
34043
#ifndef __TTGEN__
 
34044
#  define __TTGEN__
 
34045
typedef struct
 
34046
 { unsigned char Type;
 
34047
   unsigned char LookAhead;
 
34048
   int           Expression;
 
34049
   int           Start;
 
34050
 } States;                                                                   
 
34051
#endif
 
34052
 
 
34053
 
 
34054
// class declaration
 
34055
 
 
34056
template <typename TScanBuffer>
 
34057
class OrangeRecognizer {
 
34058
  // local structures generated by Orange
 
34059
 
 
34060
  char *_map;
 
34061
  int _start;
 
34062
  States *_state;
 
34063
  int *_next;
 
34064
  int *_control;
 
34065
  int _tab_size;
 
34066
 
 
34067
public:
 
34068
  OrangeRecognizer (char *map, int start, States *state, int *next,
 
34069
                    int *control, int tab_size) : 
 
34070
    _map (map), _start (start), _state (state), _next (next),
 
34071
    _control (control), _tab_size (tab_size)
 
34072
   {}
 
34073
 
 
34074
  // try to recognize the current token in the character buffer
 
34075
  // returns 1 on success, 0 on eof, -1 on unknown token
 
34076
  int recognize (TScanBuffer *scan_buffer, int &token, int &len); 
 
34077
};
 
34078
 
 
34079
template <typename TScanBuffer>
 
34080
int OrangeRecognizer<TScanBuffer>::recognize (TScanBuffer *scan_buffer,
 
34081
                                              int &token, int &len) {
 
34082
  int  NextState;
 
34083
  char Character;
 
34084
  char CharClass;
 
34085
  int  NextStatePos;
 
34086
  int  State;
 
34087
  int  LookAheadLen;
 
34088
  int  AcceptLen;
 
34089
  int  AcceptState;
 
34090
  typename TScanBuffer::State buffer_state = TScanBuffer::STATE_OK;
 
34091
 
 
34092
  State = _start;
 
34093
  AcceptState = -1;
 
34094
  LookAheadLen = 0;
 
34095
  AcceptLen = 0;
 
34096
 
 
34097
  do { 
 
34098
    Character = scan_buffer->next ();
 
34099
 
 
34100
    CharClass = _map[(unsigned char)Character];
 
34101
    if (CharClass == -1)
 
34102
      break;
 
34103
 
 
34104
    NextStatePos = _state[State].Start + CharClass;
 
34105
    if (NextStatePos < 0 || NextStatePos >= _tab_size ||
 
34106
        _control[NextStatePos] != State)
 
34107
      break;
 
34108
 
 
34109
    if ((NextState = _next[NextStatePos]) == -1)
 
34110
      break;
 
34111
 
 
34112
    State = NextState;
 
34113
 
 
34114
    if (_state[State].Type > 0) {
 
34115
      AcceptState = State; // remember this (terminal) state
 
34116
      AcceptLen = scan_buffer->len ();
 
34117
    }
 
34118
 
 
34119
    if (_state[State].LookAhead)
 
34120
      LookAheadLen = scan_buffer->len ();
 
34121
 
 
34122
    buffer_state = scan_buffer->state ();
 
34123
  } while (NextState != -1 && buffer_state == TScanBuffer::STATE_OK);
 
34124
 
 
34125
  if (buffer_state == TScanBuffer::STATE_ERROR)
 
34126
    return -1;
 
34127
 
 
34128
  if (AcceptState == -1)
 
34129
    return 0;
 
34130
 
 
34131
  len   = (_state[AcceptState].Type == 2) ? LookAheadLen : AcceptLen;
 
34132
  token = _state[AcceptState].Expression;
 
34133
 
 
34134
  return 1;
 
34135
}
 
34136
 
 
34137
} // namespace Puma
 
34138
 
 
34139
#endif /* __orange_recognizer_h__ */
 
34140
 
 
34141
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
34142
namespace Puma {
 
34143
 
 
34144
 
 
34145
// class declaration
 
34146
 
 
34147
template <class ScanBuffer>
 
34148
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
 
34149
  int *_expr_map;
 
34150
 
 
34151
public:
 
34152
  MappedOrangeRecognizer (char *map, int *expr_map, int start, 
 
34153
                          States *state, int *next,
 
34154
                          int *control, int tab_size) : 
 
34155
    OrangeRecognizer<ScanBuffer> (map, start, state, next, control, tab_size),
 
34156
    _expr_map (expr_map) 
 
34157
   {}
 
34158
 
 
34159
  // try to recognize the current token in the character buffer
 
34160
  // returns 1 on success, 0 on eof, -1 on unknown token
 
34161
  int recognize (ScanBuffer *scan_buffer, int &token, int &len) {
 
34162
    int result;
 
34163
 
 
34164
    if ((result = OrangeRecognizer<ScanBuffer>::recognize (scan_buffer, token, len)) == 1) {
 
34165
      token = _expr_map[token];
 
34166
    }
 
34167
    return result;
 
34168
  }
 
34169
};
 
34170
 
 
34171
 
 
34172
} // namespace Puma
 
34173
 
 
34174
#endif // __mapped_orange_recognizer_h__
 
34175
 
 
34176
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
34177
namespace Puma {
 
34178
 
 
34179
 
 
34180
 
 
34181
#line 34182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34182
} // closed Puma
 
34183
class CCExprResolve;
 
34184
class CExprResolve;
 
34185
class WinIfExists;
 
34186
class WinImportHandler;
 
34187
class WinMacros;
 
34188
class WinAsm;
 
34189
class WinDeclSpecs;
 
34190
class WinMemberExplSpec;
 
34191
class WinTypeKeywords;
 
34192
class WinFriend;
 
34193
class ExtAC;
 
34194
class ExtACBuilderCoupling;
 
34195
class ExtACSyntaxCoupling;
 
34196
class ExtACTree;
 
34197
class ExtACKeywords;
 
34198
class ExtGnu;
 
34199
class PragmaOnceUnitState;
 
34200
class PragmaOnce;
 
34201
class CMatchSyntax;
 
34202
namespace Puma {
 
34203
 
 
34204
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
34205
class CCommentRecognizer {
 
34206
#line 34207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34207
  friend class ::CCExprResolve;
 
34208
  friend class ::CExprResolve;
 
34209
  friend class ::WinIfExists;
 
34210
  friend class ::WinImportHandler;
 
34211
  friend class ::WinMacros;
 
34212
  friend class ::WinAsm;
 
34213
  friend class ::WinDeclSpecs;
 
34214
  friend class ::WinMemberExplSpec;
 
34215
  friend class ::WinTypeKeywords;
 
34216
  friend class ::WinFriend;
 
34217
  friend class ::ExtAC;
 
34218
  friend class ::ExtACBuilderCoupling;
 
34219
  friend class ::ExtACSyntaxCoupling;
 
34220
  friend class ::ExtACTree;
 
34221
  friend class ::ExtACKeywords;
 
34222
  friend class ::ExtGnu;
 
34223
  friend class ::PragmaOnceUnitState;
 
34224
  friend class ::PragmaOnce;
 
34225
  friend class ::CMatchSyntax;
 
34226
 
 
34227
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
34228
 
 
34229
public:
 
34230
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
 
34231
 
 
34232
private:
 
34233
  static MappedOrangeRecognizer<CScanBuffer> comment_recognizer;   
 
34234
  static MappedOrangeRecognizer<CScanBuffer> sl_comment_recognizer;   
 
34235
  static MappedOrangeRecognizer<CScanBuffer> ml_comment_recognizer;   
 
34236
  Mode comment_mode;
 
34237
 
 
34238
public:
 
34239
  CCommentRecognizer () : comment_mode (NO_COMMENT) {}
 
34240
  int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
 
34241
  void mode (Mode mode) { comment_mode = mode; }
 
34242
  Mode mode () { return comment_mode; }
 
34243
};
 
34244
 
 
34245
 
 
34246
} // namespace Puma
 
34247
 
 
34248
#endif /* __c_comment_recognizer_h__ */
 
34249
 
 
34250
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
34251
// This file is part of PUMA.
 
34252
// Copyright (C) 1999-2003  The PUMA developer team.
 
34253
//                                                                
 
34254
// This program is free software;  you can redistribute it and/or 
 
34255
// modify it under the terms of the GNU General Public License as 
 
34256
// published by the Free Software Foundation; either version 2 of 
 
34257
// the License, or (at your option) any later version.            
 
34258
//                                                                
 
34259
// This program is distributed in the hope that it will be useful,
 
34260
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
34261
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34262
// GNU General Public License for more details.                   
 
34263
//                                                                
 
34264
// You should have received a copy of the GNU General Public      
 
34265
// License along with this program; if not, write to the Free     
 
34266
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34267
// MA  02111-1307  USA                                            
 
34268
 
 
34269
#ifndef __keyword_recognizer_h__
 
34270
#define __keyword_recognizer_h__
 
34271
 
 
34272
 
 
34273
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
34274
namespace Puma {
 
34275
 
 
34276
 
 
34277
 
 
34278
#line 34279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34279
} // closed Puma
 
34280
class CCExprResolve;
 
34281
class CExprResolve;
 
34282
class WinIfExists;
 
34283
class WinImportHandler;
 
34284
class WinMacros;
 
34285
class WinAsm;
 
34286
class WinDeclSpecs;
 
34287
class WinMemberExplSpec;
 
34288
class WinTypeKeywords;
 
34289
class WinFriend;
 
34290
class ExtAC;
 
34291
class ExtACBuilderCoupling;
 
34292
class ExtACSyntaxCoupling;
 
34293
class ExtACTree;
 
34294
class ExtACKeywords;
 
34295
class ExtGnu;
 
34296
class PragmaOnceUnitState;
 
34297
class PragmaOnce;
 
34298
class CMatchSyntax;
 
34299
namespace Puma {
 
34300
 
 
34301
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
34302
class KeywordRecognizer {
 
34303
#line 34304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34304
  friend class ::CCExprResolve;
 
34305
  friend class ::CExprResolve;
 
34306
  friend class ::WinIfExists;
 
34307
  friend class ::WinImportHandler;
 
34308
  friend class ::WinMacros;
 
34309
  friend class ::WinAsm;
 
34310
  friend class ::WinDeclSpecs;
 
34311
  friend class ::WinMemberExplSpec;
 
34312
  friend class ::WinTypeKeywords;
 
34313
  friend class ::WinFriend;
 
34314
  friend class ::ExtAC;
 
34315
  friend class ::ExtACBuilderCoupling;
 
34316
  friend class ::ExtACSyntaxCoupling;
 
34317
  friend class ::ExtACTree;
 
34318
  friend class ::ExtACKeywords;
 
34319
  friend class ::ExtGnu;
 
34320
  friend class ::PragmaOnceUnitState;
 
34321
  friend class ::PragmaOnce;
 
34322
  friend class ::CMatchSyntax;
 
34323
 
 
34324
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
34325
 
 
34326
protected:
 
34327
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
 
34328
 
 
34329
public:
 
34330
  virtual ~KeywordRecognizer () {}
 
34331
  virtual int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
 
34332
};
 
34333
 
 
34334
 
 
34335
} // namespace Puma
 
34336
 
 
34337
#endif /* __keyword_recognizer_h__ */
 
34338
 
 
34339
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
34340
namespace Puma {
 
34341
 
 
34342
 
 
34343
 
 
34344
#line 34345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34345
} // closed Puma
 
34346
class CCExprResolve;
 
34347
class CExprResolve;
 
34348
class WinIfExists;
 
34349
class WinImportHandler;
 
34350
class WinMacros;
 
34351
class WinAsm;
 
34352
class WinDeclSpecs;
 
34353
class WinMemberExplSpec;
 
34354
class WinTypeKeywords;
 
34355
class WinFriend;
 
34356
class ExtAC;
 
34357
class ExtACBuilderCoupling;
 
34358
class ExtACSyntaxCoupling;
 
34359
class ExtACTree;
 
34360
class ExtACKeywords;
 
34361
class ExtGnu;
 
34362
class PragmaOnceUnitState;
 
34363
class PragmaOnce;
 
34364
class CMatchSyntax;
 
34365
namespace Puma {
 
34366
 
 
34367
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
34368
class CRecognizer {
 
34369
#line 34370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34370
  friend class ::CCExprResolve;
 
34371
  friend class ::CExprResolve;
 
34372
  friend class ::WinIfExists;
 
34373
  friend class ::WinImportHandler;
 
34374
  friend class ::WinMacros;
 
34375
  friend class ::WinAsm;
 
34376
  friend class ::WinDeclSpecs;
 
34377
  friend class ::WinMemberExplSpec;
 
34378
  friend class ::WinTypeKeywords;
 
34379
  friend class ::WinFriend;
 
34380
  friend class ::ExtAC;
 
34381
  friend class ::ExtACBuilderCoupling;
 
34382
  friend class ::ExtACSyntaxCoupling;
 
34383
  friend class ::ExtACTree;
 
34384
  friend class ::ExtACKeywords;
 
34385
  friend class ::ExtGnu;
 
34386
  friend class ::PragmaOnceUnitState;
 
34387
  friend class ::PragmaOnce;
 
34388
  friend class ::CMatchSyntax;
 
34389
 
 
34390
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
34391
 
 
34392
  CCommentRecognizer comment_recognizer;
 
34393
  Array<KeywordRecognizer*> additional_keyword_recognizers;
 
34394
 
 
34395
public:
 
34396
  CScanBuffer scan_buffer; // TODO: temporarily made public!
 
34397
 
 
34398
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
 
34399
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE, 
 
34400
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
 
34401
 
 
34402
  CRecognizer () : directives(true), wildcards (false),
 
34403
    aspectc (false), macro_ops (false),
 
34404
    std_c (true), std_cplusplus (true) {}
 
34405
  void allow_directives (bool flag = true)    { directives = flag; }
 
34406
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
 
34407
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
 
34408
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
 
34409
  void allow_std_c (bool flag = true)         { std_c = flag; }
 
34410
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
 
34411
  void setup ();
 
34412
  int recognize (Lang &lang, int &expr, int &len);
 
34413
  Mode mode () const { return scan_mode; }
 
34414
  void mode (Mode mode) { scan_mode = mode; }
 
34415
  CScanBuffer& buffer () { return scan_buffer; }
 
34416
  void addRecognizer(KeywordRecognizer &recognizer) 
 
34417
   { additional_keyword_recognizers.append(&recognizer); }
 
34418
 
 
34419
private:
 
34420
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
 
34421
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
 
34422
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
 
34423
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
 
34424
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
 
34425
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
 
34426
 
 
34427
  Mode scan_mode;
 
34428
  bool directives;
 
34429
  bool wildcards;
 
34430
  bool aspectc;
 
34431
  bool macro_ops;
 
34432
  bool std_c;
 
34433
  bool std_cplusplus;
 
34434
};
 
34435
 
 
34436
 
 
34437
} // namespace Puma
 
34438
 
 
34439
#endif /* __c_recognizer_h__ */
 
34440
 
 
34441
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
34442
// This file is part of PUMA.
 
34443
// Copyright (C) 1999-2003  The PUMA developer team.
 
34444
//                                                                
 
34445
// This program is free software;  you can redistribute it and/or 
 
34446
// modify it under the terms of the GNU General Public License as 
 
34447
// published by the Free Software Foundation; either version 2 of 
 
34448
// the License, or (at your option) any later version.            
 
34449
//                                                                
 
34450
// This program is distributed in the hope that it will be useful,
 
34451
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
34452
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34453
// GNU General Public License for more details.                   
 
34454
//                                                                
 
34455
// You should have received a copy of the GNU General Public      
 
34456
// License along with this program; if not, write to the Free     
 
34457
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34458
// MA  02111-1307  USA                                            
 
34459
 
 
34460
#ifndef __Tokenizer_h__
 
34461
#define __Tokenizer_h__
 
34462
 
 
34463
// Tokenizer interface. Tokenizer read input from a "Source" and
 
34464
// form tokens, which used to fill a "Unit".
 
34465
 
 
34466
 
 
34467
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
34468
// This file is part of PUMA.
 
34469
// Copyright (C) 1999-2003  The PUMA developer team.
 
34470
//                                                                
 
34471
// This program is free software;  you can redistribute it and/or 
 
34472
// modify it under the terms of the GNU General Public License as 
 
34473
// published by the Free Software Foundation; either version 2 of 
 
34474
// the License, or (at your option) any later version.            
 
34475
//                                                                
 
34476
// This program is distributed in the hope that it will be useful,
 
34477
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
34478
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34479
// GNU General Public License for more details.                   
 
34480
//                                                                
 
34481
// You should have received a copy of the GNU General Public      
 
34482
// License along with this program; if not, write to the Free     
 
34483
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34484
// MA  02111-1307  USA                                            
 
34485
 
 
34486
#ifndef __source_h__
 
34487
#define __source_h__
 
34488
 
 
34489
namespace Puma {
 
34490
 
 
34491
 
 
34492
 
 
34493
#line 34494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34494
} // closed Puma
 
34495
class CCExprResolve;
 
34496
class CExprResolve;
 
34497
class WinIfExists;
 
34498
class WinImportHandler;
 
34499
class WinMacros;
 
34500
class WinAsm;
 
34501
class WinDeclSpecs;
 
34502
class WinMemberExplSpec;
 
34503
class WinTypeKeywords;
 
34504
class WinFriend;
 
34505
class ExtAC;
 
34506
class ExtACBuilderCoupling;
 
34507
class ExtACSyntaxCoupling;
 
34508
class ExtACTree;
 
34509
class ExtACKeywords;
 
34510
class ExtGnu;
 
34511
class PragmaOnceUnitState;
 
34512
class PragmaOnce;
 
34513
class CMatchSyntax;
 
34514
namespace Puma {
 
34515
 
 
34516
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
34517
class Source {
 
34518
#line 34519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34519
  friend class ::CCExprResolve;
 
34520
  friend class ::CExprResolve;
 
34521
  friend class ::WinIfExists;
 
34522
  friend class ::WinImportHandler;
 
34523
  friend class ::WinMacros;
 
34524
  friend class ::WinAsm;
 
34525
  friend class ::WinDeclSpecs;
 
34526
  friend class ::WinMemberExplSpec;
 
34527
  friend class ::WinTypeKeywords;
 
34528
  friend class ::WinFriend;
 
34529
  friend class ::ExtAC;
 
34530
  friend class ::ExtACBuilderCoupling;
 
34531
  friend class ::ExtACSyntaxCoupling;
 
34532
  friend class ::ExtACTree;
 
34533
  friend class ::ExtACKeywords;
 
34534
  friend class ::ExtGnu;
 
34535
  friend class ::PragmaOnceUnitState;
 
34536
  friend class ::PragmaOnce;
 
34537
  friend class ::CMatchSyntax;
 
34538
 
 
34539
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
34540
 
 
34541
public:
 
34542
  Source () {}
 
34543
  virtual ~Source () {}
 
34544
  virtual int read (char *dest, int n) = 0;
 
34545
  virtual int size () { return -1; }
 
34546
};
 
34547
 
 
34548
 
 
34549
} // namespace Puma
 
34550
 
 
34551
#endif /* __source_h__ */
 
34552
 
 
34553
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
34554
// This file is part of PUMA.
 
34555
// Copyright (C) 1999-2003  The PUMA developer team.
 
34556
//                                                                
 
34557
// This program is free software;  you can redistribute it and/or 
 
34558
// modify it under the terms of the GNU General Public License as 
 
34559
// published by the Free Software Foundation; either version 2 of 
 
34560
// the License, or (at your option) any later version.            
 
34561
//                                                                
 
34562
// This program is distributed in the hope that it will be useful,
 
34563
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
34564
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34565
// GNU General Public License for more details.                   
 
34566
//                                                                
 
34567
// You should have received a copy of the GNU General Public      
 
34568
// License along with this program; if not, write to the Free     
 
34569
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34570
// MA  02111-1307  USA                                            
 
34571
 
 
34572
#ifndef __unit_h__
 
34573
#define __unit_h__
 
34574
 
 
34575
 
 
34576
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
34577
// This file is part of PUMA.
 
34578
// Copyright (C) 1999-2003  The PUMA developer team.
 
34579
//                                                                
 
34580
// This program is free software;  you can redistribute it and/or 
 
34581
// modify it under the terms of the GNU General Public License as 
 
34582
// published by the Free Software Foundation; either version 2 of 
 
34583
// the License, or (at your option) any later version.            
 
34584
//                                                                
 
34585
// This program is distributed in the hope that it will be useful,
 
34586
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
34587
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34588
// GNU General Public License for more details.                   
 
34589
//                                                                
 
34590
// You should have received a copy of the GNU General Public      
 
34591
// License along with this program; if not, write to the Free     
 
34592
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34593
// MA  02111-1307  USA                                            
 
34594
 
 
34595
#ifndef __list_h__
 
34596
#define __list_h__
 
34597
 
 
34598
 
 
34599
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
34600
namespace Puma {
 
34601
 
 
34602
 
 
34603
 
 
34604
#line 34605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34605
} // closed Puma
 
34606
class CCExprResolve;
 
34607
class CExprResolve;
 
34608
class WinIfExists;
 
34609
class WinImportHandler;
 
34610
class WinMacros;
 
34611
class WinAsm;
 
34612
class WinDeclSpecs;
 
34613
class WinMemberExplSpec;
 
34614
class WinTypeKeywords;
 
34615
class WinFriend;
 
34616
class ExtAC;
 
34617
class ExtACBuilderCoupling;
 
34618
class ExtACSyntaxCoupling;
 
34619
class ExtACTree;
 
34620
class ExtACKeywords;
 
34621
class ExtGnu;
 
34622
class PragmaOnceUnitState;
 
34623
class PragmaOnce;
 
34624
class CMatchSyntax;
 
34625
namespace Puma {
 
34626
 
 
34627
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
34628
class List {
 
34629
#line 34630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34630
  friend class ::CCExprResolve;
 
34631
  friend class ::CExprResolve;
 
34632
  friend class ::WinIfExists;
 
34633
  friend class ::WinImportHandler;
 
34634
  friend class ::WinMacros;
 
34635
  friend class ::WinAsm;
 
34636
  friend class ::WinDeclSpecs;
 
34637
  friend class ::WinMemberExplSpec;
 
34638
  friend class ::WinTypeKeywords;
 
34639
  friend class ::WinFriend;
 
34640
  friend class ::ExtAC;
 
34641
  friend class ::ExtACBuilderCoupling;
 
34642
  friend class ::ExtACSyntaxCoupling;
 
34643
  friend class ::ExtACTree;
 
34644
  friend class ::ExtACKeywords;
 
34645
  friend class ::ExtGnu;
 
34646
  friend class ::PragmaOnceUnitState;
 
34647
  friend class ::PragmaOnce;
 
34648
  friend class ::CMatchSyntax;
 
34649
 
 
34650
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
34651
 
 
34652
  ListElement *_first;
 
34653
  ListElement *_last;
 
34654
 
 
34655
public:
 
34656
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
 
34657
  List (const List &);
 
34658
  ~List();
 
34659
 
 
34660
  List &operator = (const List &);
 
34661
  List &operator += (const List &);
 
34662
  List operator + (const List &);
 
34663
 
 
34664
  void clear ();
 
34665
 
 
34666
  void append (ListElement &);
 
34667
  void prepend (ListElement &);
 
34668
  void insert (ListElement *at, ListElement &element);
 
34669
  void remove (ListElement *element);
 
34670
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
 
34671
   { List discard; cut (discard, from, to); }
 
34672
 
 
34673
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
 
34674
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
 
34675
  List *copy (ListElement *from = (ListElement*)0, 
 
34676
              ListElement *to = (ListElement*)0);
 
34677
  void paste (ListElement *at, const List &l);
 
34678
  void paste_before (ListElement *at, const List &l);
 
34679
  void move (ListElement *at, List &l);
 
34680
  void move_before (ListElement *at, List &l);
 
34681
 
 
34682
  bool empty () const { return _first == (ListElement*)0; }
 
34683
  const ListElement *first () const { return _first; }
 
34684
  const ListElement *last () const { return _last; }
 
34685
  const ListElement *next (const ListElement *element) const
 
34686
   { return element ? element->_next : 0; }
 
34687
  const ListElement *prev (const ListElement *element) const 
 
34688
   { return element ? element->_prev : 0; }
 
34689
};
 
34690
 
 
34691
 
 
34692
} // namespace Puma
 
34693
 
 
34694
#endif /* __list_h__ */
 
34695
 
 
34696
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
34697
 
 
34698
#line 34699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34699
 
 
34700
#ifndef __ac_fwd_PragmaOnceUnitState__
 
34701
#define __ac_fwd_PragmaOnceUnitState__
 
34702
class PragmaOnceUnitState;
 
34703
namespace AC {
 
34704
  template <class JoinPoint>
 
34705
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
34706
  template <class JoinPoint>
 
34707
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
34708
}
 
34709
#endif
 
34710
 
 
34711
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
34712
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
34713
#endif
 
34714
 
 
34715
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
34716
// This file is part of PUMA.
 
34717
// Copyright (C) 1999-2003  The PUMA developer team.
 
34718
//                                                                
 
34719
// This program is free software;  you can redistribute it and/or 
 
34720
// modify it under the terms of the GNU General Public License as 
 
34721
// published by the Free Software Foundation; either version 2 of 
 
34722
// the License, or (at your option) any later version.            
 
34723
//                                                                
 
34724
// This program is distributed in the hope that it will be useful,
 
34725
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
34726
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34727
// GNU General Public License for more details.                   
 
34728
//                                                                
 
34729
// You should have received a copy of the GNU General Public      
 
34730
// License along with this program; if not, write to the Free     
 
34731
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34732
// MA  02111-1307  USA                                            
 
34733
 
 
34734
#ifndef __UnitState__
 
34735
#define __UnitState__
 
34736
 
 
34737
// The state of a unit: 
 
34738
// 1. modified by manipulations and not updated at the class registry
 
34739
// 2. modified by manipulations and updated at the class registry
 
34740
// 3. unmodified by manipulations and not updated at the class registry
 
34741
// 4. unmodified by manipulations and updated at the class registry
 
34742
 
 
34743
namespace Puma {
 
34744
 
 
34745
 
 
34746
 
 
34747
#line 34748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34748
} // closed Puma
 
34749
class CCExprResolve;
 
34750
class CExprResolve;
 
34751
class WinIfExists;
 
34752
class WinImportHandler;
 
34753
class WinMacros;
 
34754
class WinAsm;
 
34755
class WinDeclSpecs;
 
34756
class WinMemberExplSpec;
 
34757
class WinTypeKeywords;
 
34758
class WinFriend;
 
34759
class ExtAC;
 
34760
class ExtACBuilderCoupling;
 
34761
class ExtACSyntaxCoupling;
 
34762
class ExtACTree;
 
34763
class ExtACKeywords;
 
34764
class ExtGnu;
 
34765
class PragmaOnceUnitState;
 
34766
class PragmaOnce;
 
34767
class CMatchSyntax;
 
34768
namespace Puma {
 
34769
 
 
34770
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
34771
 
 
34772
#line 34773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34773
} // closed Puma
 
34774
 
 
34775
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
34776
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
34777
 
 
34778
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34779
// This file is part of PUMA.
 
34780
// Copyright (C) 1999-2003  The PUMA developer team.
 
34781
//                                                                
 
34782
// This program is free software;  you can redistribute it and/or 
 
34783
// modify it under the terms of the GNU General Public License as 
 
34784
// published by the Free Software Foundation; either version 2 of 
 
34785
// the License, or (at your option) any later version.            
 
34786
//                                                                
 
34787
// This program is distributed in the hope that it will be useful,
 
34788
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
34789
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
34790
// GNU General Public License for more details.                   
 
34791
//                                                                
 
34792
// You should have received a copy of the GNU General Public      
 
34793
// License along with this program; if not, write to the Free     
 
34794
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
34795
// MA  02111-1307  USA                                            
 
34796
 
 
34797
#ifndef __PragmaOnceUnitState__
 
34798
#define __PragmaOnceUnitState__
 
34799
 
 
34800
 
 
34801
#line 34802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34802
class CCExprResolve;
 
34803
class CExprResolve;
 
34804
class WinIfExists;
 
34805
class WinImportHandler;
 
34806
class WinMacros;
 
34807
class WinAsm;
 
34808
class WinDeclSpecs;
 
34809
class WinMemberExplSpec;
 
34810
class WinTypeKeywords;
 
34811
class WinFriend;
 
34812
class ExtAC;
 
34813
class ExtACBuilderCoupling;
 
34814
class ExtACSyntaxCoupling;
 
34815
class ExtACTree;
 
34816
class ExtACKeywords;
 
34817
class ExtGnu;
 
34818
class PragmaOnce;
 
34819
class CMatchSyntax;
 
34820
 
 
34821
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34822
class PragmaOnceUnitState {
 
34823
#line 34824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34824
 
 
34825
public:
 
34826
  static PragmaOnceUnitState *aspectof () {
 
34827
    static PragmaOnceUnitState __instance;
 
34828
    return &__instance;
 
34829
  }
 
34830
  static PragmaOnceUnitState *aspectOf () {
 
34831
    return aspectof ();
 
34832
  }
 
34833
private:
 
34834
 
 
34835
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34836
 
 
34837
#line 34838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34838
  friend class ::CCExprResolve;
 
34839
  friend class ::CExprResolve;
 
34840
  friend class ::WinIfExists;
 
34841
  friend class ::WinImportHandler;
 
34842
  friend class ::WinMacros;
 
34843
  friend class ::WinAsm;
 
34844
  friend class ::WinDeclSpecs;
 
34845
  friend class ::WinMemberExplSpec;
 
34846
  friend class ::WinTypeKeywords;
 
34847
  friend class ::WinFriend;
 
34848
  friend class ::ExtAC;
 
34849
  friend class ::ExtACBuilderCoupling;
 
34850
  friend class ::ExtACSyntaxCoupling;
 
34851
  friend class ::ExtACTree;
 
34852
  friend class ::ExtACKeywords;
 
34853
  friend class ::ExtGnu;
 
34854
  friend class ::PragmaOnce;
 
34855
  friend class ::CMatchSyntax;
 
34856
 
 
34857
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34858
 
 
34859
  /******************************************************/
 
34860
  /* specific #pragma once unit state                   */
 
34861
  /******************************************************/
 
34862
 
 
34863
  // pointcut definitions
 
34864
  
 
34865
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34866
 
 
34867
 
 
34868
  
 
34869
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34870
 
 
34871
  
 
34872
  // initialize new state flag
 
34873
  
 
34874
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34875
 
 
34876
public: template<class JoinPoint> void __a0_after 
 
34877
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34878
 
 
34879
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34880
(JoinPoint *tjp)
 
34881
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34882
 {
 
34883
#line 34884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34884
 
 
34885
  JoinPoint *&thisJoinPoint = tjp;
 
34886
 
 
34887
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34888
 
 
34889
#line 34890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34890
 
 
34891
  typedef typename JoinPoint::That __JP_That;
 
34892
  typedef typename JoinPoint::Target __JP_Target;
 
34893
  typedef typename JoinPoint::Result __JP_Result;
 
34894
 
 
34895
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34896
 
 
34897
    thisJoinPoint->that ()->_once = false;
 
34898
  }
 
34899
#line 34900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34900
 
 
34901
private:
 
34902
 
 
34903
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34904
 
 
34905
  
 
34906
  // initialize new flag for all managed units 
 
34907
  
 
34908
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34909
 
 
34910
public: template<class JoinPoint> void __a1_after 
 
34911
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34912
 
 
34913
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34914
(JoinPoint *tjp)
 
34915
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34916
 {
 
34917
#line 34918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34918
 
 
34919
  typedef typename JoinPoint::That __JP_That;
 
34920
  typedef typename JoinPoint::Target __JP_Target;
 
34921
  typedef typename JoinPoint::Result __JP_Result;
 
34922
 
 
34923
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34924
 
 
34925
    // go through the whole unit hash table and reset the 
 
34926
    // `#pragma once' state of the units
 
34927
    typename __JP_That
 
34928
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34929
::UMapIter iter;
 
34930
    for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
 
34931
      (*iter).second->state ().onlyOnce (false);
 
34932
  }
 
34933
#line 34934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34934
 
 
34935
private:
 
34936
 
 
34937
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34938
 
 
34939
 
 
34940
protected:
 
34941
  // this aspect should never be instantiated directly
 
34942
  PragmaOnceUnitState () {}
 
34943
};
 
34944
#line 34945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34945
 
 
34946
namespace AC {
 
34947
  template <class JoinPoint>
 
34948
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
 
34949
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
 
34950
  }
 
34951
  template <class JoinPoint>
 
34952
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
 
34953
    ::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
 
34954
  }
 
34955
 
34956
 
 
34957
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
34958
 
 
34959
 
 
34960
 
 
34961
#endif /* __PragmaOnceUnitState__ */
 
34962
 
 
34963
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
34964
#endif
 
34965
namespace Puma {
 
34966
 
 
34967
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
34968
class UnitState {
 
34969
#line 34970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34970
  friend class ::CCExprResolve;
 
34971
  friend class ::CExprResolve;
 
34972
  friend class ::WinIfExists;
 
34973
  friend class ::WinImportHandler;
 
34974
  friend class ::WinMacros;
 
34975
  friend class ::WinAsm;
 
34976
  friend class ::WinDeclSpecs;
 
34977
  friend class ::WinMemberExplSpec;
 
34978
  friend class ::WinTypeKeywords;
 
34979
  friend class ::WinFriend;
 
34980
  friend class ::ExtAC;
 
34981
  friend class ::ExtACBuilderCoupling;
 
34982
  friend class ::ExtACSyntaxCoupling;
 
34983
  friend class ::ExtACTree;
 
34984
  friend class ::ExtACKeywords;
 
34985
  friend class ::ExtGnu;
 
34986
  friend class ::PragmaOnceUnitState;
 
34987
  friend class ::PragmaOnce;
 
34988
  friend class ::CMatchSyntax;
 
34989
 
 
34990
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
34991
 
 
34992
  bool _modified;
 
34993
  bool _updated;
 
34994
  long _lastModified;
 
34995
      
 
34996
public:
 
34997
  
 
34998
#line 34999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
34999
public: __attribute__((always_inline)) inline void __exec_old_C1();
 
35000
 
 
35001
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
35002
UnitState ();
 
35003
      
 
35004
  bool isModified () const;
 
35005
  bool isUpdated () const;
 
35006
  long lastModified () const;
 
35007
 
 
35008
  // Is modified and has to be updated.
 
35009
  void modified ();
 
35010
  void lastModified (long);
 
35011
  void unmodified ();
 
35012
  void updated ();
 
35013
   private:
 
35014
 
 
35015
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
35016
 bool _once ;
 
35017
public :
 
35018
 
 
35019
bool onlyOnce ( ) const { return _once ; }
 
35020
void onlyOnce ( bool v ) { _once = v ; }
 
35021
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
35022
 
 
35023
#line 35024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35024
 
 
35025
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
 
35026
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 __TJP;
 
35027
  typedef TResult Result;
 
35028
  typedef TThat   That;
 
35029
  typedef TTarget Target;
 
35030
  enum { ARGS = TArgs::ARGS };
 
35031
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
35032
  static const int JPID = 7482;
 
35033
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
35034
  struct Res {
 
35035
    typedef void Type;
 
35036
    typedef void ReferredType;
 
35037
  };
 
35038
 
 
35039
  That *_that;
 
35040
 
 
35041
  inline That *that() {return (That*)_that;}
 
35042
 
 
35043
};
 
35044
 
 
35045
 
 
35046
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
35047
 
 
35048
#line 35049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35049
 
 
35050
public:
 
35051
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
 
35052
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TL< const ::Puma::UnitState & , AC::TLE > > __TJP;
 
35053
  __TJP tjp;
 
35054
  tjp._that =  (__TJP::That*)this;
 
35055
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
35056
 
 
35057
}
 
35058
 
 
35059
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
35060
};
 
35061
 
 
35062
 
 
35063
#line 35064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35064
 
 
35065
 
 
35066
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1Ev_0 {
 
35067
  typedef TJP__ZN4Puma9UnitStateC1Ev_0 __TJP;
 
35068
  typedef TResult Result;
 
35069
  typedef TThat   That;
 
35070
  typedef TTarget Target;
 
35071
  enum { ARGS = TArgs::ARGS };
 
35072
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
35073
  static const int JPID = 7458;
 
35074
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
35075
  struct Res {
 
35076
    typedef void Type;
 
35077
    typedef void ReferredType;
 
35078
  };
 
35079
 
 
35080
  That *_that;
 
35081
 
 
35082
  inline That *that() {return (That*)_that;}
 
35083
 
 
35084
};
 
35085
 
 
35086
 
 
35087
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
35088
inline UnitState::UnitState ()
 
35089
 
 
35090
#line 35091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35091
{
 
35092
  typedef TJP__ZN4Puma9UnitStateC1Ev_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TLE > __TJP;
 
35093
    __TJP tjp;
 
35094
  tjp._that =  (__TJP::That*)this;
 
35095
    this->__exec_old_C1();
 
35096
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
35097
  
 
35098
}
 
35099
__attribute__((always_inline)) inline void Puma::UnitState::__exec_old_C1()
 
35100
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
35101
{ _modified = false; _updated = false; _lastModified = 0; }
 
35102
 
 
35103
inline bool UnitState::isModified () const 
 
35104
 { return _modified; }
 
35105
inline bool UnitState::isUpdated () const 
 
35106
 { return _updated; }
 
35107
inline long UnitState::lastModified () const
 
35108
 { return _lastModified; }
 
35109
 
 
35110
inline void UnitState::modified () 
 
35111
 { _modified = true; _updated = false; _lastModified = 0; }
 
35112
inline void UnitState::unmodified () 
 
35113
 { _modified = false; }
 
35114
inline void UnitState::updated () 
 
35115
 { _updated = true; }
 
35116
inline void UnitState::lastModified (long when) 
 
35117
 { _lastModified = when; }
 
35118
 
 
35119
 
 
35120
} // namespace Puma
 
35121
 
 
35122
#endif /* __UnitState__ */
 
35123
 
 
35124
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
35125
namespace Puma {
 
35126
 
 
35127
 
 
35128
 
 
35129
#line 35130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35130
} // closed Puma
 
35131
class CCExprResolve;
 
35132
class CExprResolve;
 
35133
class WinIfExists;
 
35134
class WinImportHandler;
 
35135
class WinMacros;
 
35136
class WinAsm;
 
35137
class WinDeclSpecs;
 
35138
class WinMemberExplSpec;
 
35139
class WinTypeKeywords;
 
35140
class WinFriend;
 
35141
class ExtAC;
 
35142
class ExtACBuilderCoupling;
 
35143
class ExtACSyntaxCoupling;
 
35144
class ExtACTree;
 
35145
class ExtACKeywords;
 
35146
class ExtGnu;
 
35147
class PragmaOnceUnitState;
 
35148
class PragmaOnce;
 
35149
class CMatchSyntax;
 
35150
namespace Puma {
 
35151
 
 
35152
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
35153
class Unit : public List, public Printable {
 
35154
#line 35155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35155
  friend class ::CCExprResolve;
 
35156
  friend class ::CExprResolve;
 
35157
  friend class ::WinIfExists;
 
35158
  friend class ::WinImportHandler;
 
35159
  friend class ::WinMacros;
 
35160
  friend class ::WinAsm;
 
35161
  friend class ::WinDeclSpecs;
 
35162
  friend class ::WinMemberExplSpec;
 
35163
  friend class ::WinTypeKeywords;
 
35164
  friend class ::WinFriend;
 
35165
  friend class ::ExtAC;
 
35166
  friend class ::ExtACBuilderCoupling;
 
35167
  friend class ::ExtACSyntaxCoupling;
 
35168
  friend class ::ExtACTree;
 
35169
  friend class ::ExtACKeywords;
 
35170
  friend class ::ExtGnu;
 
35171
  friend class ::PragmaOnceUnitState;
 
35172
  friend class ::PragmaOnce;
 
35173
  friend class ::CMatchSyntax;
 
35174
 
 
35175
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
35176
 
 
35177
  char *_name;
 
35178
  UnitState _state;
 
35179
 
 
35180
public:
 
35181
  Unit () : List (), _name ((char*)0) {}
 
35182
  Unit (const List &list) : List (list), _name ((char*)0) {}
 
35183
  virtual ~Unit ();
 
35184
  virtual void name (const char *);
 
35185
  char *name () const { return _name; }
 
35186
  virtual void print (ostream &os) const;
 
35187
  virtual bool isFile () const { return false; }
 
35188
  virtual bool isMacroExp () const { return false; }
 
35189
  UnitState &state () { return _state; }
 
35190
};
 
35191
 
 
35192
 
 
35193
} // namespace Puma
 
35194
 
 
35195
#endif /* __unit_h__ */
 
35196
 
 
35197
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
35198
namespace Puma {
 
35199
 
 
35200
 
 
35201
 
 
35202
#line 35203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35203
} // closed Puma
 
35204
class CCExprResolve;
 
35205
class CExprResolve;
 
35206
class WinIfExists;
 
35207
class WinImportHandler;
 
35208
class WinMacros;
 
35209
class WinAsm;
 
35210
class WinDeclSpecs;
 
35211
class WinMemberExplSpec;
 
35212
class WinTypeKeywords;
 
35213
class WinFriend;
 
35214
class ExtAC;
 
35215
class ExtACBuilderCoupling;
 
35216
class ExtACSyntaxCoupling;
 
35217
class ExtACTree;
 
35218
class ExtACKeywords;
 
35219
class ExtGnu;
 
35220
class PragmaOnceUnitState;
 
35221
class PragmaOnce;
 
35222
class CMatchSyntax;
 
35223
namespace Puma {
 
35224
 
 
35225
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
35226
class Tokenizer {
 
35227
#line 35228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35228
  friend class ::CCExprResolve;
 
35229
  friend class ::CExprResolve;
 
35230
  friend class ::WinIfExists;
 
35231
  friend class ::WinImportHandler;
 
35232
  friend class ::WinMacros;
 
35233
  friend class ::WinAsm;
 
35234
  friend class ::WinDeclSpecs;
 
35235
  friend class ::WinMemberExplSpec;
 
35236
  friend class ::WinTypeKeywords;
 
35237
  friend class ::WinFriend;
 
35238
  friend class ::ExtAC;
 
35239
  friend class ::ExtACBuilderCoupling;
 
35240
  friend class ::ExtACSyntaxCoupling;
 
35241
  friend class ::ExtACTree;
 
35242
  friend class ::ExtACKeywords;
 
35243
  friend class ::ExtGnu;
 
35244
  friend class ::PragmaOnceUnitState;
 
35245
  friend class ::PragmaOnce;
 
35246
  friend class ::CMatchSyntax;
 
35247
 
 
35248
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
35249
 
 
35250
public:
 
35251
  virtual ~Tokenizer () {}
 
35252
  virtual void fill_unit (Source &in, Unit &unit) = 0;
 
35253
};
 
35254
 
 
35255
 
 
35256
} // namespace Puma
 
35257
 
 
35258
#endif /* __Tokenizer_h__ */
 
35259
 
 
35260
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
35261
namespace Puma {
 
35262
 
 
35263
 
 
35264
class Token;
 
35265
 
 
35266
 
 
35267
#line 35268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35268
} // closed Puma
 
35269
class CCExprResolve;
 
35270
class CExprResolve;
 
35271
class WinIfExists;
 
35272
class WinImportHandler;
 
35273
class WinMacros;
 
35274
class WinAsm;
 
35275
class WinDeclSpecs;
 
35276
class WinMemberExplSpec;
 
35277
class WinTypeKeywords;
 
35278
class WinFriend;
 
35279
class ExtAC;
 
35280
class ExtACBuilderCoupling;
 
35281
class ExtACSyntaxCoupling;
 
35282
class ExtACTree;
 
35283
class ExtACKeywords;
 
35284
class ExtGnu;
 
35285
class PragmaOnceUnitState;
 
35286
class PragmaOnce;
 
35287
class CMatchSyntax;
 
35288
namespace Puma {
 
35289
 
 
35290
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
35291
class CScanner : public CRecognizer, public Tokenizer {
 
35292
#line 35293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35293
  friend class ::CCExprResolve;
 
35294
  friend class ::CExprResolve;
 
35295
  friend class ::WinIfExists;
 
35296
  friend class ::WinImportHandler;
 
35297
  friend class ::WinMacros;
 
35298
  friend class ::WinAsm;
 
35299
  friend class ::WinDeclSpecs;
 
35300
  friend class ::WinMemberExplSpec;
 
35301
  friend class ::WinTypeKeywords;
 
35302
  friend class ::WinFriend;
 
35303
  friend class ::ExtAC;
 
35304
  friend class ::ExtACBuilderCoupling;
 
35305
  friend class ::ExtACSyntaxCoupling;
 
35306
  friend class ::ExtACTree;
 
35307
  friend class ::ExtACKeywords;
 
35308
  friend class ::ExtGnu;
 
35309
  friend class ::PragmaOnceUnitState;
 
35310
  friend class ::PragmaOnce;
 
35311
  friend class ::CMatchSyntax;
 
35312
 
 
35313
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
35314
 
 
35315
  Location loc;
 
35316
  ErrorSink &err;
 
35317
 
 
35318
  Token *make_token (CRecognizer::Lang lang, int expr, int len);
 
35319
  LanguageID map_lang (CRecognizer::Lang lang);
 
35320
  Token *scan ();
 
35321
  void scan_all (Unit &unit);
 
35322
 
 
35323
public:
 
35324
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
 
35325
  virtual ~CScanner () {}
 
35326
  void configure (const Config &);
 
35327
  
 
35328
#line 35329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35329
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
35330
 
 
35331
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
35332
void fill_unit (Source &in, Unit &unit);
 
35333
  
 
35334
#line 35335 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35335
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
35336
 
 
35337
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
35338
void fill_unit (const char *in, Unit &unit);
 
35339
};
 
35340
 
 
35341
 
 
35342
} // namespace Puma
 
35343
 
 
35344
#endif /* __c_scanner_h__ */
 
35345
 
 
35346
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
35347
namespace Puma {
 
35348
 
 
35349
 
 
35350
class Source;
 
35351
class CTypeInfo;
 
35352
 
 
35353
 
 
35354
#line 35355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35355
} // closed Puma
 
35356
class CCExprResolve;
 
35357
class CExprResolve;
 
35358
class WinIfExists;
 
35359
class WinImportHandler;
 
35360
class WinMacros;
 
35361
class WinAsm;
 
35362
class WinDeclSpecs;
 
35363
class WinMemberExplSpec;
 
35364
class WinTypeKeywords;
 
35365
class WinFriend;
 
35366
class ExtAC;
 
35367
class ExtACBuilderCoupling;
 
35368
class ExtACSyntaxCoupling;
 
35369
class ExtACTree;
 
35370
class ExtACKeywords;
 
35371
class ExtGnu;
 
35372
class PragmaOnceUnitState;
 
35373
class PragmaOnce;
 
35374
class CMatchSyntax;
 
35375
namespace Puma {
 
35376
 
 
35377
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
35378
class CProject : public Project {
 
35379
#line 35380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35380
  friend class ::CCExprResolve;
 
35381
  friend class ::CExprResolve;
 
35382
  friend class ::WinIfExists;
 
35383
  friend class ::WinImportHandler;
 
35384
  friend class ::WinMacros;
 
35385
  friend class ::WinAsm;
 
35386
  friend class ::WinDeclSpecs;
 
35387
  friend class ::WinMemberExplSpec;
 
35388
  friend class ::WinTypeKeywords;
 
35389
  friend class ::WinFriend;
 
35390
  friend class ::ExtAC;
 
35391
  friend class ::ExtACBuilderCoupling;
 
35392
  friend class ::ExtACSyntaxCoupling;
 
35393
  friend class ::ExtACTree;
 
35394
  friend class ::ExtACKeywords;
 
35395
  friend class ::ExtGnu;
 
35396
  friend class ::PragmaOnceUnitState;
 
35397
  friend class ::PragmaOnce;
 
35398
  friend class ::CMatchSyntax;
 
35399
 
 
35400
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
35401
 
 
35402
  Config _config;
 
35403
  CScanner _scanner;
 
35404
 
 
35405
public:
 
35406
  CProject (ErrorStream &e);
 
35407
 
 
35408
  // Constructor: Add some source directories.
 
35409
  CProject (ErrorStream &, const char *defs, 
 
35410
               const char *decls = (const char*)0); 
 
35411
 
 
35412
  // Constructor: Setup preprocessor configuration according to
 
35413
  // command line parameter and the global config file and
 
35414
  // add some source directories.
 
35415
  CProject (ErrorStream &, int &argc, char **&argv, 
 
35416
            const char *defs = (const char*)0, 
 
35417
            const char *decls = (const char*)0);
 
35418
 
 
35419
public: // Project configuration 
 
35420
  // Get the preprocessor configuration.
 
35421
  Config &config ();
 
35422
 
 
35423
  // Configure the project from the command line or a file.
 
35424
  virtual void configure (Config &);
 
35425
 
 
35426
  // Add a new file to the project.
 
35427
  Unit *addFile (Filename file);
 
35428
 
 
35429
public: // Scanner interface
 
35430
  // Get the scanner.
 
35431
  CScanner &scanner ();
 
35432
 
 
35433
  // Scan the file `file' or the source if given. When
 
35434
  // scanning a source the resulting unit gets the name `file'.
 
35435
  
 
35436
#line 35437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35437
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
35438
 
 
35439
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
35440
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
 
35441
                          bool isFile = true);
 
35442
        
 
35443
  // Scan a string. The resulting unit gets the name `name'.
 
35444
  // (and will not be registered at the unit manager!)
 
35445
  virtual Unit *scanString (const char *str, 
 
35446
                            const char *name = (const char*)0);
 
35447
 
 
35448
public: // Miscellaneous Functions
 
35449
 
 
35450
  // Give the filename needed to include a particular header file
 
35451
  Filename getInclString (Filename filename);
 
35452
 
 
35453
private:
 
35454
  // Map the type string from --size-type and --ptrdiff-type
 
35455
  // to real Puma type.
 
35456
  CTypeInfo *mapType (const char *) const;
 
35457
};
 
35458
 
 
35459
inline Config &CProject::config () 
 
35460
 { return _config; }
 
35461
inline CScanner &CProject::scanner () 
 
35462
 { return _scanner; }
 
35463
 
 
35464
 
 
35465
} // namespace Puma
 
35466
 
 
35467
#endif /* __CProject_h__ */
 
35468
 
 
35469
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
35470
using namespace std;
 
35471
 
 
35472
namespace Puma {
 
35473
 
 
35474
 
 
35475
class CObjectInfo;
 
35476
class CClassInfo;
 
35477
class CUnionInfo;
 
35478
class CEnumInfo;
 
35479
class CTypedefInfo;
 
35480
class CTemplateParamInfo;
 
35481
class CTypeInfo;
 
35482
class CFileInfo;
 
35483
class Token;
 
35484
 
 
35485
/** \file 
 
35486
 *  Database of all semantic objects (infos) of a project. 
 
35487
 *  \see Puma::CClassDatabase */
 
35488
 
 
35489
/** \class CClassDatabase CClassDatabase.h Puma/infos/CClassDatabase.h
 
35490
 *  A CClassDatabase object is a database of all semantic objects
 
35491
 *  (infos) of a project. */
 
35492
 
 
35493
#line 35494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35494
} // closed Puma
 
35495
class CCExprResolve;
 
35496
class CExprResolve;
 
35497
class WinIfExists;
 
35498
class WinImportHandler;
 
35499
class WinMacros;
 
35500
class WinAsm;
 
35501
class WinDeclSpecs;
 
35502
class WinMemberExplSpec;
 
35503
class WinTypeKeywords;
 
35504
class WinFriend;
 
35505
class ExtAC;
 
35506
class ExtACBuilderCoupling;
 
35507
class ExtACSyntaxCoupling;
 
35508
class ExtACTree;
 
35509
class ExtACKeywords;
 
35510
class ExtGnu;
 
35511
class PragmaOnceUnitState;
 
35512
class PragmaOnce;
 
35513
class CMatchSyntax;
 
35514
namespace Puma {
 
35515
 
 
35516
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
35517
 
 
35518
#line 35519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35519
} // closed Puma
 
35520
 
 
35521
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
35522
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
35523
 
 
35524
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
35525
// This file is part of PUMA.
 
35526
// Copyright (C) 1999-2003  The PUMA developer team.
 
35527
//                                                                
 
35528
// This program is free software;  you can redistribute it and/or 
 
35529
// modify it under the terms of the GNU General Public License as 
 
35530
// published by the Free Software Foundation; either version 2 of 
 
35531
// the License, or (at your option) any later version.            
 
35532
//                                                                
 
35533
// This program is distributed in the hope that it will be useful,
 
35534
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
35535
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
35536
// GNU General Public License for more details.                   
 
35537
//                                                                
 
35538
// You should have received a copy of the GNU General Public      
 
35539
// License along with this program; if not, write to the Free     
 
35540
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
35541
// MA  02111-1307  USA                                            
 
35542
 
 
35543
#ifndef __ext_ac_ah__
 
35544
#define __ext_ac_ah__
 
35545
 
 
35546
 
 
35547
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35548
// This file is part of PUMA.
 
35549
// Copyright (C) 1999-2003  The PUMA developer team.
 
35550
//                                                                
 
35551
// This program is free software;  you can redistribute it and/or 
 
35552
// modify it under the terms of the GNU General Public License as 
 
35553
// published by the Free Software Foundation; either version 2 of 
 
35554
// the License, or (at your option) any later version.            
 
35555
//                                                                
 
35556
// This program is distributed in the hope that it will be useful,
 
35557
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
35558
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
35559
// GNU General Public License for more details.                   
 
35560
//                                                                
 
35561
// You should have received a copy of the GNU General Public      
 
35562
// License along with this program; if not, write to the Free     
 
35563
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
35564
// MA  02111-1307  USA                                            
 
35565
 
 
35566
#ifndef __ACTree_h__
 
35567
#define __ACTree_h__
 
35568
 
 
35569
 
 
35570
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35571
 
 
35572
#line 35573 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35573
 
 
35574
#ifndef __ac_fwd_ExtACTree__
 
35575
#define __ac_fwd_ExtACTree__
 
35576
class ExtACTree;
 
35577
namespace AC {
 
35578
  template <class JoinPoint>
 
35579
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
35580
  template <class JoinPoint>
 
35581
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
35582
}
 
35583
#endif
 
35584
 
 
35585
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
35586
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
35587
#endif
 
35588
 
 
35589
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35590
// This file is part of PUMA.
 
35591
// Copyright (C) 1999-2003  The PUMA developer team.
 
35592
//                                                                
 
35593
// This program is free software;  you can redistribute it and/or 
 
35594
// modify it under the terms of the GNU General Public License as 
 
35595
// published by the Free Software Foundation; either version 2 of 
 
35596
// the License, or (at your option) any later version.            
 
35597
//                                                                
 
35598
// This program is distributed in the hope that it will be useful,
 
35599
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
35600
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
35601
// GNU General Public License for more details.                   
 
35602
//                                                                
 
35603
// You should have received a copy of the GNU General Public      
 
35604
// License along with this program; if not, write to the Free     
 
35605
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
35606
// MA  02111-1307  USA                                            
 
35607
 
 
35608
#ifndef __CTree_h__
 
35609
#define __CTree_h__
 
35610
 
 
35611
namespace Puma {
 
35612
 
 
35613
 
 
35614
// Syntax tree node hierarchy:
 
35615
class CTree;
 
35616
class   CT_Statement;          
 
35617
class     CT_LabelStmt;
 
35618
class     CT_IfStmt;
 
35619
class     CT_IfElseStmt;
 
35620
class     CT_SwitchStmt;
 
35621
class     CT_BreakStmt;
 
35622
class     CT_ExprStmt;
 
35623
class     CT_WhileStmt;
 
35624
class     CT_DoStmt;
 
35625
class     CT_ForStmt;
 
35626
class     CT_ContinueStmt;
 
35627
class     CT_ReturnStmt;
 
35628
class     CT_GotoStmt;
 
35629
class     CT_DeclStmt;
 
35630
class     CT_CaseStmt;
 
35631
class     CT_DefaultStmt;
 
35632
class     CT_TryStmt;
 
35633
class   CT_Expression;
 
35634
class     CT_Call;
 
35635
class       CT_CallExpr;
 
35636
class       CT_ImplicitCall;
 
35637
class     CT_ThrowExpr;
 
35638
class     CT_NewExpr;
 
35639
class     CT_DeleteExpr;
 
35640
class     CT_ConstructExpr;
 
35641
class     CT_Integer;
 
35642
class     CT_Character;
 
35643
class       CT_WideCharacter;
 
35644
class     CT_Float;
 
35645
class     CT_Bool;
 
35646
class     CT_BracedExpr;
 
35647
class     CT_BinaryExpr;
 
35648
class       CT_MembPtrExpr;
 
35649
class         CT_MembRefExpr;
 
35650
class     CT_UnaryExpr;
 
35651
class       CT_PostfixExpr;
 
35652
class       CT_AddrExpr;
 
35653
class       CT_DerefExpr;
 
35654
class     CT_IfThenExpr;
 
35655
class     CT_CmpdLiteral;
 
35656
class     CT_IndexExpr;
 
35657
class     CT_CastExpr;
 
35658
class     CT_StaticCast;
 
35659
class       CT_ConstCast;
 
35660
class       CT_ReintCast;
 
35661
class       CT_DynamicCast;
 
35662
class     CT_TypeidExpr;
 
35663
class     CT_SizeofExpr;
 
35664
class     CT_MembDesignator;
 
35665
class     CT_IndexDesignator;
 
35666
class     CT_ImplicitCast;
 
35667
class   CT_DeclSpec;
 
35668
class     CT_PrimDeclSpec;
 
35669
class     CT_NamedType;
 
35670
class     CT_ClassSpec;
 
35671
class       CT_UnionSpec;
 
35672
class       CT_EnumSpec;
 
35673
class     CT_ExceptionSpec;
 
35674
class   CT_Declarator;
 
35675
class     CT_InitDeclarator;
 
35676
class     CT_BracedDeclarator;
 
35677
class     CT_ArrayDeclarator;
 
35678
class     CT_FctDeclarator;
 
35679
class     CT_RefDeclarator;
 
35680
class     CT_PtrDeclarator;
 
35681
class     CT_MembPtrDeclarator;
 
35682
class     CT_BitFieldDeclarator;
 
35683
class   CT_Decl;
 
35684
class     CT_ObjDecl;
 
35685
class     CT_ArgDecl;
 
35686
class     CT_AccessDecl;
 
35687
class       CT_UsingDecl;
 
35688
class     CT_FctDef;
 
35689
class     CT_AsmDef;
 
35690
class     CT_EnumDef;
 
35691
class     CT_ClassDef;
 
35692
class       CT_UnionDef;
 
35693
class     CT_Enumerator;
 
35694
class     CT_LinkageSpec;
 
35695
class     CT_Handler;
 
35696
class     CT_TemplateDecl;
 
35697
class     CT_TemplateParamDecl;
 
35698
class       CT_TypeParamDecl;
 
35699
class       CT_NonTypeParamDecl;
 
35700
class     CT_NamespaceDef;
 
35701
class     CT_NamespaceAliasDef;
 
35702
class     CT_UsingDirective;
 
35703
class     CT_Condition;
 
35704
class   CT_List;
 
35705
class     CT_CmpdStmt;
 
35706
class     CT_DeclSpecSeq;
 
35707
class     CT_HandlerSeq;
 
35708
class     CT_DesignatorSeq;
 
35709
class     CT_DeclList;
 
35710
class       CT_Program;
 
35711
class       CT_ArgDeclList;
 
35712
class         CT_ArgNameList;
 
35713
class       CT_ArgDeclSeq;
 
35714
class       CT_MembList;
 
35715
class     CT_ExprList;
 
35716
class     CT_DeclaratorList;
 
35717
class     CT_BaseSpecList;
 
35718
class     CT_MembInitList;
 
35719
class     CT_SimpleName;
 
35720
class       CT_SpecialName;
 
35721
class         CT_PrivateName;
 
35722
class         CT_OperatorName;
 
35723
class         CT_DestructorName;
 
35724
class         CT_ConversionName;
 
35725
class         CT_TemplateName;
 
35726
class       CT_QualName;
 
35727
class         CT_RootQualName;
 
35728
class     CT_String;
 
35729
class       CT_WideString;
 
35730
class     CT_TemplateParamList;
 
35731
class     CT_TemplateArgList;
 
35732
class   CT_Token;
 
35733
class   CT_Error;
 
35734
class   CT_BaseSpec;
 
35735
class   CT_AccessSpec;
 
35736
class   CT_ArrayDelimiter;
 
35737
class   CT_Any;
 
35738
class   CT_AnyList;
 
35739
class   CT_AnyExtension;
 
35740
class   CT_AnyCondition;
 
35741
 
 
35742
 
 
35743
} // namespace Puma
 
35744
 
 
35745
#include "Puma/ErrorSeverity.h"
 
35746
#include "Puma/CSemObject.h"
 
35747
#include "Puma/CSemScope.h"
 
35748
#include "Puma/CSemValue.h"
 
35749
#include "Puma/CExprValue.h"
 
35750
#include "Puma/CStrLiteral.h"
 
35751
#include "Puma/CTypeInfo.h"
 
35752
#include "Puma/Printable.h"
 
35753
#include "Puma/CTokens.h"
 
35754
#include "Puma/Token.h"
 
35755
 
 
35756
#include <iostream>
 
35757
#include <string.h>
 
35758
using namespace std;
 
35759
 
 
35760
namespace Puma {
 
35761
 
 
35762
 
 
35763
class ErrorStream;
 
35764
class CObjectInfo;
 
35765
class CStructure;
 
35766
 
 
35767
/*****************************************************************************/
 
35768
/*                                                                           */
 
35769
/*                    S y n t a x  t r e e  n o d e s                        */
 
35770
/*                                                                           */
 
35771
/*****************************************************************************/
 
35772
 
 
35773
/** \file
 
35774
 *  C/C++ syntax tree classes.
 
35775
 *  \see Puma::CTree */
 
35776
 
 
35777
/** \class CTree CTree.h Puma/CTree.h
 
35778
 *  Base class for all C/C++ syntax tree classes. */
 
35779
 
 
35780
#line 35781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35781
} // closed Puma
 
35782
class CCExprResolve;
 
35783
class CExprResolve;
 
35784
class WinIfExists;
 
35785
class WinImportHandler;
 
35786
class WinMacros;
 
35787
class WinAsm;
 
35788
class WinDeclSpecs;
 
35789
class WinMemberExplSpec;
 
35790
class WinTypeKeywords;
 
35791
class WinFriend;
 
35792
class ExtAC;
 
35793
class ExtACBuilderCoupling;
 
35794
class ExtACSyntaxCoupling;
 
35795
class ExtACTree;
 
35796
class ExtACKeywords;
 
35797
class ExtGnu;
 
35798
class PragmaOnceUnitState;
 
35799
class PragmaOnce;
 
35800
class CMatchSyntax;
 
35801
namespace Puma {
 
35802
 
 
35803
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35804
 
 
35805
#line 35806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35806
} // closed Puma
 
35807
 
 
35808
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35809
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35810
#include "CCExprResolveH.ah"
 
35811
#endif
 
35812
namespace Puma {
 
35813
 
 
35814
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35815
 
 
35816
#line 35817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35817
} // closed Puma
 
35818
 
 
35819
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35820
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35821
#include "CExprResolveH.ah"
 
35822
#endif
 
35823
namespace Puma {
 
35824
 
 
35825
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35826
class CTree {
 
35827
#line 35828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35828
  friend class ::CCExprResolve;
 
35829
  friend class ::CExprResolve;
 
35830
  friend class ::WinIfExists;
 
35831
  friend class ::WinImportHandler;
 
35832
  friend class ::WinMacros;
 
35833
  friend class ::WinAsm;
 
35834
  friend class ::WinDeclSpecs;
 
35835
  friend class ::WinMemberExplSpec;
 
35836
  friend class ::WinTypeKeywords;
 
35837
  friend class ::WinFriend;
 
35838
  friend class ::ExtAC;
 
35839
  friend class ::ExtACBuilderCoupling;
 
35840
  friend class ::ExtACSyntaxCoupling;
 
35841
  friend class ::ExtACTree;
 
35842
  friend class ::ExtACKeywords;
 
35843
  friend class ::ExtGnu;
 
35844
  friend class ::PragmaOnceUnitState;
 
35845
  friend class ::PragmaOnce;
 
35846
  friend class ::CMatchSyntax;
 
35847
 
 
35848
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35849
 
 
35850
  CTree * _parent;
 
35851
 
 
35852
public:
 
35853
  /*DEBUG*/static int alloc;
 
35854
  /*DEBUG*/static int release;
 
35855
 
 
35856
protected:
 
35857
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
35858
   *  \param sons The sons array.
 
35859
   *  \param len Length of the sons array.
 
35860
   *  \param n Index of the son.
 
35861
   *  \return The n-th son or NULL. */
 
35862
  CTree *Son (CTree * const *sons, int len, int n) const;
 
35863
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
35864
   *  \param sons The sons array.
 
35865
   *  \param len Length of the sons array. */
 
35866
  int Sons (CTree * const *sons, int len) const;
 
35867
  /** Replace a son.
 
35868
   *  \param sons The sons array.
 
35869
   *  \param len Length of the sons array.
 
35870
   *  \param old_son The son to replace.
 
35871
   *  \param new_son The new son. */
 
35872
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
35873
  /** Replace a son if it equals the given son.
 
35874
   *  \param son The actual son.
 
35875
   *  \param old_son The son to replace, must match the actual son.
 
35876
   *  \param new_son The new son, overwrites the actual son. */
 
35877
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
35878
  /** Add a new son.
 
35879
   *  \param son The actual son.
 
35880
   *  \param new_son The new son, overwrites the actual son. */
 
35881
  void AddSon (CTree *&son, CTree *new_son);
 
35882
  /** Set the parent tree node.
 
35883
   *  \param parent The new parent tree node. */
 
35884
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
35885
  /** Set the parent tree node of the given tree node.
 
35886
   *  \param node The tree node.
 
35887
   *  \param parent The new parent. */
 
35888
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
35889
  
 
35890
protected:
 
35891
  /** Default constructor. */
 
35892
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
35893
 
 
35894
public:
 
35895
  /** Destructor. */
 
35896
  virtual ~CTree () { /*DEBUG*/release++; }
 
35897
  /** Get the number of sons. */
 
35898
  virtual int Sons () const = 0;
 
35899
  /** Get the n-th son.
 
35900
   *  \param n The index of the son.
 
35901
   *  \return The n-th son or NULL. */
 
35902
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
35903
  /** Get the node name (node identifier). */
 
35904
  virtual const char *NodeName () const = 0;
 
35905
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
35906
   *  \return The token or NULL. */
 
35907
  virtual Token *token () const;
 
35908
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
35909
   *  \return The token or NULL. */
 
35910
  virtual Token *end_token () const;
 
35911
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
35912
   *  \return The token node or NULL. */
 
35913
  virtual CT_Token *token_node () const;
 
35914
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
35915
   *  \return The token node or NULL. */
 
35916
  virtual CT_Token *end_token_node () const;
 
35917
  /** Replace a son.
 
35918
   *  \param old_son The son to replace.
 
35919
   *  \param new_son The son with which to replace. */
 
35920
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
35921
  /** Get the parent node.
 
35922
   *  \return The parent node or NULL. */
 
35923
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
35924
 
 
35925
public: // semantic information
 
35926
  /** Get the semantic type of the node.
 
35927
   *  \return The type object or NULL. */
 
35928
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
35929
  /** Get the calculated value of the expression.
 
35930
   *  \return The value object or NULL. */
 
35931
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
35932
  
 
35933
  /** Get the semantic scope of the node.
 
35934
   *  \return The scope object or NULL. */
 
35935
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
35936
  /** Get the semantic value of the node.
 
35937
   *  \return The value object or NULL. */
 
35938
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
35939
  /** Get the semantic object of the node.
 
35940
   *  \return The semantic object or NULL. */
 
35941
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
35942
  
 
35943
public: // node classification function
 
35944
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
35945
   *  \return The CT_SimpleName node or NULL. */
 
35946
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
35947
  /** Get a pointer to CT_String if the current node represents a string.
 
35948
   *  \return The CT_String node or NULL. */
 
35949
  virtual CT_String *IsString () { return 0; }
 
35950
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
35951
   *  \return The CT_Declarator pointer or NULL. */
 
35952
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
35953
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
35954
   *  \return The CT_Statement pointer or NULL. */
 
35955
  virtual CT_Statement *IsStatement () { return 0; }
 
35956
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
35957
   *  \return The CT_Expression pointer or NULL. */
 
35958
  virtual CT_Expression *IsExpression () { return 0; }
 
35959
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
35960
   *  \return The CT_Decl pointer or NULL. */
 
35961
  virtual CT_Decl *IsDeclaration () { return 0; }
 
35962
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
35963
   *  \return The CT_Call pointer or NULL. */
 
35964
  virtual CT_Call *IsCall () { return 0; }
 
35965
   private:
 
35966
  typedef CTree CCExprResolveCTree;
 
35967
 
 
35968
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35969
 public :
 
35970
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35971
  typedef CTree CExprResolveCTree;
 
35972
 
 
35973
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35974
 public :
 
35975
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35976
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35977
};
 
35978
 
 
35979
/** \class CT_Error CTree.h Puma/CTree.h
 
35980
 *  Error tree node that is inserted into the tree for syntactic constructs
 
35981
 *  that could not be parsed. */
 
35982
 
 
35983
#line 35984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
35984
} // closed Puma
 
35985
class CCExprResolve;
 
35986
class CExprResolve;
 
35987
class WinIfExists;
 
35988
class WinImportHandler;
 
35989
class WinMacros;
 
35990
class WinAsm;
 
35991
class WinDeclSpecs;
 
35992
class WinMemberExplSpec;
 
35993
class WinTypeKeywords;
 
35994
class WinFriend;
 
35995
class ExtAC;
 
35996
class ExtACBuilderCoupling;
 
35997
class ExtACSyntaxCoupling;
 
35998
class ExtACTree;
 
35999
class ExtACKeywords;
 
36000
class ExtGnu;
 
36001
class PragmaOnceUnitState;
 
36002
class PragmaOnce;
 
36003
class CMatchSyntax;
 
36004
namespace Puma {
 
36005
 
 
36006
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36007
class CT_Error : public CTree {
 
36008
#line 36009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36009
  friend class ::CCExprResolve;
 
36010
  friend class ::CExprResolve;
 
36011
  friend class ::WinIfExists;
 
36012
  friend class ::WinImportHandler;
 
36013
  friend class ::WinMacros;
 
36014
  friend class ::WinAsm;
 
36015
  friend class ::WinDeclSpecs;
 
36016
  friend class ::WinMemberExplSpec;
 
36017
  friend class ::WinTypeKeywords;
 
36018
  friend class ::WinFriend;
 
36019
  friend class ::ExtAC;
 
36020
  friend class ::ExtACBuilderCoupling;
 
36021
  friend class ::ExtACSyntaxCoupling;
 
36022
  friend class ::ExtACTree;
 
36023
  friend class ::ExtACKeywords;
 
36024
  friend class ::ExtGnu;
 
36025
  friend class ::PragmaOnceUnitState;
 
36026
  friend class ::PragmaOnce;
 
36027
  friend class ::CMatchSyntax;
 
36028
 
 
36029
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36030
 
 
36031
public:
 
36032
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36033
  static const char *NodeId ();
 
36034
  /** Get the name of the node. Can be compared with NodeId(). */
 
36035
  const char *NodeName () const { return NodeId (); }
 
36036
  /** Get the number of sons. */
 
36037
  int Sons () const { return 0; }
 
36038
};
 
36039
 
 
36040
/** \class CT_Token CTree.h Puma/CTree.h
 
36041
 *  Tree node representing a single token in the source code. */
 
36042
 
 
36043
#line 36044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36044
} // closed Puma
 
36045
class CCExprResolve;
 
36046
class CExprResolve;
 
36047
class WinIfExists;
 
36048
class WinImportHandler;
 
36049
class WinMacros;
 
36050
class WinAsm;
 
36051
class WinDeclSpecs;
 
36052
class WinMemberExplSpec;
 
36053
class WinTypeKeywords;
 
36054
class WinFriend;
 
36055
class ExtAC;
 
36056
class ExtACBuilderCoupling;
 
36057
class ExtACSyntaxCoupling;
 
36058
class ExtACTree;
 
36059
class ExtACKeywords;
 
36060
class ExtGnu;
 
36061
class PragmaOnceUnitState;
 
36062
class PragmaOnce;
 
36063
class CMatchSyntax;
 
36064
namespace Puma {
 
36065
 
 
36066
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36067
class CT_Token : public CTree {
 
36068
#line 36069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36069
  friend class ::CCExprResolve;
 
36070
  friend class ::CExprResolve;
 
36071
  friend class ::WinIfExists;
 
36072
  friend class ::WinImportHandler;
 
36073
  friend class ::WinMacros;
 
36074
  friend class ::WinAsm;
 
36075
  friend class ::WinDeclSpecs;
 
36076
  friend class ::WinMemberExplSpec;
 
36077
  friend class ::WinTypeKeywords;
 
36078
  friend class ::WinFriend;
 
36079
  friend class ::ExtAC;
 
36080
  friend class ::ExtACBuilderCoupling;
 
36081
  friend class ::ExtACSyntaxCoupling;
 
36082
  friend class ::ExtACTree;
 
36083
  friend class ::ExtACKeywords;
 
36084
  friend class ::ExtGnu;
 
36085
  friend class ::PragmaOnceUnitState;
 
36086
  friend class ::PragmaOnce;
 
36087
  friend class ::CMatchSyntax;
 
36088
 
 
36089
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36090
 
 
36091
  Token *_token;
 
36092
  unsigned long int _number;
 
36093
  
 
36094
public:
 
36095
  /** Constructor. 
 
36096
   *  \param token The represented token.
 
36097
   *  \param number The token number (a consecutive number). */
 
36098
  CT_Token (Token *token, unsigned long int number = 0) : 
 
36099
    _token (token), _number (number) {}
 
36100
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36101
  static const char *NodeId ();
 
36102
  /** Get the name of the node. Can be compared with NodeId(). */
 
36103
  const char *NodeName () const { return NodeId (); }
 
36104
  /** Get the number of sons. */
 
36105
  int Sons () const { return 0; }
 
36106
  /** Get the represented token. */
 
36107
  Token *token () const { return _token; }
 
36108
  /** Get the represented token. */
 
36109
  Token *end_token () const { return _token; }
 
36110
  /** Get this. */
 
36111
  CT_Token *token_node () const { return (CT_Token*)this; }
 
36112
  /** Get this. */
 
36113
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
36114
  /** Set the token number. 
 
36115
   *  \param number The token number. */ 
 
36116
  void Number (unsigned long int number) { _number = number; }
 
36117
  /** Get the token number. Can be used to indentify this token. */
 
36118
  unsigned long int Number () const { return _number; }
 
36119
  
 
36120
public:
 
36121
  /** Own new operator reusing memory. */
 
36122
  void *operator new (size_t);
 
36123
  /** Own delete operator. */
 
36124
  void operator delete (void *);
 
36125
};
 
36126
 
 
36127
/*****************************************************************************/
 
36128
/*                                                                           */
 
36129
/*                              List nodes                                   */
 
36130
/*                                                                           */
 
36131
/*****************************************************************************/
 
36132
 
 
36133
/** \class CT_List CTree.h Puma/CTree.h
 
36134
 *  Base class for tree nodes representing lists. */
 
36135
 
 
36136
#line 36137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36137
} // closed Puma
 
36138
class CCExprResolve;
 
36139
class CExprResolve;
 
36140
class WinIfExists;
 
36141
class WinImportHandler;
 
36142
class WinMacros;
 
36143
class WinAsm;
 
36144
class WinDeclSpecs;
 
36145
class WinMemberExplSpec;
 
36146
class WinTypeKeywords;
 
36147
class WinFriend;
 
36148
class ExtAC;
 
36149
class ExtACBuilderCoupling;
 
36150
class ExtACSyntaxCoupling;
 
36151
class ExtACTree;
 
36152
class ExtACKeywords;
 
36153
class ExtGnu;
 
36154
class PragmaOnceUnitState;
 
36155
class PragmaOnce;
 
36156
class CMatchSyntax;
 
36157
namespace Puma {
 
36158
 
 
36159
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36160
class CT_List : public CTree {
 
36161
#line 36162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36162
  friend class ::CCExprResolve;
 
36163
  friend class ::CExprResolve;
 
36164
  friend class ::WinIfExists;
 
36165
  friend class ::WinImportHandler;
 
36166
  friend class ::WinMacros;
 
36167
  friend class ::WinAsm;
 
36168
  friend class ::WinDeclSpecs;
 
36169
  friend class ::WinMemberExplSpec;
 
36170
  friend class ::WinTypeKeywords;
 
36171
  friend class ::WinFriend;
 
36172
  friend class ::ExtAC;
 
36173
  friend class ::ExtACBuilderCoupling;
 
36174
  friend class ::ExtACSyntaxCoupling;
 
36175
  friend class ::ExtACTree;
 
36176
  friend class ::ExtACKeywords;
 
36177
  friend class ::ExtGnu;
 
36178
  friend class ::PragmaOnceUnitState;
 
36179
  friend class ::PragmaOnce;
 
36180
  friend class ::CMatchSyntax;
 
36181
 
 
36182
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36183
 
 
36184
  Array<CTree*> _sons;
 
36185
  int _properties;
 
36186
 
 
36187
protected:
 
36188
  /** Constructor.
 
36189
   *  \param size The initial list size.
 
36190
   *  \param incr The initial increment count. 
 
36191
   *  \param props The list properties (bit array). */
 
36192
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
36193
    _sons (size, incr), _properties (props) {}
 
36194
 
 
36195
public:
 
36196
  /** List properties. */
 
36197
  enum {
 
36198
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
36199
    CLOSE = 2,        /** List has an end token */
 
36200
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
36201
    SEPARATORS = 4,   /** List has separators, like ',' */
 
36202
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
36203
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
36204
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
36205
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
36206
  };
 
36207
 
 
36208
  /** Get the number of list entries. */
 
36209
  int Entries () const;
 
36210
  /** Get the n-th list entry.
 
36211
   *  \param n The index of the entry. 
 
36212
   *  \return The list entry or NULL. */
 
36213
  CTree *Entry (int n) const;
 
36214
  /** Get the number of sons. */
 
36215
  int Sons () const { return _sons.length (); }
 
36216
  /** Get the n-th son.
 
36217
   *  \param n The index of the son. 
 
36218
   *  \return The n-th son or NULL. */
 
36219
  CTree *Son (int n) const { return _sons.lookup (n); }
 
36220
  /** Get the list properties. */
 
36221
  int GetProperties () const { return _properties; }
 
36222
  /** Add a list property.
 
36223
   *  \param p The property to add. */
 
36224
  void AddProperties (int p) { _properties |= p; }
 
36225
  /** Add a son.
 
36226
   *  \param s The son to add. */
 
36227
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
36228
  /** Prepend a son.
 
36229
   *  \param s The son to prepend. */
 
36230
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
36231
  /** Insert a son before another son.
 
36232
   *  \param before The son to insert the new son before.
 
36233
   *  \param son The son to insert. */
 
36234
  void InsertSon (CTree *before, CTree *son); 
 
36235
  /** Replace a son.
 
36236
   *  \param old_son The son to replace.
 
36237
   *  \param new_son The new son. */
 
36238
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
36239
  /** Remove a son.
 
36240
   *  \param son The son to remove. */
 
36241
  void RemoveSon (CTree *son);
 
36242
  /** Insert a son at the given index. 
 
36243
   *  \param idx The index at which to insert.
 
36244
   *  \param s The son to insert. */
 
36245
  void InsertSon (int idx, CTree *s)
 
36246
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
36247
  /** Replace the son at the given index.
 
36248
   *  \param idx The index of the son to replace.
 
36249
   *  \param s The new son. */
 
36250
  void ReplaceSon (int idx, CTree *s) 
 
36251
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
36252
  /** Remove the son at the given index. 
 
36253
   *  \param idx The index of the son to remove. */
 
36254
  void RemoveSon (int idx) 
 
36255
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
36256
};
 
36257
 
 
36258
/** \class CT_ExprList CTree.h Puma/CTree.h
 
36259
 *  Tree node representing an expression list. */
 
36260
 
 
36261
#line 36262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36262
} // closed Puma
 
36263
class CCExprResolve;
 
36264
class CExprResolve;
 
36265
class WinIfExists;
 
36266
class WinImportHandler;
 
36267
class WinMacros;
 
36268
class WinAsm;
 
36269
class WinDeclSpecs;
 
36270
class WinMemberExplSpec;
 
36271
class WinTypeKeywords;
 
36272
class WinFriend;
 
36273
class ExtAC;
 
36274
class ExtACBuilderCoupling;
 
36275
class ExtACSyntaxCoupling;
 
36276
class ExtACTree;
 
36277
class ExtACKeywords;
 
36278
class ExtGnu;
 
36279
class PragmaOnceUnitState;
 
36280
class PragmaOnce;
 
36281
class CMatchSyntax;
 
36282
namespace Puma {
 
36283
 
 
36284
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36285
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
36286
#line 36287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36287
  friend class ::CCExprResolve;
 
36288
  friend class ::CExprResolve;
 
36289
  friend class ::WinIfExists;
 
36290
  friend class ::WinImportHandler;
 
36291
  friend class ::WinMacros;
 
36292
  friend class ::WinAsm;
 
36293
  friend class ::WinDeclSpecs;
 
36294
  friend class ::WinMemberExplSpec;
 
36295
  friend class ::WinTypeKeywords;
 
36296
  friend class ::WinFriend;
 
36297
  friend class ::ExtAC;
 
36298
  friend class ::ExtACBuilderCoupling;
 
36299
  friend class ::ExtACSyntaxCoupling;
 
36300
  friend class ::ExtACTree;
 
36301
  friend class ::ExtACKeywords;
 
36302
  friend class ::ExtGnu;
 
36303
  friend class ::PragmaOnceUnitState;
 
36304
  friend class ::PragmaOnce;
 
36305
  friend class ::CMatchSyntax;
 
36306
 
 
36307
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36308
 
 
36309
public:
 
36310
  /** Constructor. */
 
36311
  CT_ExprList () { AddProperties (SEPARATORS); }
 
36312
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36313
  static const char *NodeId ();
 
36314
  /** Get the name of the node. Can be compared with NodeId(). */
 
36315
  const char *NodeName () const { return NodeId (); }
 
36316
 
 
36317
  /** Get the type of the last expression in the expression list.
 
36318
   *  \return The type or NULL. */
 
36319
  CTypeInfo *Type () const { return type; }
 
36320
  /** Get the value of the last expression in the expression list.
 
36321
   *  \return The value of NULL. */
 
36322
  CExprValue *Value () const { return value; }
 
36323
  /** Get the semantic value of the node. */
 
36324
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
36325
  /** Get the semantic object of the node. */
 
36326
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36327
};
 
36328
 
 
36329
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
36330
 *  Tree node representing a list of declarators. */
 
36331
 
 
36332
#line 36333 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36333
} // closed Puma
 
36334
class CCExprResolve;
 
36335
class CExprResolve;
 
36336
class WinIfExists;
 
36337
class WinImportHandler;
 
36338
class WinMacros;
 
36339
class WinAsm;
 
36340
class WinDeclSpecs;
 
36341
class WinMemberExplSpec;
 
36342
class WinTypeKeywords;
 
36343
class WinFriend;
 
36344
class ExtAC;
 
36345
class ExtACBuilderCoupling;
 
36346
class ExtACSyntaxCoupling;
 
36347
class ExtACTree;
 
36348
class ExtACKeywords;
 
36349
class ExtGnu;
 
36350
class PragmaOnceUnitState;
 
36351
class PragmaOnce;
 
36352
class CMatchSyntax;
 
36353
namespace Puma {
 
36354
 
 
36355
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36356
class CT_DeclaratorList : public CT_List {
 
36357
#line 36358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36358
  friend class ::CCExprResolve;
 
36359
  friend class ::CExprResolve;
 
36360
  friend class ::WinIfExists;
 
36361
  friend class ::WinImportHandler;
 
36362
  friend class ::WinMacros;
 
36363
  friend class ::WinAsm;
 
36364
  friend class ::WinDeclSpecs;
 
36365
  friend class ::WinMemberExplSpec;
 
36366
  friend class ::WinTypeKeywords;
 
36367
  friend class ::WinFriend;
 
36368
  friend class ::ExtAC;
 
36369
  friend class ::ExtACBuilderCoupling;
 
36370
  friend class ::ExtACSyntaxCoupling;
 
36371
  friend class ::ExtACTree;
 
36372
  friend class ::ExtACKeywords;
 
36373
  friend class ::ExtGnu;
 
36374
  friend class ::PragmaOnceUnitState;
 
36375
  friend class ::PragmaOnce;
 
36376
  friend class ::CMatchSyntax;
 
36377
 
 
36378
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36379
 
 
36380
public:
 
36381
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36382
  static const char *NodeId ();
 
36383
  /** Get the name of the node. Can be compared with NodeId(). */
 
36384
  const char *NodeName () const { return NodeId (); }
 
36385
};
 
36386
 
 
36387
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
36388
 *  Tree node representing a list of enumerator constants. */
 
36389
 
 
36390
#line 36391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36391
} // closed Puma
 
36392
class CCExprResolve;
 
36393
class CExprResolve;
 
36394
class WinIfExists;
 
36395
class WinImportHandler;
 
36396
class WinMacros;
 
36397
class WinAsm;
 
36398
class WinDeclSpecs;
 
36399
class WinMemberExplSpec;
 
36400
class WinTypeKeywords;
 
36401
class WinFriend;
 
36402
class ExtAC;
 
36403
class ExtACBuilderCoupling;
 
36404
class ExtACSyntaxCoupling;
 
36405
class ExtACTree;
 
36406
class ExtACKeywords;
 
36407
class ExtGnu;
 
36408
class PragmaOnceUnitState;
 
36409
class PragmaOnce;
 
36410
class CMatchSyntax;
 
36411
namespace Puma {
 
36412
 
 
36413
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36414
class CT_EnumeratorList : public CT_List {
 
36415
#line 36416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36416
  friend class ::CCExprResolve;
 
36417
  friend class ::CExprResolve;
 
36418
  friend class ::WinIfExists;
 
36419
  friend class ::WinImportHandler;
 
36420
  friend class ::WinMacros;
 
36421
  friend class ::WinAsm;
 
36422
  friend class ::WinDeclSpecs;
 
36423
  friend class ::WinMemberExplSpec;
 
36424
  friend class ::WinTypeKeywords;
 
36425
  friend class ::WinFriend;
 
36426
  friend class ::ExtAC;
 
36427
  friend class ::ExtACBuilderCoupling;
 
36428
  friend class ::ExtACSyntaxCoupling;
 
36429
  friend class ::ExtACTree;
 
36430
  friend class ::ExtACKeywords;
 
36431
  friend class ::ExtGnu;
 
36432
  friend class ::PragmaOnceUnitState;
 
36433
  friend class ::PragmaOnce;
 
36434
  friend class ::CMatchSyntax;
 
36435
 
 
36436
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36437
 
 
36438
public:
 
36439
  /** Constructor. */
 
36440
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
36441
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36442
  static const char *NodeId ();
 
36443
  /** Get the name of the node. Can be compared with NodeId(). */
 
36444
  const char *NodeName () const { return NodeId (); }
 
36445
};
 
36446
   
 
36447
/** \class CT_DeclList CTree.h Puma/CTree.h
 
36448
 *  Tree node representing a list of declarations. */
 
36449
 
 
36450
#line 36451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36451
} // closed Puma
 
36452
class CCExprResolve;
 
36453
class CExprResolve;
 
36454
class WinIfExists;
 
36455
class WinImportHandler;
 
36456
class WinMacros;
 
36457
class WinAsm;
 
36458
class WinDeclSpecs;
 
36459
class WinMemberExplSpec;
 
36460
class WinTypeKeywords;
 
36461
class WinFriend;
 
36462
class ExtAC;
 
36463
class ExtACBuilderCoupling;
 
36464
class ExtACSyntaxCoupling;
 
36465
class ExtACTree;
 
36466
class ExtACKeywords;
 
36467
class ExtGnu;
 
36468
class PragmaOnceUnitState;
 
36469
class PragmaOnce;
 
36470
class CMatchSyntax;
 
36471
namespace Puma {
 
36472
 
 
36473
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36474
class CT_DeclList : public CT_List {
 
36475
#line 36476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36476
  friend class ::CCExprResolve;
 
36477
  friend class ::CExprResolve;
 
36478
  friend class ::WinIfExists;
 
36479
  friend class ::WinImportHandler;
 
36480
  friend class ::WinMacros;
 
36481
  friend class ::WinAsm;
 
36482
  friend class ::WinDeclSpecs;
 
36483
  friend class ::WinMemberExplSpec;
 
36484
  friend class ::WinTypeKeywords;
 
36485
  friend class ::WinFriend;
 
36486
  friend class ::ExtAC;
 
36487
  friend class ::ExtACBuilderCoupling;
 
36488
  friend class ::ExtACSyntaxCoupling;
 
36489
  friend class ::ExtACTree;
 
36490
  friend class ::ExtACKeywords;
 
36491
  friend class ::ExtGnu;
 
36492
  friend class ::PragmaOnceUnitState;
 
36493
  friend class ::PragmaOnce;
 
36494
  friend class ::CMatchSyntax;
 
36495
 
 
36496
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36497
 
 
36498
public:
 
36499
  /** Constructor. 
 
36500
   *  \param size The initial size of the list.
 
36501
   *  \param incr The initial increment count of the list. */
 
36502
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
36503
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36504
  static const char *NodeId ();
 
36505
  /** Get the name of the node. Can be compared with NodeId(). */
 
36506
  const char *NodeName () const { return NodeId (); }
 
36507
  /** Set the linkage specifiers to each declaration in the list.
 
36508
   *  \param l The linkage specifiers node. */
 
36509
  void Linkage (CT_LinkageSpec *l);
 
36510
};
 
36511
 
 
36512
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
36513
 *  Tree node representing a sequence of declaration specifiers. */
 
36514
 
 
36515
#line 36516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36516
} // closed Puma
 
36517
class CCExprResolve;
 
36518
class CExprResolve;
 
36519
class WinIfExists;
 
36520
class WinImportHandler;
 
36521
class WinMacros;
 
36522
class WinAsm;
 
36523
class WinDeclSpecs;
 
36524
class WinMemberExplSpec;
 
36525
class WinTypeKeywords;
 
36526
class WinFriend;
 
36527
class ExtAC;
 
36528
class ExtACBuilderCoupling;
 
36529
class ExtACSyntaxCoupling;
 
36530
class ExtACTree;
 
36531
class ExtACKeywords;
 
36532
class ExtGnu;
 
36533
class PragmaOnceUnitState;
 
36534
class PragmaOnce;
 
36535
class CMatchSyntax;
 
36536
namespace Puma {
 
36537
 
 
36538
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36539
class CT_DeclSpecSeq : public CT_List {
 
36540
#line 36541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36541
  friend class ::CCExprResolve;
 
36542
  friend class ::CExprResolve;
 
36543
  friend class ::WinIfExists;
 
36544
  friend class ::WinImportHandler;
 
36545
  friend class ::WinMacros;
 
36546
  friend class ::WinAsm;
 
36547
  friend class ::WinDeclSpecs;
 
36548
  friend class ::WinMemberExplSpec;
 
36549
  friend class ::WinTypeKeywords;
 
36550
  friend class ::WinFriend;
 
36551
  friend class ::ExtAC;
 
36552
  friend class ::ExtACBuilderCoupling;
 
36553
  friend class ::ExtACSyntaxCoupling;
 
36554
  friend class ::ExtACTree;
 
36555
  friend class ::ExtACKeywords;
 
36556
  friend class ::ExtGnu;
 
36557
  friend class ::PragmaOnceUnitState;
 
36558
  friend class ::PragmaOnce;
 
36559
  friend class ::CMatchSyntax;
 
36560
 
 
36561
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36562
 
 
36563
public:
 
36564
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36565
  static const char *NodeId ();
 
36566
  /** Get the name of the node. Can be compared with NodeId(). */
 
36567
  const char *NodeName () const { return NodeId (); }
 
36568
};
 
36569
 
 
36570
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
36571
 *  Tree node representing a compound statement. */
 
36572
 
 
36573
#line 36574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36574
} // closed Puma
 
36575
class CCExprResolve;
 
36576
class CExprResolve;
 
36577
class WinIfExists;
 
36578
class WinImportHandler;
 
36579
class WinMacros;
 
36580
class WinAsm;
 
36581
class WinDeclSpecs;
 
36582
class WinMemberExplSpec;
 
36583
class WinTypeKeywords;
 
36584
class WinFriend;
 
36585
class ExtAC;
 
36586
class ExtACBuilderCoupling;
 
36587
class ExtACSyntaxCoupling;
 
36588
class ExtACTree;
 
36589
class ExtACKeywords;
 
36590
class ExtGnu;
 
36591
class PragmaOnceUnitState;
 
36592
class PragmaOnce;
 
36593
class CMatchSyntax;
 
36594
namespace Puma {
 
36595
 
 
36596
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36597
class CT_CmpdStmt : public CT_List, public CSemScope {
 
36598
#line 36599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36599
  friend class ::CCExprResolve;
 
36600
  friend class ::CExprResolve;
 
36601
  friend class ::WinIfExists;
 
36602
  friend class ::WinImportHandler;
 
36603
  friend class ::WinMacros;
 
36604
  friend class ::WinAsm;
 
36605
  friend class ::WinDeclSpecs;
 
36606
  friend class ::WinMemberExplSpec;
 
36607
  friend class ::WinTypeKeywords;
 
36608
  friend class ::WinFriend;
 
36609
  friend class ::ExtAC;
 
36610
  friend class ::ExtACBuilderCoupling;
 
36611
  friend class ::ExtACSyntaxCoupling;
 
36612
  friend class ::ExtACTree;
 
36613
  friend class ::ExtACKeywords;
 
36614
  friend class ::ExtGnu;
 
36615
  friend class ::PragmaOnceUnitState;
 
36616
  friend class ::PragmaOnce;
 
36617
  friend class ::CMatchSyntax;
 
36618
 
 
36619
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36620
 
 
36621
public:
 
36622
  /* Constructor. */
 
36623
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
36624
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36625
  static const char *NodeId ();
 
36626
  /** Get the name of the node. Can be compared with NodeId(). */
 
36627
  const char *NodeName () const { return NodeId (); }
 
36628
  /** Get the local scope of the compound statement. */
 
36629
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
36630
};
 
36631
 
 
36632
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
36633
 *  Tree node representing an exception handler sequence. */
 
36634
 
 
36635
#line 36636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36636
} // closed Puma
 
36637
class CCExprResolve;
 
36638
class CExprResolve;
 
36639
class WinIfExists;
 
36640
class WinImportHandler;
 
36641
class WinMacros;
 
36642
class WinAsm;
 
36643
class WinDeclSpecs;
 
36644
class WinMemberExplSpec;
 
36645
class WinTypeKeywords;
 
36646
class WinFriend;
 
36647
class ExtAC;
 
36648
class ExtACBuilderCoupling;
 
36649
class ExtACSyntaxCoupling;
 
36650
class ExtACTree;
 
36651
class ExtACKeywords;
 
36652
class ExtGnu;
 
36653
class PragmaOnceUnitState;
 
36654
class PragmaOnce;
 
36655
class CMatchSyntax;
 
36656
namespace Puma {
 
36657
 
 
36658
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36659
class CT_HandlerSeq : public CT_List {
 
36660
#line 36661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36661
  friend class ::CCExprResolve;
 
36662
  friend class ::CExprResolve;
 
36663
  friend class ::WinIfExists;
 
36664
  friend class ::WinImportHandler;
 
36665
  friend class ::WinMacros;
 
36666
  friend class ::WinAsm;
 
36667
  friend class ::WinDeclSpecs;
 
36668
  friend class ::WinMemberExplSpec;
 
36669
  friend class ::WinTypeKeywords;
 
36670
  friend class ::WinFriend;
 
36671
  friend class ::ExtAC;
 
36672
  friend class ::ExtACBuilderCoupling;
 
36673
  friend class ::ExtACSyntaxCoupling;
 
36674
  friend class ::ExtACTree;
 
36675
  friend class ::ExtACKeywords;
 
36676
  friend class ::ExtGnu;
 
36677
  friend class ::PragmaOnceUnitState;
 
36678
  friend class ::PragmaOnce;
 
36679
  friend class ::CMatchSyntax;
 
36680
 
 
36681
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36682
 
 
36683
public:
 
36684
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36685
  static const char *NodeId ();
 
36686
  /** Get the name of the node. Can be compared with NodeId(). */
 
36687
  const char *NodeName () const { return NodeId (); }
 
36688
};
 
36689
 
 
36690
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
36691
 *  Tree node representing a template parameter list. */
 
36692
 
 
36693
#line 36694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36694
} // closed Puma
 
36695
class CCExprResolve;
 
36696
class CExprResolve;
 
36697
class WinIfExists;
 
36698
class WinImportHandler;
 
36699
class WinMacros;
 
36700
class WinAsm;
 
36701
class WinDeclSpecs;
 
36702
class WinMemberExplSpec;
 
36703
class WinTypeKeywords;
 
36704
class WinFriend;
 
36705
class ExtAC;
 
36706
class ExtACBuilderCoupling;
 
36707
class ExtACSyntaxCoupling;
 
36708
class ExtACTree;
 
36709
class ExtACKeywords;
 
36710
class ExtGnu;
 
36711
class PragmaOnceUnitState;
 
36712
class PragmaOnce;
 
36713
class CMatchSyntax;
 
36714
namespace Puma {
 
36715
 
 
36716
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36717
class CT_TemplateParamList : public CT_List, public CSemScope {
 
36718
#line 36719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36719
  friend class ::CCExprResolve;
 
36720
  friend class ::CExprResolve;
 
36721
  friend class ::WinIfExists;
 
36722
  friend class ::WinImportHandler;
 
36723
  friend class ::WinMacros;
 
36724
  friend class ::WinAsm;
 
36725
  friend class ::WinDeclSpecs;
 
36726
  friend class ::WinMemberExplSpec;
 
36727
  friend class ::WinTypeKeywords;
 
36728
  friend class ::WinFriend;
 
36729
  friend class ::ExtAC;
 
36730
  friend class ::ExtACBuilderCoupling;
 
36731
  friend class ::ExtACSyntaxCoupling;
 
36732
  friend class ::ExtACTree;
 
36733
  friend class ::ExtACKeywords;
 
36734
  friend class ::ExtGnu;
 
36735
  friend class ::PragmaOnceUnitState;
 
36736
  friend class ::PragmaOnce;
 
36737
  friend class ::CMatchSyntax;
 
36738
 
 
36739
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36740
 
 
36741
public:
 
36742
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
36743
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36744
  static const char *NodeId ();
 
36745
  /** Get the name of the node. Can be compared with NodeId(). */
 
36746
  const char *NodeName () const { return NodeId (); }
 
36747
  /** Get the scope of the template parameter list. */
 
36748
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
36749
};
 
36750
 
 
36751
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
36752
 *  Tree node representing a template argument list. */
 
36753
 
 
36754
#line 36755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36755
} // closed Puma
 
36756
class CCExprResolve;
 
36757
class CExprResolve;
 
36758
class WinIfExists;
 
36759
class WinImportHandler;
 
36760
class WinMacros;
 
36761
class WinAsm;
 
36762
class WinDeclSpecs;
 
36763
class WinMemberExplSpec;
 
36764
class WinTypeKeywords;
 
36765
class WinFriend;
 
36766
class ExtAC;
 
36767
class ExtACBuilderCoupling;
 
36768
class ExtACSyntaxCoupling;
 
36769
class ExtACTree;
 
36770
class ExtACKeywords;
 
36771
class ExtGnu;
 
36772
class PragmaOnceUnitState;
 
36773
class PragmaOnce;
 
36774
class CMatchSyntax;
 
36775
namespace Puma {
 
36776
 
 
36777
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36778
class CT_TemplateArgList : public CT_List {
 
36779
#line 36780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36780
  friend class ::CCExprResolve;
 
36781
  friend class ::CExprResolve;
 
36782
  friend class ::WinIfExists;
 
36783
  friend class ::WinImportHandler;
 
36784
  friend class ::WinMacros;
 
36785
  friend class ::WinAsm;
 
36786
  friend class ::WinDeclSpecs;
 
36787
  friend class ::WinMemberExplSpec;
 
36788
  friend class ::WinTypeKeywords;
 
36789
  friend class ::WinFriend;
 
36790
  friend class ::ExtAC;
 
36791
  friend class ::ExtACBuilderCoupling;
 
36792
  friend class ::ExtACSyntaxCoupling;
 
36793
  friend class ::ExtACTree;
 
36794
  friend class ::ExtACKeywords;
 
36795
  friend class ::ExtGnu;
 
36796
  friend class ::PragmaOnceUnitState;
 
36797
  friend class ::PragmaOnce;
 
36798
  friend class ::CMatchSyntax;
 
36799
 
 
36800
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36801
 
 
36802
public:
 
36803
  /** Constructor. */
 
36804
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
36805
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36806
  static const char *NodeId ();
 
36807
  /** Get the name of the node. Can be compared with NodeId(). */
 
36808
  const char *NodeName () const { return NodeId (); }
 
36809
};
 
36810
 
 
36811
/*****************************************************************************/
 
36812
/*                                                                           */
 
36813
/*                              Expressions                                  */
 
36814
/*                                                                           */
 
36815
/*****************************************************************************/
 
36816
 
 
36817
/** \class CT_Expression CTree.h Puma/CTree.h
 
36818
 *  Base class for all expression tree nodes. */
 
36819
 
 
36820
#line 36821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36821
} // closed Puma
 
36822
class CCExprResolve;
 
36823
class CExprResolve;
 
36824
class WinIfExists;
 
36825
class WinImportHandler;
 
36826
class WinMacros;
 
36827
class WinAsm;
 
36828
class WinDeclSpecs;
 
36829
class WinMemberExplSpec;
 
36830
class WinTypeKeywords;
 
36831
class WinFriend;
 
36832
class ExtAC;
 
36833
class ExtACBuilderCoupling;
 
36834
class ExtACSyntaxCoupling;
 
36835
class ExtACTree;
 
36836
class ExtACKeywords;
 
36837
class ExtGnu;
 
36838
class PragmaOnceUnitState;
 
36839
class PragmaOnce;
 
36840
class CMatchSyntax;
 
36841
namespace Puma {
 
36842
 
 
36843
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36844
 
 
36845
#line 36846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36846
} // closed Puma
 
36847
 
 
36848
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36849
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36850
#include "CCExprResolveH.ah"
 
36851
#endif
 
36852
namespace Puma {
 
36853
 
 
36854
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36855
 
 
36856
#line 36857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36857
} // closed Puma
 
36858
 
 
36859
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36860
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36861
#include "CExprResolveH.ah"
 
36862
#endif
 
36863
namespace Puma {
 
36864
 
 
36865
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36866
class CT_Expression : public CTree, public CSemValue {
 
36867
#line 36868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36868
  friend class ::CCExprResolve;
 
36869
  friend class ::CExprResolve;
 
36870
  friend class ::WinIfExists;
 
36871
  friend class ::WinImportHandler;
 
36872
  friend class ::WinMacros;
 
36873
  friend class ::WinAsm;
 
36874
  friend class ::WinDeclSpecs;
 
36875
  friend class ::WinMemberExplSpec;
 
36876
  friend class ::WinTypeKeywords;
 
36877
  friend class ::WinFriend;
 
36878
  friend class ::ExtAC;
 
36879
  friend class ::ExtACBuilderCoupling;
 
36880
  friend class ::ExtACSyntaxCoupling;
 
36881
  friend class ::ExtACTree;
 
36882
  friend class ::ExtACKeywords;
 
36883
  friend class ::ExtGnu;
 
36884
  friend class ::PragmaOnceUnitState;
 
36885
  friend class ::PragmaOnce;
 
36886
  friend class ::CMatchSyntax;
 
36887
 
 
36888
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36889
 
 
36890
protected:
 
36891
  /** Constructor. */
 
36892
  CT_Expression () {}
 
36893
 
 
36894
public:
 
36895
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36896
  static const char *NodeId ();
 
36897
  /** Get the name of the node. Can be compared with NodeId(). */
 
36898
  const char *NodeName () const { return NodeId (); }
 
36899
  /** Get the type of the expression.
 
36900
   *  \return The type information object or NULL. */
 
36901
  CTypeInfo *Type () const { return type; }
 
36902
  /** Get the value of the expression.
 
36903
   *  \return The value object or NULL. */
 
36904
  CExprValue *Value () const { return value; }
 
36905
  /** Get the semantic value information of the expression.
 
36906
   *  \return The value object or NULL. */
 
36907
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
36908
  /** Get this. */
 
36909
  virtual CT_Expression *IsExpression () { return this; }
 
36910
   private:
 
36911
  typedef CT_Expression CCExprResolveExpr;
 
36912
 
 
36913
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36914
 public :
 
36915
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36916
  typedef CT_Expression CExprResolveExpr;
 
36917
 
 
36918
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36919
 public :
 
36920
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36921
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36922
};
 
36923
 
 
36924
/** \class CT_Call CTree.h Puma/CTree.h
 
36925
 *  Tree node representing explicit or implicit function calls 
 
36926
 *  including built-in or user-defined functions and overloaded
 
36927
 *  operators. */
 
36928
 
 
36929
#line 36930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36930
} // closed Puma
 
36931
class CCExprResolve;
 
36932
class CExprResolve;
 
36933
class WinIfExists;
 
36934
class WinImportHandler;
 
36935
class WinMacros;
 
36936
class WinAsm;
 
36937
class WinDeclSpecs;
 
36938
class WinMemberExplSpec;
 
36939
class WinTypeKeywords;
 
36940
class WinFriend;
 
36941
class ExtAC;
 
36942
class ExtACBuilderCoupling;
 
36943
class ExtACSyntaxCoupling;
 
36944
class ExtACTree;
 
36945
class ExtACKeywords;
 
36946
class ExtGnu;
 
36947
class PragmaOnceUnitState;
 
36948
class PragmaOnce;
 
36949
class CMatchSyntax;
 
36950
namespace Puma {
 
36951
 
 
36952
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36953
 
 
36954
#line 36955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36955
} // closed Puma
 
36956
 
 
36957
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36958
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36959
#include "CCExprResolveH.ah"
 
36960
#endif
 
36961
namespace Puma {
 
36962
 
 
36963
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36964
 
 
36965
#line 36966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36966
} // closed Puma
 
36967
 
 
36968
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36969
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36970
#include "CExprResolveH.ah"
 
36971
#endif
 
36972
namespace Puma {
 
36973
 
 
36974
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36975
class CT_Call : public CT_Expression, public CSemObject {
 
36976
#line 36977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
36977
  friend class ::CCExprResolve;
 
36978
  friend class ::CExprResolve;
 
36979
  friend class ::WinIfExists;
 
36980
  friend class ::WinImportHandler;
 
36981
  friend class ::WinMacros;
 
36982
  friend class ::WinAsm;
 
36983
  friend class ::WinDeclSpecs;
 
36984
  friend class ::WinMemberExplSpec;
 
36985
  friend class ::WinTypeKeywords;
 
36986
  friend class ::WinFriend;
 
36987
  friend class ::ExtAC;
 
36988
  friend class ::ExtACBuilderCoupling;
 
36989
  friend class ::ExtACSyntaxCoupling;
 
36990
  friend class ::ExtACTree;
 
36991
  friend class ::ExtACKeywords;
 
36992
  friend class ::ExtGnu;
 
36993
  friend class ::PragmaOnceUnitState;
 
36994
  friend class ::PragmaOnce;
 
36995
  friend class ::CMatchSyntax;
 
36996
 
 
36997
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36998
 
 
36999
protected:
 
37000
  /** Constructor. */
 
37001
  CT_Call () {}
 
37002
  
 
37003
public:
 
37004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37005
  static const char *NodeId ();
 
37006
  /** Get the name of the node. Can be compared with NodeId(). */
 
37007
  const char *NodeName () const { return NodeId (); }
 
37008
  /** Get the semantic information of the call.
 
37009
   *  \return The semantic information or NULL. */
 
37010
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
37011
  /** Get this. */
 
37012
  CT_Call *IsCall () { return this; }
 
37013
   private:
 
37014
  typedef CT_Call CCExprResolveExpr;
 
37015
 
 
37016
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37017
 public :
 
37018
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37019
  typedef CT_Call CExprResolveExpr;
 
37020
 
 
37021
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37022
 public :
 
37023
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37024
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37025
};
 
37026
 
 
37027
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
37028
 *  Tree node representing implicit function calls detected by
 
37029
 *  the semantic analysis. */
 
37030
 
 
37031
#line 37032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37032
} // closed Puma
 
37033
class CCExprResolve;
 
37034
class CExprResolve;
 
37035
class WinIfExists;
 
37036
class WinImportHandler;
 
37037
class WinMacros;
 
37038
class WinAsm;
 
37039
class WinDeclSpecs;
 
37040
class WinMemberExplSpec;
 
37041
class WinTypeKeywords;
 
37042
class WinFriend;
 
37043
class ExtAC;
 
37044
class ExtACBuilderCoupling;
 
37045
class ExtACSyntaxCoupling;
 
37046
class ExtACTree;
 
37047
class ExtACKeywords;
 
37048
class ExtGnu;
 
37049
class PragmaOnceUnitState;
 
37050
class PragmaOnce;
 
37051
class CMatchSyntax;
 
37052
namespace Puma {
 
37053
 
 
37054
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37055
 
 
37056
#line 37057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37057
} // closed Puma
 
37058
 
 
37059
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37060
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37061
#include "CCExprResolveH.ah"
 
37062
#endif
 
37063
namespace Puma {
 
37064
 
 
37065
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37066
 
 
37067
#line 37068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37068
} // closed Puma
 
37069
 
 
37070
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37071
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37072
#include "CExprResolveH.ah"
 
37073
#endif
 
37074
namespace Puma {
 
37075
 
 
37076
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37077
class CT_ImplicitCall : public CT_Call {
 
37078
#line 37079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37079
  friend class ::CCExprResolve;
 
37080
  friend class ::CExprResolve;
 
37081
  friend class ::WinIfExists;
 
37082
  friend class ::WinImportHandler;
 
37083
  friend class ::WinMacros;
 
37084
  friend class ::WinAsm;
 
37085
  friend class ::WinDeclSpecs;
 
37086
  friend class ::WinMemberExplSpec;
 
37087
  friend class ::WinTypeKeywords;
 
37088
  friend class ::WinFriend;
 
37089
  friend class ::ExtAC;
 
37090
  friend class ::ExtACBuilderCoupling;
 
37091
  friend class ::ExtACSyntaxCoupling;
 
37092
  friend class ::ExtACTree;
 
37093
  friend class ::ExtACKeywords;
 
37094
  friend class ::ExtGnu;
 
37095
  friend class ::PragmaOnceUnitState;
 
37096
  friend class ::PragmaOnce;
 
37097
  friend class ::CMatchSyntax;
 
37098
 
 
37099
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37100
 
 
37101
  CTree *_arg;
 
37102
 
 
37103
public:
 
37104
  /** Constructor.
 
37105
   *  \param arg The call argument. */
 
37106
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
37107
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37108
  static const char *NodeId ();
 
37109
  /** Get the name of the node. Can be compared with NodeId(). */
 
37110
  const char *NodeName () const { return NodeId (); }
 
37111
  /** Get the number of sons. */
 
37112
  int Sons () const { return 1; }
 
37113
  /** Get the n-th son.
 
37114
   *  \param n The index of the son.
 
37115
   *  \return The n-th son or NULL. */
 
37116
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
37117
  /** Replace a son.
 
37118
   *  \param old_son The son to replace.
 
37119
   *  \param new_son The new son. */
 
37120
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
37121
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
37122
   private:
 
37123
  typedef CT_ImplicitCall CCExprResolveExpr;
 
37124
 
 
37125
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37126
 public :
 
37127
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37128
  typedef CT_ImplicitCall CExprResolveExpr;
 
37129
 
 
37130
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37131
 public :
 
37132
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37133
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37134
};
 
37135
 
 
37136
/** \class CT_String CTree.h Puma/CTree.h
 
37137
 *  Tree node representing a string literal. */
 
37138
 
 
37139
#line 37140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37140
} // closed Puma
 
37141
class CCExprResolve;
 
37142
class CExprResolve;
 
37143
class WinIfExists;
 
37144
class WinImportHandler;
 
37145
class WinMacros;
 
37146
class WinAsm;
 
37147
class WinDeclSpecs;
 
37148
class WinMemberExplSpec;
 
37149
class WinTypeKeywords;
 
37150
class WinFriend;
 
37151
class ExtAC;
 
37152
class ExtACBuilderCoupling;
 
37153
class ExtACSyntaxCoupling;
 
37154
class ExtACTree;
 
37155
class ExtACKeywords;
 
37156
class ExtGnu;
 
37157
class PragmaOnceUnitState;
 
37158
class PragmaOnce;
 
37159
class CMatchSyntax;
 
37160
namespace Puma {
 
37161
 
 
37162
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37163
 
 
37164
#line 37165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37165
} // closed Puma
 
37166
 
 
37167
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37168
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37169
#include "CCExprResolveH.ah"
 
37170
#endif
 
37171
namespace Puma {
 
37172
 
 
37173
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37174
 
 
37175
#line 37176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37176
} // closed Puma
 
37177
 
 
37178
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37179
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37180
#include "CExprResolveH.ah"
 
37181
#endif
 
37182
namespace Puma {
 
37183
 
 
37184
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37185
class CT_String : public CT_List, public CSemValue {
 
37186
#line 37187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37187
  friend class ::CCExprResolve;
 
37188
  friend class ::CExprResolve;
 
37189
  friend class ::WinIfExists;
 
37190
  friend class ::WinImportHandler;
 
37191
  friend class ::WinMacros;
 
37192
  friend class ::WinAsm;
 
37193
  friend class ::WinDeclSpecs;
 
37194
  friend class ::WinMemberExplSpec;
 
37195
  friend class ::WinTypeKeywords;
 
37196
  friend class ::WinFriend;
 
37197
  friend class ::ExtAC;
 
37198
  friend class ::ExtACBuilderCoupling;
 
37199
  friend class ::ExtACSyntaxCoupling;
 
37200
  friend class ::ExtACTree;
 
37201
  friend class ::ExtACKeywords;
 
37202
  friend class ::ExtGnu;
 
37203
  friend class ::PragmaOnceUnitState;
 
37204
  friend class ::PragmaOnce;
 
37205
  friend class ::CMatchSyntax;
 
37206
 
 
37207
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37208
 
 
37209
public:
 
37210
  /** Constructor. 
 
37211
   *  \param size The number of sub-strings. */
 
37212
  CT_String (int size) : CT_List (size, 1) {}
 
37213
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37214
  static const char *NodeId ();
 
37215
  /** Get the name of the node. Can be compared with NodeId(). */
 
37216
  const char *NodeName () const { return NodeId (); }
 
37217
 
 
37218
  /** Get the type of the string. 
 
37219
   *  \return The type or NULL. */
 
37220
  CTypeInfo *Type () const { return type; }
 
37221
  /** Get the string value.
 
37222
   *  \return The value or NULL. */
 
37223
  CExprValue *Value () const { return value; }
 
37224
  /** Get the semantic value info object.
 
37225
   *  \return The semantic value object or NULL. */
 
37226
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
37227
  /** Get this. */
 
37228
  virtual CT_String *IsString () { return this; }
 
37229
   private:
 
37230
  typedef CT_String CCExprResolveExpr;
 
37231
 
 
37232
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37233
 public :
 
37234
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37235
  typedef CT_String CExprResolveExpr;
 
37236
 
 
37237
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37238
 public :
 
37239
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37240
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37241
};
 
37242
 
 
37243
/** \class CT_WideString CTree.h Puma/CTree.h
 
37244
 *  Tree node representing a wide string literal. */
 
37245
 
 
37246
#line 37247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37247
} // closed Puma
 
37248
class CCExprResolve;
 
37249
class CExprResolve;
 
37250
class WinIfExists;
 
37251
class WinImportHandler;
 
37252
class WinMacros;
 
37253
class WinAsm;
 
37254
class WinDeclSpecs;
 
37255
class WinMemberExplSpec;
 
37256
class WinTypeKeywords;
 
37257
class WinFriend;
 
37258
class ExtAC;
 
37259
class ExtACBuilderCoupling;
 
37260
class ExtACSyntaxCoupling;
 
37261
class ExtACTree;
 
37262
class ExtACKeywords;
 
37263
class ExtGnu;
 
37264
class PragmaOnceUnitState;
 
37265
class PragmaOnce;
 
37266
class CMatchSyntax;
 
37267
namespace Puma {
 
37268
 
 
37269
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37270
 
 
37271
#line 37272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37272
} // closed Puma
 
37273
 
 
37274
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37275
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37276
#include "CCExprResolveH.ah"
 
37277
#endif
 
37278
namespace Puma {
 
37279
 
 
37280
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37281
 
 
37282
#line 37283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37283
} // closed Puma
 
37284
 
 
37285
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37286
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37287
#include "CExprResolveH.ah"
 
37288
#endif
 
37289
namespace Puma {
 
37290
 
 
37291
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37292
class CT_WideString : public CT_String {
 
37293
#line 37294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37294
  friend class ::CCExprResolve;
 
37295
  friend class ::CExprResolve;
 
37296
  friend class ::WinIfExists;
 
37297
  friend class ::WinImportHandler;
 
37298
  friend class ::WinMacros;
 
37299
  friend class ::WinAsm;
 
37300
  friend class ::WinDeclSpecs;
 
37301
  friend class ::WinMemberExplSpec;
 
37302
  friend class ::WinTypeKeywords;
 
37303
  friend class ::WinFriend;
 
37304
  friend class ::ExtAC;
 
37305
  friend class ::ExtACBuilderCoupling;
 
37306
  friend class ::ExtACSyntaxCoupling;
 
37307
  friend class ::ExtACTree;
 
37308
  friend class ::ExtACKeywords;
 
37309
  friend class ::ExtGnu;
 
37310
  friend class ::PragmaOnceUnitState;
 
37311
  friend class ::PragmaOnce;
 
37312
  friend class ::CMatchSyntax;
 
37313
 
 
37314
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37315
 
 
37316
public:
 
37317
  /** Constructor.
 
37318
   *  \param size The number of sub-strings. */
 
37319
  CT_WideString (int size) : CT_String (size) {}
 
37320
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37321
  static const char *NodeId ();
 
37322
  /** Get the name of the node. Can be compared with NodeId(). */
 
37323
  const char *NodeName () const { return NodeId (); }
 
37324
   private:
 
37325
  typedef CT_WideString CCExprResolveExpr;
 
37326
 
 
37327
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37328
 public :
 
37329
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37330
  typedef CT_WideString CExprResolveExpr;
 
37331
 
 
37332
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37333
 public :
 
37334
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37335
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37336
};
 
37337
 
 
37338
/** \class CT_Integer CTree.h Puma/CTree.h
 
37339
 *  Tree node representing an integer constant. */
 
37340
 
 
37341
#line 37342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37342
} // closed Puma
 
37343
class CCExprResolve;
 
37344
class CExprResolve;
 
37345
class WinIfExists;
 
37346
class WinImportHandler;
 
37347
class WinMacros;
 
37348
class WinAsm;
 
37349
class WinDeclSpecs;
 
37350
class WinMemberExplSpec;
 
37351
class WinTypeKeywords;
 
37352
class WinFriend;
 
37353
class ExtAC;
 
37354
class ExtACBuilderCoupling;
 
37355
class ExtACSyntaxCoupling;
 
37356
class ExtACTree;
 
37357
class ExtACKeywords;
 
37358
class ExtGnu;
 
37359
class PragmaOnceUnitState;
 
37360
class PragmaOnce;
 
37361
class CMatchSyntax;
 
37362
namespace Puma {
 
37363
 
 
37364
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37365
 
 
37366
#line 37367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37367
} // closed Puma
 
37368
 
 
37369
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37370
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37371
#include "CCExprResolveH.ah"
 
37372
#endif
 
37373
namespace Puma {
 
37374
 
 
37375
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37376
 
 
37377
#line 37378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37378
} // closed Puma
 
37379
 
 
37380
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37381
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37382
#include "CExprResolveH.ah"
 
37383
#endif
 
37384
namespace Puma {
 
37385
 
 
37386
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37387
class CT_Integer : public CT_Expression {
 
37388
#line 37389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37389
  friend class ::CCExprResolve;
 
37390
  friend class ::CExprResolve;
 
37391
  friend class ::WinIfExists;
 
37392
  friend class ::WinImportHandler;
 
37393
  friend class ::WinMacros;
 
37394
  friend class ::WinAsm;
 
37395
  friend class ::WinDeclSpecs;
 
37396
  friend class ::WinMemberExplSpec;
 
37397
  friend class ::WinTypeKeywords;
 
37398
  friend class ::WinFriend;
 
37399
  friend class ::ExtAC;
 
37400
  friend class ::ExtACBuilderCoupling;
 
37401
  friend class ::ExtACSyntaxCoupling;
 
37402
  friend class ::ExtACTree;
 
37403
  friend class ::ExtACKeywords;
 
37404
  friend class ::ExtGnu;
 
37405
  friend class ::PragmaOnceUnitState;
 
37406
  friend class ::PragmaOnce;
 
37407
  friend class ::CMatchSyntax;
 
37408
 
 
37409
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37410
 
 
37411
  CTree *_value;  // CT_Token
 
37412
 
 
37413
public:
 
37414
  /** Constructor.
 
37415
   *  \param token The token containing the integer value. */
 
37416
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
37417
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37418
  static const char *NodeId ();
 
37419
  /** Get the name of the node. Can be compared with NodeId(). */
 
37420
  const char *NodeName () const { return NodeId (); }
 
37421
  /** Get the number of sons. */
 
37422
  int Sons () const { return _value ? 1 : 0; }
 
37423
  /** Get the n-th son.
 
37424
   *  \param n The index of the son.
 
37425
   *  \return The n-th son or NULL. */
 
37426
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
37427
  /** Replace a son.
 
37428
   *  \param old_son The son to replace.
 
37429
   *  \param new_son The new son. */
 
37430
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
37431
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
37432
   private:
 
37433
  typedef CT_Integer CCExprResolveExpr;
 
37434
 
 
37435
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37436
 public :
 
37437
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37438
  typedef CT_Integer CExprResolveExpr;
 
37439
 
 
37440
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37441
 public :
 
37442
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37443
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37444
};
 
37445
 
 
37446
/** \class CT_Character CTree.h Puma/CTree.h
 
37447
 *  Tree node representing a single character constant. */
 
37448
 
 
37449
#line 37450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37450
} // closed Puma
 
37451
class CCExprResolve;
 
37452
class CExprResolve;
 
37453
class WinIfExists;
 
37454
class WinImportHandler;
 
37455
class WinMacros;
 
37456
class WinAsm;
 
37457
class WinDeclSpecs;
 
37458
class WinMemberExplSpec;
 
37459
class WinTypeKeywords;
 
37460
class WinFriend;
 
37461
class ExtAC;
 
37462
class ExtACBuilderCoupling;
 
37463
class ExtACSyntaxCoupling;
 
37464
class ExtACTree;
 
37465
class ExtACKeywords;
 
37466
class ExtGnu;
 
37467
class PragmaOnceUnitState;
 
37468
class PragmaOnce;
 
37469
class CMatchSyntax;
 
37470
namespace Puma {
 
37471
 
 
37472
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37473
 
 
37474
#line 37475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37475
} // closed Puma
 
37476
 
 
37477
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37478
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37479
#include "CCExprResolveH.ah"
 
37480
#endif
 
37481
namespace Puma {
 
37482
 
 
37483
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37484
 
 
37485
#line 37486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37486
} // closed Puma
 
37487
 
 
37488
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37489
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37490
#include "CExprResolveH.ah"
 
37491
#endif
 
37492
namespace Puma {
 
37493
 
 
37494
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37495
class CT_Character : public CT_Expression {
 
37496
#line 37497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37497
  friend class ::CCExprResolve;
 
37498
  friend class ::CExprResolve;
 
37499
  friend class ::WinIfExists;
 
37500
  friend class ::WinImportHandler;
 
37501
  friend class ::WinMacros;
 
37502
  friend class ::WinAsm;
 
37503
  friend class ::WinDeclSpecs;
 
37504
  friend class ::WinMemberExplSpec;
 
37505
  friend class ::WinTypeKeywords;
 
37506
  friend class ::WinFriend;
 
37507
  friend class ::ExtAC;
 
37508
  friend class ::ExtACBuilderCoupling;
 
37509
  friend class ::ExtACSyntaxCoupling;
 
37510
  friend class ::ExtACTree;
 
37511
  friend class ::ExtACKeywords;
 
37512
  friend class ::ExtGnu;
 
37513
  friend class ::PragmaOnceUnitState;
 
37514
  friend class ::PragmaOnce;
 
37515
  friend class ::CMatchSyntax;
 
37516
 
 
37517
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37518
 
 
37519
  CTree *_value;  // CT_Token
 
37520
 
 
37521
public:
 
37522
  /** Constructor.
 
37523
   *  \param token The token containing the character value. */
 
37524
  CT_Character (CTree *token) { AddSon (_value, token); }
 
37525
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37526
  static const char *NodeId ();
 
37527
  /** Get the name of the node. Can be compared with NodeId(). */
 
37528
  const char *NodeName () const { return NodeId (); }
 
37529
  /** Get the number of sons. */
 
37530
  int Sons () const { return 1; }
 
37531
  /** Get the n-th son.
 
37532
   *  \param n The index of the son.
 
37533
   *  \return The n-th son or NULL. */
 
37534
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
37535
  /** Replace a son.
 
37536
   *  \param old_son The son to replace.
 
37537
   *  \param new_son The new son. */
 
37538
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
37539
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
37540
   private:
 
37541
  typedef CT_Character CCExprResolveExpr;
 
37542
 
 
37543
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37544
 public :
 
37545
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37546
  typedef CT_Character CExprResolveExpr;
 
37547
 
 
37548
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37549
 public :
 
37550
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37551
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37552
};
 
37553
 
 
37554
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
37555
 *  Tree node representing a wide character constant. */
 
37556
 
 
37557
#line 37558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37558
} // closed Puma
 
37559
class CCExprResolve;
 
37560
class CExprResolve;
 
37561
class WinIfExists;
 
37562
class WinImportHandler;
 
37563
class WinMacros;
 
37564
class WinAsm;
 
37565
class WinDeclSpecs;
 
37566
class WinMemberExplSpec;
 
37567
class WinTypeKeywords;
 
37568
class WinFriend;
 
37569
class ExtAC;
 
37570
class ExtACBuilderCoupling;
 
37571
class ExtACSyntaxCoupling;
 
37572
class ExtACTree;
 
37573
class ExtACKeywords;
 
37574
class ExtGnu;
 
37575
class PragmaOnceUnitState;
 
37576
class PragmaOnce;
 
37577
class CMatchSyntax;
 
37578
namespace Puma {
 
37579
 
 
37580
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37581
 
 
37582
#line 37583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37583
} // closed Puma
 
37584
 
 
37585
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37586
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37587
#include "CCExprResolveH.ah"
 
37588
#endif
 
37589
namespace Puma {
 
37590
 
 
37591
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37592
 
 
37593
#line 37594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37594
} // closed Puma
 
37595
 
 
37596
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37597
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37598
#include "CExprResolveH.ah"
 
37599
#endif
 
37600
namespace Puma {
 
37601
 
 
37602
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37603
class CT_WideCharacter : public CT_Character {
 
37604
#line 37605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37605
  friend class ::CCExprResolve;
 
37606
  friend class ::CExprResolve;
 
37607
  friend class ::WinIfExists;
 
37608
  friend class ::WinImportHandler;
 
37609
  friend class ::WinMacros;
 
37610
  friend class ::WinAsm;
 
37611
  friend class ::WinDeclSpecs;
 
37612
  friend class ::WinMemberExplSpec;
 
37613
  friend class ::WinTypeKeywords;
 
37614
  friend class ::WinFriend;
 
37615
  friend class ::ExtAC;
 
37616
  friend class ::ExtACBuilderCoupling;
 
37617
  friend class ::ExtACSyntaxCoupling;
 
37618
  friend class ::ExtACTree;
 
37619
  friend class ::ExtACKeywords;
 
37620
  friend class ::ExtGnu;
 
37621
  friend class ::PragmaOnceUnitState;
 
37622
  friend class ::PragmaOnce;
 
37623
  friend class ::CMatchSyntax;
 
37624
 
 
37625
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37626
 
 
37627
public:
 
37628
  /** Constructor.
 
37629
   *  \param token The token containing the wide character value. */
 
37630
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
37631
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37632
  static const char *NodeId ();
 
37633
  /** Get the name of the node. Can be compared with NodeId(). */
 
37634
  const char *NodeName () const { return NodeId (); }
 
37635
   private:
 
37636
  typedef CT_WideCharacter CCExprResolveExpr;
 
37637
 
 
37638
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37639
 public :
 
37640
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37641
  typedef CT_WideCharacter CExprResolveExpr;
 
37642
 
 
37643
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37644
 public :
 
37645
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37646
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37647
};
 
37648
 
 
37649
/** \class CT_Float CTree.h Puma/CTree.h
 
37650
 *  Tree node representing a floating point constant. */
 
37651
 
 
37652
#line 37653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37653
} // closed Puma
 
37654
class CCExprResolve;
 
37655
class CExprResolve;
 
37656
class WinIfExists;
 
37657
class WinImportHandler;
 
37658
class WinMacros;
 
37659
class WinAsm;
 
37660
class WinDeclSpecs;
 
37661
class WinMemberExplSpec;
 
37662
class WinTypeKeywords;
 
37663
class WinFriend;
 
37664
class ExtAC;
 
37665
class ExtACBuilderCoupling;
 
37666
class ExtACSyntaxCoupling;
 
37667
class ExtACTree;
 
37668
class ExtACKeywords;
 
37669
class ExtGnu;
 
37670
class PragmaOnceUnitState;
 
37671
class PragmaOnce;
 
37672
class CMatchSyntax;
 
37673
namespace Puma {
 
37674
 
 
37675
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37676
 
 
37677
#line 37678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37678
} // closed Puma
 
37679
 
 
37680
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37681
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37682
#include "CCExprResolveH.ah"
 
37683
#endif
 
37684
namespace Puma {
 
37685
 
 
37686
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37687
 
 
37688
#line 37689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37689
} // closed Puma
 
37690
 
 
37691
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37692
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37693
#include "CExprResolveH.ah"
 
37694
#endif
 
37695
namespace Puma {
 
37696
 
 
37697
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37698
class CT_Float : public CT_Expression {
 
37699
#line 37700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37700
  friend class ::CCExprResolve;
 
37701
  friend class ::CExprResolve;
 
37702
  friend class ::WinIfExists;
 
37703
  friend class ::WinImportHandler;
 
37704
  friend class ::WinMacros;
 
37705
  friend class ::WinAsm;
 
37706
  friend class ::WinDeclSpecs;
 
37707
  friend class ::WinMemberExplSpec;
 
37708
  friend class ::WinTypeKeywords;
 
37709
  friend class ::WinFriend;
 
37710
  friend class ::ExtAC;
 
37711
  friend class ::ExtACBuilderCoupling;
 
37712
  friend class ::ExtACSyntaxCoupling;
 
37713
  friend class ::ExtACTree;
 
37714
  friend class ::ExtACKeywords;
 
37715
  friend class ::ExtGnu;
 
37716
  friend class ::PragmaOnceUnitState;
 
37717
  friend class ::PragmaOnce;
 
37718
  friend class ::CMatchSyntax;
 
37719
 
 
37720
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37721
 
 
37722
  CTree *_value;  // CT_Token
 
37723
 
 
37724
public:
 
37725
  /** Constructor.
 
37726
   *  \param token The token containing the floating point value. */
 
37727
  CT_Float (CTree *token) { AddSon (_value, token); }
 
37728
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37729
  static const char *NodeId ();
 
37730
  /** Get the name of the node. Can be compared with NodeId(). */
 
37731
  const char *NodeName () const { return NodeId (); }
 
37732
  /** Get the number of sons. */
 
37733
  int Sons () const { return 1; }
 
37734
  /** Get the n-th son.
 
37735
   *  \param n The index of the son.
 
37736
   *  \return The n-th son or NULL. */
 
37737
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
37738
  /** Replace a son.
 
37739
   *  \param old_son The son to replace.
 
37740
   *  \param new_son The new son. */
 
37741
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
37742
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
37743
   private:
 
37744
  typedef CT_Float CCExprResolveExpr;
 
37745
 
 
37746
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37747
 public :
 
37748
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37749
  typedef CT_Float CExprResolveExpr;
 
37750
 
 
37751
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37752
 public :
 
37753
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37754
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37755
};
 
37756
 
 
37757
/** \class CT_Bool CTree.h Puma/CTree.h
 
37758
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
37759
 
 
37760
#line 37761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37761
} // closed Puma
 
37762
class CCExprResolve;
 
37763
class CExprResolve;
 
37764
class WinIfExists;
 
37765
class WinImportHandler;
 
37766
class WinMacros;
 
37767
class WinAsm;
 
37768
class WinDeclSpecs;
 
37769
class WinMemberExplSpec;
 
37770
class WinTypeKeywords;
 
37771
class WinFriend;
 
37772
class ExtAC;
 
37773
class ExtACBuilderCoupling;
 
37774
class ExtACSyntaxCoupling;
 
37775
class ExtACTree;
 
37776
class ExtACKeywords;
 
37777
class ExtGnu;
 
37778
class PragmaOnceUnitState;
 
37779
class PragmaOnce;
 
37780
class CMatchSyntax;
 
37781
namespace Puma {
 
37782
 
 
37783
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37784
 
 
37785
#line 37786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37786
} // closed Puma
 
37787
 
 
37788
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37789
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37790
#include "CCExprResolveH.ah"
 
37791
#endif
 
37792
namespace Puma {
 
37793
 
 
37794
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37795
 
 
37796
#line 37797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37797
} // closed Puma
 
37798
 
 
37799
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37800
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37801
#include "CExprResolveH.ah"
 
37802
#endif
 
37803
namespace Puma {
 
37804
 
 
37805
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37806
class CT_Bool : public CT_Expression {
 
37807
#line 37808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37808
  friend class ::CCExprResolve;
 
37809
  friend class ::CExprResolve;
 
37810
  friend class ::WinIfExists;
 
37811
  friend class ::WinImportHandler;
 
37812
  friend class ::WinMacros;
 
37813
  friend class ::WinAsm;
 
37814
  friend class ::WinDeclSpecs;
 
37815
  friend class ::WinMemberExplSpec;
 
37816
  friend class ::WinTypeKeywords;
 
37817
  friend class ::WinFriend;
 
37818
  friend class ::ExtAC;
 
37819
  friend class ::ExtACBuilderCoupling;
 
37820
  friend class ::ExtACSyntaxCoupling;
 
37821
  friend class ::ExtACTree;
 
37822
  friend class ::ExtACKeywords;
 
37823
  friend class ::ExtGnu;
 
37824
  friend class ::PragmaOnceUnitState;
 
37825
  friend class ::PragmaOnce;
 
37826
  friend class ::CMatchSyntax;
 
37827
 
 
37828
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37829
 
 
37830
  CTree *_value;  // CT_Token
 
37831
 
 
37832
public:
 
37833
  /** Constructor.
 
37834
   *  \param token The token containing the boolean value. */
 
37835
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
37836
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37837
  static const char *NodeId ();
 
37838
  /** Get the name of the node. Can be compared with NodeId(). */
 
37839
  const char *NodeName () const { return NodeId (); }
 
37840
  /** Get the number of sons. */
 
37841
  int Sons () const { return 1; }
 
37842
  /** Get the n-th son.
 
37843
   *  \param n The index of the son.
 
37844
   *  \return The n-th son or NULL. */
 
37845
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
37846
  /** Replace a son.
 
37847
   *  \param old_son The son to replace.
 
37848
   *  \param new_son The new son. */
 
37849
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
37850
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
37851
   private:
 
37852
  typedef CT_Bool CCExprResolveExpr;
 
37853
 
 
37854
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37855
 public :
 
37856
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37857
  typedef CT_Bool CExprResolveExpr;
 
37858
 
 
37859
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37860
 public :
 
37861
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37862
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37863
};
 
37864
 
 
37865
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
37866
 *  Tree node representing a braced expression, e.g. (a+b). */
 
37867
 
 
37868
#line 37869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37869
} // closed Puma
 
37870
class CCExprResolve;
 
37871
class CExprResolve;
 
37872
class WinIfExists;
 
37873
class WinImportHandler;
 
37874
class WinMacros;
 
37875
class WinAsm;
 
37876
class WinDeclSpecs;
 
37877
class WinMemberExplSpec;
 
37878
class WinTypeKeywords;
 
37879
class WinFriend;
 
37880
class ExtAC;
 
37881
class ExtACBuilderCoupling;
 
37882
class ExtACSyntaxCoupling;
 
37883
class ExtACTree;
 
37884
class ExtACKeywords;
 
37885
class ExtGnu;
 
37886
class PragmaOnceUnitState;
 
37887
class PragmaOnce;
 
37888
class CMatchSyntax;
 
37889
namespace Puma {
 
37890
 
 
37891
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37892
 
 
37893
#line 37894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37894
} // closed Puma
 
37895
 
 
37896
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37897
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37898
#include "CCExprResolveH.ah"
 
37899
#endif
 
37900
namespace Puma {
 
37901
 
 
37902
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37903
 
 
37904
#line 37905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37905
} // closed Puma
 
37906
 
 
37907
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37908
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37909
#include "CExprResolveH.ah"
 
37910
#endif
 
37911
namespace Puma {
 
37912
 
 
37913
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37914
class CT_BracedExpr : public CT_Expression {
 
37915
#line 37916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37916
  friend class ::CCExprResolve;
 
37917
  friend class ::CExprResolve;
 
37918
  friend class ::WinIfExists;
 
37919
  friend class ::WinImportHandler;
 
37920
  friend class ::WinMacros;
 
37921
  friend class ::WinAsm;
 
37922
  friend class ::WinDeclSpecs;
 
37923
  friend class ::WinMemberExplSpec;
 
37924
  friend class ::WinTypeKeywords;
 
37925
  friend class ::WinFriend;
 
37926
  friend class ::ExtAC;
 
37927
  friend class ::ExtACBuilderCoupling;
 
37928
  friend class ::ExtACSyntaxCoupling;
 
37929
  friend class ::ExtACTree;
 
37930
  friend class ::ExtACKeywords;
 
37931
  friend class ::ExtGnu;
 
37932
  friend class ::PragmaOnceUnitState;
 
37933
  friend class ::PragmaOnce;
 
37934
  friend class ::CMatchSyntax;
 
37935
 
 
37936
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37937
 
 
37938
  CTree *sons[3]; // open, expr, close
 
37939
 
 
37940
public:
 
37941
  /** Constructor.
 
37942
   *  \param o The opening brace.
 
37943
   *  \param e The enclosed expression.
 
37944
   *  \param c The closing brace. */
 
37945
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
37946
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
37947
  }
 
37948
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37949
  static const char *NodeId ();
 
37950
  /** Get the name of the node. Can be compared with NodeId(). */
 
37951
  const char *NodeName () const { return NodeId (); }
 
37952
  /** Get the number of sons. */
 
37953
  int Sons () const { return 3; }
 
37954
  /** Get the n-th son.
 
37955
   *  \param n The index of the son.
 
37956
   *  \return The n-th son or NULL. */
 
37957
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
37958
  /** Get the enclosed expression. */
 
37959
  CTree *Expr () const { return sons[1]; }
 
37960
  /** Get the type of the enclosed expression. */
 
37961
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
37962
  /** Get the value of the enclosed expression. */
 
37963
  CExprValue *Value () const { return Expr ()->Value (); }
 
37964
  /** Get the semantic value object. */
 
37965
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
37966
  /** Replace a son.
 
37967
   *  \param old_son The son to replace.
 
37968
   *  \param new_son The new son. */
 
37969
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37970
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
37971
  }
 
37972
   private:
 
37973
  typedef CT_BracedExpr CCExprResolveExpr;
 
37974
 
 
37975
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37976
 public :
 
37977
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37978
  typedef CT_BracedExpr CExprResolveExpr;
 
37979
 
 
37980
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37981
 public :
 
37982
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37983
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37984
};
 
37985
 
 
37986
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
37987
 *  Base class for all tree nodes representing a name. */
 
37988
 
 
37989
#line 37990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
37990
} // closed Puma
 
37991
class CCExprResolve;
 
37992
class CExprResolve;
 
37993
class WinIfExists;
 
37994
class WinImportHandler;
 
37995
class WinMacros;
 
37996
class WinAsm;
 
37997
class WinDeclSpecs;
 
37998
class WinMemberExplSpec;
 
37999
class WinTypeKeywords;
 
38000
class WinFriend;
 
38001
class ExtAC;
 
38002
class ExtACBuilderCoupling;
 
38003
class ExtACSyntaxCoupling;
 
38004
class ExtACTree;
 
38005
class ExtACKeywords;
 
38006
class ExtGnu;
 
38007
class PragmaOnceUnitState;
 
38008
class PragmaOnce;
 
38009
class CMatchSyntax;
 
38010
namespace Puma {
 
38011
 
 
38012
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38013
 
 
38014
#line 38015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38015
} // closed Puma
 
38016
 
 
38017
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38018
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38019
#include "CCExprResolveH.ah"
 
38020
#endif
 
38021
namespace Puma {
 
38022
 
 
38023
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38024
 
 
38025
#line 38026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38026
} // closed Puma
 
38027
 
 
38028
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38029
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38030
#include "CExprResolveH.ah"
 
38031
#endif
 
38032
namespace Puma {
 
38033
 
 
38034
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38035
class CT_SimpleName : public CT_List, public Printable, 
 
38036
                      public CSemValue, public CSemObject {
 
38037
#line 38038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38038
  friend class ::CCExprResolve;
 
38039
  friend class ::CExprResolve;
 
38040
  friend class ::WinIfExists;
 
38041
  friend class ::WinImportHandler;
 
38042
  friend class ::WinMacros;
 
38043
  friend class ::WinAsm;
 
38044
  friend class ::WinDeclSpecs;
 
38045
  friend class ::WinMemberExplSpec;
 
38046
  friend class ::WinTypeKeywords;
 
38047
  friend class ::WinFriend;
 
38048
  friend class ::ExtAC;
 
38049
  friend class ::ExtACBuilderCoupling;
 
38050
  friend class ::ExtACSyntaxCoupling;
 
38051
  friend class ::ExtACTree;
 
38052
  friend class ::ExtACKeywords;
 
38053
  friend class ::ExtGnu;
 
38054
  friend class ::PragmaOnceUnitState;
 
38055
  friend class ::PragmaOnce;
 
38056
  friend class ::CMatchSyntax;
 
38057
 
 
38058
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38059
 
 
38060
protected:
 
38061
  /** Constructor.
 
38062
   *  \param size The number of sub-names (for qualified names). */
 
38063
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
38064
  /** Constructor.
 
38065
   *  \param size The number of sub-names (for qualified names). 
 
38066
   *  \param properties Additional name list properties (for root qualified names). */
 
38067
  CT_SimpleName (int size, int properties) : 
 
38068
    CT_List (size, 2, properties) {}
 
38069
  
 
38070
public:
 
38071
  /** Constructor.
 
38072
   *  \param n The sub-tree containing the name. */
 
38073
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
38074
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38075
  static const char *NodeId ();
 
38076
  /** Get the name of the node. Can be compared with NodeId(). */
 
38077
  const char *NodeName () const { return NodeId (); }
 
38078
  /** Get the string containing the name. */
 
38079
  virtual const char *Text () const 
 
38080
   { return Son (Sons ()-1)->token ()->text (); }
 
38081
  /** Print the name on the given stream. 
 
38082
   *  \param os The output stream. */
 
38083
  virtual void print (ostream &os) const { os << Text (); }
 
38084
  /** Get this. */
 
38085
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
38086
  /** Get the type of the entity represented by the name. */
 
38087
  CTypeInfo *Type () const { return type; }
 
38088
  /** Get the value of the entity represented by the name. */ 
 
38089
  CExprValue *Value () const { return value; }
 
38090
  /** Get the sematic value information object. */
 
38091
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
38092
  /** Get the sematic information object. */
 
38093
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
38094
  /** Get this. */
 
38095
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
38096
 
 
38097
public:
 
38098
  /** Own new operator reusing memory. */
 
38099
  void *operator new (size_t);
 
38100
  /** Own delete operator. */
 
38101
  void operator delete (void *);
 
38102
   private:
 
38103
  typedef CT_SimpleName CCExprResolveExpr;
 
38104
 
 
38105
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38106
 public :
 
38107
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38108
  typedef CT_SimpleName CExprResolveExpr;
 
38109
 
 
38110
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38111
 public :
 
38112
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38113
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38114
};
 
38115
 
 
38116
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
38117
 *  Base class for tree nodes representing a special name, like destructor names. */
 
38118
 
 
38119
#line 38120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38120
} // closed Puma
 
38121
class CCExprResolve;
 
38122
class CExprResolve;
 
38123
class WinIfExists;
 
38124
class WinImportHandler;
 
38125
class WinMacros;
 
38126
class WinAsm;
 
38127
class WinDeclSpecs;
 
38128
class WinMemberExplSpec;
 
38129
class WinTypeKeywords;
 
38130
class WinFriend;
 
38131
class ExtAC;
 
38132
class ExtACBuilderCoupling;
 
38133
class ExtACSyntaxCoupling;
 
38134
class ExtACTree;
 
38135
class ExtACKeywords;
 
38136
class ExtGnu;
 
38137
class PragmaOnceUnitState;
 
38138
class PragmaOnce;
 
38139
class CMatchSyntax;
 
38140
namespace Puma {
 
38141
 
 
38142
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38143
 
 
38144
#line 38145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38145
} // closed Puma
 
38146
 
 
38147
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38148
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38149
#include "CCExprResolveH.ah"
 
38150
#endif
 
38151
namespace Puma {
 
38152
 
 
38153
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38154
 
 
38155
#line 38156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38156
} // closed Puma
 
38157
 
 
38158
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38159
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38160
#include "CExprResolveH.ah"
 
38161
#endif
 
38162
namespace Puma {
 
38163
 
 
38164
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38165
class CT_SpecialName : public CT_SimpleName {
 
38166
#line 38167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38167
  friend class ::CCExprResolve;
 
38168
  friend class ::CExprResolve;
 
38169
  friend class ::WinIfExists;
 
38170
  friend class ::WinImportHandler;
 
38171
  friend class ::WinMacros;
 
38172
  friend class ::WinAsm;
 
38173
  friend class ::WinDeclSpecs;
 
38174
  friend class ::WinMemberExplSpec;
 
38175
  friend class ::WinTypeKeywords;
 
38176
  friend class ::WinFriend;
 
38177
  friend class ::ExtAC;
 
38178
  friend class ::ExtACBuilderCoupling;
 
38179
  friend class ::ExtACSyntaxCoupling;
 
38180
  friend class ::ExtACTree;
 
38181
  friend class ::ExtACKeywords;
 
38182
  friend class ::ExtGnu;
 
38183
  friend class ::PragmaOnceUnitState;
 
38184
  friend class ::PragmaOnce;
 
38185
  friend class ::CMatchSyntax;
 
38186
 
 
38187
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38188
 
 
38189
  char *_name;
 
38190
  
 
38191
protected:
 
38192
  /** Constructor.
 
38193
   *  \param size The number of sub-names (for qualified names). */
 
38194
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
38195
  
 
38196
public:
 
38197
  /** Destructor. Deletes the name string. */
 
38198
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
38199
  /** Get the string containing the name. */
 
38200
  const char *Text () const { return _name; }
 
38201
  /** Set the name. The name is copied.
 
38202
   *  \param n The name. */
 
38203
  void Name (const char *n) { 
 
38204
    if (n) { 
 
38205
      _name = new char[strlen(n) + 1];
 
38206
      strcpy (_name,n);
 
38207
    }
 
38208
  }
 
38209
 
 
38210
public:
 
38211
  /** Own new operator reusing memory. */
 
38212
  void *operator new (size_t);
 
38213
  /** Own delete operator. */
 
38214
  void operator delete (void *);
 
38215
   private:
 
38216
  typedef CT_SpecialName CCExprResolveExpr;
 
38217
 
 
38218
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38219
 public :
 
38220
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38221
  typedef CT_SpecialName CExprResolveExpr;
 
38222
 
 
38223
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38224
 public :
 
38225
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38226
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38227
};
 
38228
 
 
38229
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
38230
 *  Tree node representing a private name. Private names 
 
38231
 *  are generated names for abstract declarators etc. */
 
38232
 
 
38233
#line 38234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38234
} // closed Puma
 
38235
class CCExprResolve;
 
38236
class CExprResolve;
 
38237
class WinIfExists;
 
38238
class WinImportHandler;
 
38239
class WinMacros;
 
38240
class WinAsm;
 
38241
class WinDeclSpecs;
 
38242
class WinMemberExplSpec;
 
38243
class WinTypeKeywords;
 
38244
class WinFriend;
 
38245
class ExtAC;
 
38246
class ExtACBuilderCoupling;
 
38247
class ExtACSyntaxCoupling;
 
38248
class ExtACTree;
 
38249
class ExtACKeywords;
 
38250
class ExtGnu;
 
38251
class PragmaOnceUnitState;
 
38252
class PragmaOnce;
 
38253
class CMatchSyntax;
 
38254
namespace Puma {
 
38255
 
 
38256
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38257
 
 
38258
#line 38259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38259
} // closed Puma
 
38260
 
 
38261
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38262
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38263
#include "CCExprResolveH.ah"
 
38264
#endif
 
38265
namespace Puma {
 
38266
 
 
38267
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38268
 
 
38269
#line 38270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38270
} // closed Puma
 
38271
 
 
38272
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38273
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38274
#include "CExprResolveH.ah"
 
38275
#endif
 
38276
namespace Puma {
 
38277
 
 
38278
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38279
class CT_PrivateName : public CT_SpecialName {
 
38280
#line 38281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38281
  friend class ::CCExprResolve;
 
38282
  friend class ::CExprResolve;
 
38283
  friend class ::WinIfExists;
 
38284
  friend class ::WinImportHandler;
 
38285
  friend class ::WinMacros;
 
38286
  friend class ::WinAsm;
 
38287
  friend class ::WinDeclSpecs;
 
38288
  friend class ::WinMemberExplSpec;
 
38289
  friend class ::WinTypeKeywords;
 
38290
  friend class ::WinFriend;
 
38291
  friend class ::ExtAC;
 
38292
  friend class ::ExtACBuilderCoupling;
 
38293
  friend class ::ExtACSyntaxCoupling;
 
38294
  friend class ::ExtACTree;
 
38295
  friend class ::ExtACKeywords;
 
38296
  friend class ::ExtGnu;
 
38297
  friend class ::PragmaOnceUnitState;
 
38298
  friend class ::PragmaOnce;
 
38299
  friend class ::CMatchSyntax;
 
38300
 
 
38301
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38302
 
 
38303
public:
 
38304
  /** Constructor.
 
38305
   *  \param n The private (generated) name. */
 
38306
  CT_PrivateName (const char *n) { Name (n); }
 
38307
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38308
  static const char *NodeId ();
 
38309
  /** Get the name of the node. Can be compared with NodeId(). */
 
38310
  const char *NodeName () const { return NodeId (); }
 
38311
  /** Get the number of sons. */
 
38312
  int Sons () const { return 0; }
 
38313
  /** Get the n-th son.
 
38314
   *  \param n The index of the son.
 
38315
   *  \return The n-th son or NULL. */
 
38316
  CTree *Son (int n) const { return (CTree*)0; }
 
38317
 
 
38318
public:
 
38319
  /** Own new operator reusing memory. */
 
38320
  void *operator new (size_t);
 
38321
  /** Own delete operator. */
 
38322
  void operator delete (void *);
 
38323
   private:
 
38324
  typedef CT_PrivateName CCExprResolveExpr;
 
38325
 
 
38326
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38327
 public :
 
38328
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38329
  typedef CT_PrivateName CExprResolveExpr;
 
38330
 
 
38331
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38332
 public :
 
38333
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38334
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38335
};
 
38336
 
 
38337
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
38338
 *  Tree node representing a destructor name. */
 
38339
 
 
38340
#line 38341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38341
} // closed Puma
 
38342
class CCExprResolve;
 
38343
class CExprResolve;
 
38344
class WinIfExists;
 
38345
class WinImportHandler;
 
38346
class WinMacros;
 
38347
class WinAsm;
 
38348
class WinDeclSpecs;
 
38349
class WinMemberExplSpec;
 
38350
class WinTypeKeywords;
 
38351
class WinFriend;
 
38352
class ExtAC;
 
38353
class ExtACBuilderCoupling;
 
38354
class ExtACSyntaxCoupling;
 
38355
class ExtACTree;
 
38356
class ExtACKeywords;
 
38357
class ExtGnu;
 
38358
class PragmaOnceUnitState;
 
38359
class PragmaOnce;
 
38360
class CMatchSyntax;
 
38361
namespace Puma {
 
38362
 
 
38363
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38364
 
 
38365
#line 38366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38366
} // closed Puma
 
38367
 
 
38368
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38369
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38370
#include "CCExprResolveH.ah"
 
38371
#endif
 
38372
namespace Puma {
 
38373
 
 
38374
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38375
 
 
38376
#line 38377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38377
} // closed Puma
 
38378
 
 
38379
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38380
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38381
#include "CExprResolveH.ah"
 
38382
#endif
 
38383
namespace Puma {
 
38384
 
 
38385
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38386
class CT_DestructorName : public CT_SpecialName {
 
38387
#line 38388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38388
  friend class ::CCExprResolve;
 
38389
  friend class ::CExprResolve;
 
38390
  friend class ::WinIfExists;
 
38391
  friend class ::WinImportHandler;
 
38392
  friend class ::WinMacros;
 
38393
  friend class ::WinAsm;
 
38394
  friend class ::WinDeclSpecs;
 
38395
  friend class ::WinMemberExplSpec;
 
38396
  friend class ::WinTypeKeywords;
 
38397
  friend class ::WinFriend;
 
38398
  friend class ::ExtAC;
 
38399
  friend class ::ExtACBuilderCoupling;
 
38400
  friend class ::ExtACSyntaxCoupling;
 
38401
  friend class ::ExtACTree;
 
38402
  friend class ::ExtACKeywords;
 
38403
  friend class ::ExtGnu;
 
38404
  friend class ::PragmaOnceUnitState;
 
38405
  friend class ::PragmaOnce;
 
38406
  friend class ::CMatchSyntax;
 
38407
 
 
38408
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38409
 
 
38410
public:
 
38411
  /** Constructor.
 
38412
   *  \param t The tilde operator.
 
38413
   *  \param n The class name. */
 
38414
  CT_DestructorName (CTree *t, CTree *n);
 
38415
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38416
  static const char *NodeId ();
 
38417
  /** Get the name of the node. Can be compared with NodeId(). */
 
38418
  const char *NodeName () const { return NodeId (); }
 
38419
 
 
38420
public:
 
38421
  /** Own new operator reusing memory. */
 
38422
  void *operator new (size_t);
 
38423
  /** Own delete operator. */
 
38424
  void operator delete (void *);
 
38425
   private:
 
38426
  typedef CT_DestructorName CCExprResolveExpr;
 
38427
 
 
38428
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38429
 public :
 
38430
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38431
  typedef CT_DestructorName CExprResolveExpr;
 
38432
 
 
38433
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38434
 public :
 
38435
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38436
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38437
};
 
38438
 
 
38439
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
38440
 *  Tree node representing a template name. */
 
38441
 
 
38442
#line 38443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38443
} // closed Puma
 
38444
class CCExprResolve;
 
38445
class CExprResolve;
 
38446
class WinIfExists;
 
38447
class WinImportHandler;
 
38448
class WinMacros;
 
38449
class WinAsm;
 
38450
class WinDeclSpecs;
 
38451
class WinMemberExplSpec;
 
38452
class WinTypeKeywords;
 
38453
class WinFriend;
 
38454
class ExtAC;
 
38455
class ExtACBuilderCoupling;
 
38456
class ExtACSyntaxCoupling;
 
38457
class ExtACTree;
 
38458
class ExtACKeywords;
 
38459
class ExtGnu;
 
38460
class PragmaOnceUnitState;
 
38461
class PragmaOnce;
 
38462
class CMatchSyntax;
 
38463
namespace Puma {
 
38464
 
 
38465
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38466
 
 
38467
#line 38468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38468
} // closed Puma
 
38469
 
 
38470
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38471
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38472
#include "CCExprResolveH.ah"
 
38473
#endif
 
38474
namespace Puma {
 
38475
 
 
38476
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38477
 
 
38478
#line 38479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38479
} // closed Puma
 
38480
 
 
38481
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38482
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38483
#include "CExprResolveH.ah"
 
38484
#endif
 
38485
namespace Puma {
 
38486
 
 
38487
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38488
class CT_TemplateName : public CT_SpecialName {
 
38489
#line 38490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38490
  friend class ::CCExprResolve;
 
38491
  friend class ::CExprResolve;
 
38492
  friend class ::WinIfExists;
 
38493
  friend class ::WinImportHandler;
 
38494
  friend class ::WinMacros;
 
38495
  friend class ::WinAsm;
 
38496
  friend class ::WinDeclSpecs;
 
38497
  friend class ::WinMemberExplSpec;
 
38498
  friend class ::WinTypeKeywords;
 
38499
  friend class ::WinFriend;
 
38500
  friend class ::ExtAC;
 
38501
  friend class ::ExtACBuilderCoupling;
 
38502
  friend class ::ExtACSyntaxCoupling;
 
38503
  friend class ::ExtACTree;
 
38504
  friend class ::ExtACKeywords;
 
38505
  friend class ::ExtGnu;
 
38506
  friend class ::PragmaOnceUnitState;
 
38507
  friend class ::PragmaOnce;
 
38508
  friend class ::CMatchSyntax;
 
38509
 
 
38510
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38511
 
 
38512
public:
 
38513
  /** Constructor.
 
38514
   *  \param n The template class or function name.
 
38515
   *  \param a The template argument list. */
 
38516
  CT_TemplateName (CTree *n, CTree *a) 
 
38517
   { AddSon (n); AddSon (a); }
 
38518
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38519
  static const char *NodeId ();
 
38520
  /** Get the name of the node. Can be compared with NodeId(). */
 
38521
  const char *NodeName () const { return NodeId (); }
 
38522
  /** Get the template argument list. */
 
38523
  CT_TemplateArgList *Arguments () const 
 
38524
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
38525
  /** Get the template class or function name. */
 
38526
  CT_SimpleName *TemplateName () const 
 
38527
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
38528
  // may change in the future
 
38529
  const char *Text () const { return TemplateName ()->Text (); }
 
38530
 
 
38531
public:
 
38532
  /** Own new operator reusing memory. */
 
38533
  void *operator new (size_t);
 
38534
  /** Own delete operator. */
 
38535
  void operator delete (void *);
 
38536
   private:
 
38537
  typedef CT_TemplateName CCExprResolveExpr;
 
38538
 
 
38539
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38540
 public :
 
38541
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38542
  typedef CT_TemplateName CExprResolveExpr;
 
38543
 
 
38544
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38545
 public :
 
38546
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38547
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38548
};
 
38549
 
 
38550
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
38551
 *  Tree node representing the name of an overloaded operator. */
 
38552
 
 
38553
#line 38554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38554
} // closed Puma
 
38555
class CCExprResolve;
 
38556
class CExprResolve;
 
38557
class WinIfExists;
 
38558
class WinImportHandler;
 
38559
class WinMacros;
 
38560
class WinAsm;
 
38561
class WinDeclSpecs;
 
38562
class WinMemberExplSpec;
 
38563
class WinTypeKeywords;
 
38564
class WinFriend;
 
38565
class ExtAC;
 
38566
class ExtACBuilderCoupling;
 
38567
class ExtACSyntaxCoupling;
 
38568
class ExtACTree;
 
38569
class ExtACKeywords;
 
38570
class ExtGnu;
 
38571
class PragmaOnceUnitState;
 
38572
class PragmaOnce;
 
38573
class CMatchSyntax;
 
38574
namespace Puma {
 
38575
 
 
38576
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38577
 
 
38578
#line 38579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38579
} // closed Puma
 
38580
 
 
38581
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38582
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38583
#include "CCExprResolveH.ah"
 
38584
#endif
 
38585
namespace Puma {
 
38586
 
 
38587
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38588
 
 
38589
#line 38590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38590
} // closed Puma
 
38591
 
 
38592
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38593
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38594
#include "CExprResolveH.ah"
 
38595
#endif
 
38596
namespace Puma {
 
38597
 
 
38598
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38599
class CT_OperatorName : public CT_SpecialName {
 
38600
#line 38601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38601
  friend class ::CCExprResolve;
 
38602
  friend class ::CExprResolve;
 
38603
  friend class ::WinIfExists;
 
38604
  friend class ::WinImportHandler;
 
38605
  friend class ::WinMacros;
 
38606
  friend class ::WinAsm;
 
38607
  friend class ::WinDeclSpecs;
 
38608
  friend class ::WinMemberExplSpec;
 
38609
  friend class ::WinTypeKeywords;
 
38610
  friend class ::WinFriend;
 
38611
  friend class ::ExtAC;
 
38612
  friend class ::ExtACBuilderCoupling;
 
38613
  friend class ::ExtACSyntaxCoupling;
 
38614
  friend class ::ExtACTree;
 
38615
  friend class ::ExtACKeywords;
 
38616
  friend class ::ExtGnu;
 
38617
  friend class ::PragmaOnceUnitState;
 
38618
  friend class ::PragmaOnce;
 
38619
  friend class ::CMatchSyntax;
 
38620
 
 
38621
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38622
 
 
38623
  int _oper;
 
38624
 
 
38625
public:
 
38626
  /** Complex operator types. */
 
38627
  enum { 
 
38628
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
38629
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
38630
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
38631
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
38632
  };
 
38633
 
 
38634
public:
 
38635
  /** Constructor.
 
38636
   *  \param op The token containing the operator. */
 
38637
  CT_OperatorName (CTree *op);
 
38638
  /** Constructor.
 
38639
   *  \param f The operator function keyword 'operator'.
 
38640
   *  \param op The token containing the operator. 
 
38641
   *  \param o The token of '[' or '('.
 
38642
   *  \param c The token of ']' or ')'. */
 
38643
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
38644
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38645
  static const char *NodeId ();
 
38646
  /** Get the name of the node. Can be compared with NodeId(). */
 
38647
  const char *NodeName () const { return NodeId (); }
 
38648
  /** Get the operator type (either the token type or one of 
 
38649
   *  the complex operator types). */
 
38650
  int Operator () const { return _oper; }
 
38651
 
 
38652
public:
 
38653
  /** Own new operator reusing memory. */
 
38654
  void *operator new (size_t);
 
38655
  /** Own delete operator. */
 
38656
  void operator delete (void *);
 
38657
   private:
 
38658
  typedef CT_OperatorName CCExprResolveExpr;
 
38659
 
 
38660
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38661
 public :
 
38662
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38663
  typedef CT_OperatorName CExprResolveExpr;
 
38664
 
 
38665
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38666
 public :
 
38667
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38668
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38669
};
 
38670
 
 
38671
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
38672
 *  Tree node representing the name of a conversion function. */
 
38673
 
 
38674
#line 38675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38675
} // closed Puma
 
38676
class CCExprResolve;
 
38677
class CExprResolve;
 
38678
class WinIfExists;
 
38679
class WinImportHandler;
 
38680
class WinMacros;
 
38681
class WinAsm;
 
38682
class WinDeclSpecs;
 
38683
class WinMemberExplSpec;
 
38684
class WinTypeKeywords;
 
38685
class WinFriend;
 
38686
class ExtAC;
 
38687
class ExtACBuilderCoupling;
 
38688
class ExtACSyntaxCoupling;
 
38689
class ExtACTree;
 
38690
class ExtACKeywords;
 
38691
class ExtGnu;
 
38692
class PragmaOnceUnitState;
 
38693
class PragmaOnce;
 
38694
class CMatchSyntax;
 
38695
namespace Puma {
 
38696
 
 
38697
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38698
 
 
38699
#line 38700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38700
} // closed Puma
 
38701
 
 
38702
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38703
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38704
#include "CCExprResolveH.ah"
 
38705
#endif
 
38706
namespace Puma {
 
38707
 
 
38708
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38709
 
 
38710
#line 38711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38711
} // closed Puma
 
38712
 
 
38713
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38714
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38715
#include "CExprResolveH.ah"
 
38716
#endif
 
38717
namespace Puma {
 
38718
 
 
38719
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38720
class CT_ConversionName : public CT_SpecialName {
 
38721
#line 38722 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38722
  friend class ::CCExprResolve;
 
38723
  friend class ::CExprResolve;
 
38724
  friend class ::WinIfExists;
 
38725
  friend class ::WinImportHandler;
 
38726
  friend class ::WinMacros;
 
38727
  friend class ::WinAsm;
 
38728
  friend class ::WinDeclSpecs;
 
38729
  friend class ::WinMemberExplSpec;
 
38730
  friend class ::WinTypeKeywords;
 
38731
  friend class ::WinFriend;
 
38732
  friend class ::ExtAC;
 
38733
  friend class ::ExtACBuilderCoupling;
 
38734
  friend class ::ExtACSyntaxCoupling;
 
38735
  friend class ::ExtACTree;
 
38736
  friend class ::ExtACKeywords;
 
38737
  friend class ::ExtGnu;
 
38738
  friend class ::PragmaOnceUnitState;
 
38739
  friend class ::PragmaOnce;
 
38740
  friend class ::CMatchSyntax;
 
38741
 
 
38742
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38743
 
 
38744
public:
 
38745
  /** Constructor.
 
38746
   *  \param f The operator function keyword 'operator'.
 
38747
   *  \param t The sub-tree containing the conversion type. */
 
38748
  CT_ConversionName (CTree *f, CTree *t);
 
38749
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38750
  static const char *NodeId ();
 
38751
  /** Get the name of the node. Can be compared with NodeId(). */
 
38752
  const char *NodeName () const { return NodeId (); }
 
38753
  /** Get the conversion type. */
 
38754
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
38755
 
 
38756
public:
 
38757
  /** Own new operator reusing memory. */
 
38758
  void *operator new (size_t);
 
38759
  /** Own delete operator. */
 
38760
  void operator delete (void *);
 
38761
   private:
 
38762
  typedef CT_ConversionName CCExprResolveExpr;
 
38763
 
 
38764
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38765
 public :
 
38766
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38767
  typedef CT_ConversionName CExprResolveExpr;
 
38768
 
 
38769
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38770
 public :
 
38771
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38772
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38773
};
 
38774
 
 
38775
/** \class CT_QualName CTree.h Puma/CTree.h
 
38776
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
38777
 
 
38778
#line 38779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38779
} // closed Puma
 
38780
class CCExprResolve;
 
38781
class CExprResolve;
 
38782
class WinIfExists;
 
38783
class WinImportHandler;
 
38784
class WinMacros;
 
38785
class WinAsm;
 
38786
class WinDeclSpecs;
 
38787
class WinMemberExplSpec;
 
38788
class WinTypeKeywords;
 
38789
class WinFriend;
 
38790
class ExtAC;
 
38791
class ExtACBuilderCoupling;
 
38792
class ExtACSyntaxCoupling;
 
38793
class ExtACTree;
 
38794
class ExtACKeywords;
 
38795
class ExtGnu;
 
38796
class PragmaOnceUnitState;
 
38797
class PragmaOnce;
 
38798
class CMatchSyntax;
 
38799
namespace Puma {
 
38800
 
 
38801
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38802
 
 
38803
#line 38804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38804
} // closed Puma
 
38805
 
 
38806
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38807
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38808
#include "CCExprResolveH.ah"
 
38809
#endif
 
38810
namespace Puma {
 
38811
 
 
38812
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38813
 
 
38814
#line 38815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38815
} // closed Puma
 
38816
 
 
38817
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38818
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38819
#include "CExprResolveH.ah"
 
38820
#endif
 
38821
namespace Puma {
 
38822
 
 
38823
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38824
class CT_QualName : public CT_SimpleName {
 
38825
#line 38826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38826
  friend class ::CCExprResolve;
 
38827
  friend class ::CExprResolve;
 
38828
  friend class ::WinIfExists;
 
38829
  friend class ::WinImportHandler;
 
38830
  friend class ::WinMacros;
 
38831
  friend class ::WinAsm;
 
38832
  friend class ::WinDeclSpecs;
 
38833
  friend class ::WinMemberExplSpec;
 
38834
  friend class ::WinTypeKeywords;
 
38835
  friend class ::WinFriend;
 
38836
  friend class ::ExtAC;
 
38837
  friend class ::ExtACBuilderCoupling;
 
38838
  friend class ::ExtACSyntaxCoupling;
 
38839
  friend class ::ExtACTree;
 
38840
  friend class ::ExtACKeywords;
 
38841
  friend class ::ExtGnu;
 
38842
  friend class ::PragmaOnceUnitState;
 
38843
  friend class ::PragmaOnce;
 
38844
  friend class ::CMatchSyntax;
 
38845
 
 
38846
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38847
 
 
38848
public:
 
38849
  /** Constructor.
 
38850
   *  \param size The initial number sub-names plus separators. */
 
38851
  CT_QualName (int size = 3) : 
 
38852
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
38853
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38854
  static const char *NodeId ();
 
38855
  /** Get the name of the node. Can be compared with NodeId(). */
 
38856
  const char *NodeName () const { return NodeId (); }
 
38857
  /** Print the qualified name on the given stream. 
 
38858
   *  \param os The output stream. */
 
38859
  void print (ostream &os) const;
 
38860
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
38861
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
38862
  /** Get the string containing the last name of the qualified name. */
 
38863
  const char *Text () const { return Name ()->Text (); }
 
38864
  /** Get the type of the last name. */
 
38865
  CTypeInfo *Type () const { return Name ()->Type (); }
 
38866
  /** Get the value of the last name. */
 
38867
  CExprValue *Value () const { return Name ()->Value (); }
 
38868
  /** Get the semantic value object of the last name. */
 
38869
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
38870
  /** Get the semantic information object of the last name. */
 
38871
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
38872
 
 
38873
public:
 
38874
  /** Own new operator reusing memory. */
 
38875
  void *operator new (size_t);
 
38876
  /** Own delete operator. */
 
38877
  void operator delete (void *);
 
38878
   private:
 
38879
  typedef CT_QualName CCExprResolveExpr;
 
38880
 
 
38881
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38882
 public :
 
38883
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38884
  typedef CT_QualName CExprResolveExpr;
 
38885
 
 
38886
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38887
 public :
 
38888
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38889
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38890
};
 
38891
 
 
38892
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
38893
 *  Tree node representing a qualified name with introducing name separator,
 
38894
 *  e.g. ::X::Y::Z. */
 
38895
 
 
38896
#line 38897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38897
} // closed Puma
 
38898
class CCExprResolve;
 
38899
class CExprResolve;
 
38900
class WinIfExists;
 
38901
class WinImportHandler;
 
38902
class WinMacros;
 
38903
class WinAsm;
 
38904
class WinDeclSpecs;
 
38905
class WinMemberExplSpec;
 
38906
class WinTypeKeywords;
 
38907
class WinFriend;
 
38908
class ExtAC;
 
38909
class ExtACBuilderCoupling;
 
38910
class ExtACSyntaxCoupling;
 
38911
class ExtACTree;
 
38912
class ExtACKeywords;
 
38913
class ExtGnu;
 
38914
class PragmaOnceUnitState;
 
38915
class PragmaOnce;
 
38916
class CMatchSyntax;
 
38917
namespace Puma {
 
38918
 
 
38919
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38920
 
 
38921
#line 38922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38922
} // closed Puma
 
38923
 
 
38924
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38925
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38926
#include "CCExprResolveH.ah"
 
38927
#endif
 
38928
namespace Puma {
 
38929
 
 
38930
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38931
 
 
38932
#line 38933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38933
} // closed Puma
 
38934
 
 
38935
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38936
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38937
#include "CExprResolveH.ah"
 
38938
#endif
 
38939
namespace Puma {
 
38940
 
 
38941
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38942
class CT_RootQualName : public CT_QualName {
 
38943
#line 38944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38944
  friend class ::CCExprResolve;
 
38945
  friend class ::CExprResolve;
 
38946
  friend class ::WinIfExists;
 
38947
  friend class ::WinImportHandler;
 
38948
  friend class ::WinMacros;
 
38949
  friend class ::WinAsm;
 
38950
  friend class ::WinDeclSpecs;
 
38951
  friend class ::WinMemberExplSpec;
 
38952
  friend class ::WinTypeKeywords;
 
38953
  friend class ::WinFriend;
 
38954
  friend class ::ExtAC;
 
38955
  friend class ::ExtACBuilderCoupling;
 
38956
  friend class ::ExtACSyntaxCoupling;
 
38957
  friend class ::ExtACTree;
 
38958
  friend class ::ExtACKeywords;
 
38959
  friend class ::ExtGnu;
 
38960
  friend class ::PragmaOnceUnitState;
 
38961
  friend class ::PragmaOnce;
 
38962
  friend class ::CMatchSyntax;
 
38963
 
 
38964
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38965
 
 
38966
public:
 
38967
  /** Constructor.
 
38968
   *  \param size Initial number of sub-name plus separator. */
 
38969
  CT_RootQualName (int size = 2) : 
 
38970
    CT_QualName (size) { AddProperties (INTRO); }
 
38971
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38972
  static const char *NodeId ();
 
38973
  /** Get the name of the node. Can be compared with NodeId(). */
 
38974
  const char *NodeName () const { return NodeId (); }
 
38975
 
 
38976
public:
 
38977
  /** Own new operator reusing memory. */
 
38978
  void *operator new (size_t);
 
38979
  /** Own delete operator. */
 
38980
  void operator delete (void *);
 
38981
   private:
 
38982
  typedef CT_RootQualName CCExprResolveExpr;
 
38983
 
 
38984
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38985
 public :
 
38986
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38987
  typedef CT_RootQualName CExprResolveExpr;
 
38988
 
 
38989
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38990
 public :
 
38991
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38992
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38993
};
 
38994
 
 
38995
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
38996
 *  Tree node representing a binary expression, e.g. a+b. */
 
38997
 
 
38998
#line 38999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
38999
} // closed Puma
 
39000
class CCExprResolve;
 
39001
class CExprResolve;
 
39002
class WinIfExists;
 
39003
class WinImportHandler;
 
39004
class WinMacros;
 
39005
class WinAsm;
 
39006
class WinDeclSpecs;
 
39007
class WinMemberExplSpec;
 
39008
class WinTypeKeywords;
 
39009
class WinFriend;
 
39010
class ExtAC;
 
39011
class ExtACBuilderCoupling;
 
39012
class ExtACSyntaxCoupling;
 
39013
class ExtACTree;
 
39014
class ExtACKeywords;
 
39015
class ExtGnu;
 
39016
class PragmaOnceUnitState;
 
39017
class PragmaOnce;
 
39018
class CMatchSyntax;
 
39019
namespace Puma {
 
39020
 
 
39021
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39022
 
 
39023
#line 39024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39024
} // closed Puma
 
39025
 
 
39026
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39027
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39028
#include "CCExprResolveH.ah"
 
39029
#endif
 
39030
namespace Puma {
 
39031
 
 
39032
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39033
 
 
39034
#line 39035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39035
} // closed Puma
 
39036
 
 
39037
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39038
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39039
#include "CExprResolveH.ah"
 
39040
#endif
 
39041
namespace Puma {
 
39042
 
 
39043
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39044
class CT_BinaryExpr : public CT_Call {
 
39045
#line 39046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39046
  friend class ::CCExprResolve;
 
39047
  friend class ::CExprResolve;
 
39048
  friend class ::WinIfExists;
 
39049
  friend class ::WinImportHandler;
 
39050
  friend class ::WinMacros;
 
39051
  friend class ::WinAsm;
 
39052
  friend class ::WinDeclSpecs;
 
39053
  friend class ::WinMemberExplSpec;
 
39054
  friend class ::WinTypeKeywords;
 
39055
  friend class ::WinFriend;
 
39056
  friend class ::ExtAC;
 
39057
  friend class ::ExtACBuilderCoupling;
 
39058
  friend class ::ExtACSyntaxCoupling;
 
39059
  friend class ::ExtACTree;
 
39060
  friend class ::ExtACKeywords;
 
39061
  friend class ::ExtGnu;
 
39062
  friend class ::PragmaOnceUnitState;
 
39063
  friend class ::PragmaOnce;
 
39064
  friend class ::CMatchSyntax;
 
39065
 
 
39066
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39067
 
 
39068
  CTree *sons[3]; // expr, oper, expr
 
39069
 
 
39070
public:
 
39071
  /** Constructor. 
 
39072
   *  \param l Left hand side of the expression. 
 
39073
   *  \param o The operator token. 
 
39074
   *  \param r Right hand side of the expression. */
 
39075
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
39076
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
39077
  }
 
39078
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39079
  static const char *NodeId ();
 
39080
  /** Get the name of the node. Can be compared with NodeId(). */
 
39081
  const char *NodeName () const { return NodeId (); }
 
39082
  /** Get the number of sons. */
 
39083
  int Sons () const { return 3; }
 
39084
  /** Get the n-th son.
 
39085
   *  \param n The index of the son.
 
39086
   *  \return The n-th son or NULL. */
 
39087
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39088
  /** Replace a son.
 
39089
   *  \param old_son The son to replace.
 
39090
   *  \param new_son The new son. */
 
39091
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39092
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39093
  }
 
39094
   private:
 
39095
  typedef CT_BinaryExpr CCExprResolveExpr;
 
39096
 
 
39097
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39098
 public :
 
39099
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39100
  typedef CT_BinaryExpr CExprResolveExpr;
 
39101
 
 
39102
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39103
 public :
 
39104
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39105
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39106
};
 
39107
 
 
39108
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
39109
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
39110
 
 
39111
#line 39112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39112
} // closed Puma
 
39113
class CCExprResolve;
 
39114
class CExprResolve;
 
39115
class WinIfExists;
 
39116
class WinImportHandler;
 
39117
class WinMacros;
 
39118
class WinAsm;
 
39119
class WinDeclSpecs;
 
39120
class WinMemberExplSpec;
 
39121
class WinTypeKeywords;
 
39122
class WinFriend;
 
39123
class ExtAC;
 
39124
class ExtACBuilderCoupling;
 
39125
class ExtACSyntaxCoupling;
 
39126
class ExtACTree;
 
39127
class ExtACKeywords;
 
39128
class ExtGnu;
 
39129
class PragmaOnceUnitState;
 
39130
class PragmaOnce;
 
39131
class CMatchSyntax;
 
39132
namespace Puma {
 
39133
 
 
39134
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39135
 
 
39136
#line 39137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39137
} // closed Puma
 
39138
 
 
39139
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39140
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39141
#include "CCExprResolveH.ah"
 
39142
#endif
 
39143
namespace Puma {
 
39144
 
 
39145
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39146
 
 
39147
#line 39148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39148
} // closed Puma
 
39149
 
 
39150
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39151
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39152
#include "CExprResolveH.ah"
 
39153
#endif
 
39154
namespace Puma {
 
39155
 
 
39156
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39157
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
39158
#line 39159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39159
  friend class ::CCExprResolve;
 
39160
  friend class ::CExprResolve;
 
39161
  friend class ::WinIfExists;
 
39162
  friend class ::WinImportHandler;
 
39163
  friend class ::WinMacros;
 
39164
  friend class ::WinAsm;
 
39165
  friend class ::WinDeclSpecs;
 
39166
  friend class ::WinMemberExplSpec;
 
39167
  friend class ::WinTypeKeywords;
 
39168
  friend class ::WinFriend;
 
39169
  friend class ::ExtAC;
 
39170
  friend class ::ExtACBuilderCoupling;
 
39171
  friend class ::ExtACSyntaxCoupling;
 
39172
  friend class ::ExtACTree;
 
39173
  friend class ::ExtACKeywords;
 
39174
  friend class ::ExtGnu;
 
39175
  friend class ::PragmaOnceUnitState;
 
39176
  friend class ::PragmaOnce;
 
39177
  friend class ::CMatchSyntax;
 
39178
 
 
39179
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39180
 
 
39181
  CTree *sons[3]; // expr, oper, expr
 
39182
  
 
39183
public:
 
39184
  /** Constructor.
 
39185
   *  \param e Expression on which to call the member.
 
39186
   *  \param o The arrow operator token.
 
39187
   *  \param i The member name. */
 
39188
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
39189
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
39190
  }
 
39191
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39192
  static const char *NodeId ();
 
39193
  /** Get the name of the node. Can be compared with NodeId(). */
 
39194
  const char *NodeName () const { return NodeId (); }
 
39195
  /** Get the number of sons. */
 
39196
  int Sons () const { return 3; }
 
39197
  /** Get the n-th son.
 
39198
   *  \param n The index of the son.
 
39199
   *  \return The n-th son or NULL. */
 
39200
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39201
  /** Replace a son.
 
39202
   *  \param old_son The son to replace.
 
39203
   *  \param new_son The new son. */
 
39204
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39205
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39206
  }
 
39207
   private:
 
39208
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
39209
 
 
39210
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39211
 public :
 
39212
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39213
  typedef CT_MembPtrExpr CExprResolveExpr;
 
39214
 
 
39215
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39216
 public :
 
39217
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39218
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39219
};
 
39220
 
 
39221
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
39222
 *  Tree node representing a member reference expression, e.g. a.b. */
 
39223
 
 
39224
#line 39225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39225
} // closed Puma
 
39226
class CCExprResolve;
 
39227
class CExprResolve;
 
39228
class WinIfExists;
 
39229
class WinImportHandler;
 
39230
class WinMacros;
 
39231
class WinAsm;
 
39232
class WinDeclSpecs;
 
39233
class WinMemberExplSpec;
 
39234
class WinTypeKeywords;
 
39235
class WinFriend;
 
39236
class ExtAC;
 
39237
class ExtACBuilderCoupling;
 
39238
class ExtACSyntaxCoupling;
 
39239
class ExtACTree;
 
39240
class ExtACKeywords;
 
39241
class ExtGnu;
 
39242
class PragmaOnceUnitState;
 
39243
class PragmaOnce;
 
39244
class CMatchSyntax;
 
39245
namespace Puma {
 
39246
 
 
39247
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39248
 
 
39249
#line 39250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39250
} // closed Puma
 
39251
 
 
39252
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39253
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39254
#include "CCExprResolveH.ah"
 
39255
#endif
 
39256
namespace Puma {
 
39257
 
 
39258
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39259
 
 
39260
#line 39261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39261
} // closed Puma
 
39262
 
 
39263
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39264
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39265
#include "CExprResolveH.ah"
 
39266
#endif
 
39267
namespace Puma {
 
39268
 
 
39269
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39270
class CT_MembRefExpr : public CT_MembPtrExpr {
 
39271
#line 39272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39272
  friend class ::CCExprResolve;
 
39273
  friend class ::CExprResolve;
 
39274
  friend class ::WinIfExists;
 
39275
  friend class ::WinImportHandler;
 
39276
  friend class ::WinMacros;
 
39277
  friend class ::WinAsm;
 
39278
  friend class ::WinDeclSpecs;
 
39279
  friend class ::WinMemberExplSpec;
 
39280
  friend class ::WinTypeKeywords;
 
39281
  friend class ::WinFriend;
 
39282
  friend class ::ExtAC;
 
39283
  friend class ::ExtACBuilderCoupling;
 
39284
  friend class ::ExtACSyntaxCoupling;
 
39285
  friend class ::ExtACTree;
 
39286
  friend class ::ExtACKeywords;
 
39287
  friend class ::ExtGnu;
 
39288
  friend class ::PragmaOnceUnitState;
 
39289
  friend class ::PragmaOnce;
 
39290
  friend class ::CMatchSyntax;
 
39291
 
 
39292
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39293
 
 
39294
public:
 
39295
  /** Constructor.
 
39296
   *  \param e Expression on which to call the member.
 
39297
   *  \param o The dot operator.
 
39298
   *  \param i The member name. */
 
39299
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
39300
    CT_MembPtrExpr (e, o, i) {}
 
39301
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39302
  static const char *NodeId ();
 
39303
  /** Get the name of the node. Can be compared with NodeId(). */
 
39304
  const char *NodeName () const { return NodeId (); }
 
39305
   private:
 
39306
  typedef CT_MembRefExpr CCExprResolveExpr;
 
39307
 
 
39308
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39309
 public :
 
39310
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39311
  typedef CT_MembRefExpr CExprResolveExpr;
 
39312
 
 
39313
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39314
 public :
 
39315
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39316
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39317
};
 
39318
 
 
39319
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
39320
 *  Base class for tree nodes representing unary expressions. */
 
39321
 
 
39322
#line 39323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39323
} // closed Puma
 
39324
class CCExprResolve;
 
39325
class CExprResolve;
 
39326
class WinIfExists;
 
39327
class WinImportHandler;
 
39328
class WinMacros;
 
39329
class WinAsm;
 
39330
class WinDeclSpecs;
 
39331
class WinMemberExplSpec;
 
39332
class WinTypeKeywords;
 
39333
class WinFriend;
 
39334
class ExtAC;
 
39335
class ExtACBuilderCoupling;
 
39336
class ExtACSyntaxCoupling;
 
39337
class ExtACTree;
 
39338
class ExtACKeywords;
 
39339
class ExtGnu;
 
39340
class PragmaOnceUnitState;
 
39341
class PragmaOnce;
 
39342
class CMatchSyntax;
 
39343
namespace Puma {
 
39344
 
 
39345
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39346
 
 
39347
#line 39348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39348
} // closed Puma
 
39349
 
 
39350
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39351
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39352
#include "CCExprResolveH.ah"
 
39353
#endif
 
39354
namespace Puma {
 
39355
 
 
39356
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39357
 
 
39358
#line 39359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39359
} // closed Puma
 
39360
 
 
39361
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39362
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39363
#include "CExprResolveH.ah"
 
39364
#endif
 
39365
namespace Puma {
 
39366
 
 
39367
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39368
class CT_UnaryExpr : public CT_Call {
 
39369
#line 39370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39370
  friend class ::CCExprResolve;
 
39371
  friend class ::CExprResolve;
 
39372
  friend class ::WinIfExists;
 
39373
  friend class ::WinImportHandler;
 
39374
  friend class ::WinMacros;
 
39375
  friend class ::WinAsm;
 
39376
  friend class ::WinDeclSpecs;
 
39377
  friend class ::WinMemberExplSpec;
 
39378
  friend class ::WinTypeKeywords;
 
39379
  friend class ::WinFriend;
 
39380
  friend class ::ExtAC;
 
39381
  friend class ::ExtACBuilderCoupling;
 
39382
  friend class ::ExtACSyntaxCoupling;
 
39383
  friend class ::ExtACTree;
 
39384
  friend class ::ExtACKeywords;
 
39385
  friend class ::ExtGnu;
 
39386
  friend class ::PragmaOnceUnitState;
 
39387
  friend class ::PragmaOnce;
 
39388
  friend class ::CMatchSyntax;
 
39389
 
 
39390
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39391
 
 
39392
  CTree *sons[2]; // oper, expr
 
39393
 
 
39394
public:
 
39395
  /** Constructor.
 
39396
   *  \param o The unary operator.
 
39397
   *  \param e The expression on which the operator is invoked. */
 
39398
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
39399
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39400
  static const char *NodeId ();
 
39401
  /** Get the name of the node. Can be compared with NodeId(). */
 
39402
  const char *NodeName () const { return NodeId (); }
 
39403
  /** Get the number of sons. */
 
39404
  int Sons () const { return 2; }
 
39405
  /** Get the n-th son.
 
39406
   *  \param n The index of the son.
 
39407
   *  \return The n-th son or NULL. */
 
39408
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
39409
  /** Replace a son.
 
39410
   *  \param old_son The son to replace.
 
39411
   *  \param new_son The new son. */
 
39412
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39413
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
39414
  }
 
39415
  /** Get the expression node. */
 
39416
  CTree *Expr () const { return sons[1]; }
 
39417
   private:
 
39418
  typedef CT_UnaryExpr CCExprResolveExpr;
 
39419
 
 
39420
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39421
 public :
 
39422
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39423
  typedef CT_UnaryExpr CExprResolveExpr;
 
39424
 
 
39425
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39426
 public :
 
39427
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39428
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39429
};
 
39430
 
 
39431
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
39432
 *  Tree node representing a postfix expression, e.g. a++. */
 
39433
 
 
39434
#line 39435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39435
} // closed Puma
 
39436
class CCExprResolve;
 
39437
class CExprResolve;
 
39438
class WinIfExists;
 
39439
class WinImportHandler;
 
39440
class WinMacros;
 
39441
class WinAsm;
 
39442
class WinDeclSpecs;
 
39443
class WinMemberExplSpec;
 
39444
class WinTypeKeywords;
 
39445
class WinFriend;
 
39446
class ExtAC;
 
39447
class ExtACBuilderCoupling;
 
39448
class ExtACSyntaxCoupling;
 
39449
class ExtACTree;
 
39450
class ExtACKeywords;
 
39451
class ExtGnu;
 
39452
class PragmaOnceUnitState;
 
39453
class PragmaOnce;
 
39454
class CMatchSyntax;
 
39455
namespace Puma {
 
39456
 
 
39457
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39458
 
 
39459
#line 39460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39460
} // closed Puma
 
39461
 
 
39462
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39463
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39464
#include "CCExprResolveH.ah"
 
39465
#endif
 
39466
namespace Puma {
 
39467
 
 
39468
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39469
 
 
39470
#line 39471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39471
} // closed Puma
 
39472
 
 
39473
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39474
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39475
#include "CExprResolveH.ah"
 
39476
#endif
 
39477
namespace Puma {
 
39478
 
 
39479
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39480
class CT_PostfixExpr : public CT_UnaryExpr {
 
39481
#line 39482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39482
  friend class ::CCExprResolve;
 
39483
  friend class ::CExprResolve;
 
39484
  friend class ::WinIfExists;
 
39485
  friend class ::WinImportHandler;
 
39486
  friend class ::WinMacros;
 
39487
  friend class ::WinAsm;
 
39488
  friend class ::WinDeclSpecs;
 
39489
  friend class ::WinMemberExplSpec;
 
39490
  friend class ::WinTypeKeywords;
 
39491
  friend class ::WinFriend;
 
39492
  friend class ::ExtAC;
 
39493
  friend class ::ExtACBuilderCoupling;
 
39494
  friend class ::ExtACSyntaxCoupling;
 
39495
  friend class ::ExtACTree;
 
39496
  friend class ::ExtACKeywords;
 
39497
  friend class ::ExtGnu;
 
39498
  friend class ::PragmaOnceUnitState;
 
39499
  friend class ::PragmaOnce;
 
39500
  friend class ::CMatchSyntax;
 
39501
 
 
39502
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39503
 
 
39504
public:
 
39505
  /** Constructor.
 
39506
   *  \param e The expression on which to invoke the operator. 
 
39507
   *  \param o The postfix operator. */
 
39508
  CT_PostfixExpr (CTree *e, CTree *o) :
 
39509
    CT_UnaryExpr (e, o) {}
 
39510
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39511
  static const char *NodeId ();
 
39512
  /** Get the name of the node. Can be compared with NodeId(). */
 
39513
  const char *NodeName () const { return NodeId (); }
 
39514
   private:
 
39515
  typedef CT_PostfixExpr CCExprResolveExpr;
 
39516
 
 
39517
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39518
 public :
 
39519
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39520
  typedef CT_PostfixExpr CExprResolveExpr;
 
39521
 
 
39522
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39523
 public :
 
39524
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39525
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39526
};
 
39527
 
 
39528
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
39529
 *  Tree node representing an address expression, e.g. &a. */
 
39530
 
 
39531
#line 39532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39532
} // closed Puma
 
39533
class CCExprResolve;
 
39534
class CExprResolve;
 
39535
class WinIfExists;
 
39536
class WinImportHandler;
 
39537
class WinMacros;
 
39538
class WinAsm;
 
39539
class WinDeclSpecs;
 
39540
class WinMemberExplSpec;
 
39541
class WinTypeKeywords;
 
39542
class WinFriend;
 
39543
class ExtAC;
 
39544
class ExtACBuilderCoupling;
 
39545
class ExtACSyntaxCoupling;
 
39546
class ExtACTree;
 
39547
class ExtACKeywords;
 
39548
class ExtGnu;
 
39549
class PragmaOnceUnitState;
 
39550
class PragmaOnce;
 
39551
class CMatchSyntax;
 
39552
namespace Puma {
 
39553
 
 
39554
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39555
 
 
39556
#line 39557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39557
} // closed Puma
 
39558
 
 
39559
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39560
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39561
#include "CCExprResolveH.ah"
 
39562
#endif
 
39563
namespace Puma {
 
39564
 
 
39565
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39566
 
 
39567
#line 39568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39568
} // closed Puma
 
39569
 
 
39570
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39571
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39572
#include "CExprResolveH.ah"
 
39573
#endif
 
39574
namespace Puma {
 
39575
 
 
39576
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39577
class CT_AddrExpr : public CT_UnaryExpr {
 
39578
#line 39579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39579
  friend class ::CCExprResolve;
 
39580
  friend class ::CExprResolve;
 
39581
  friend class ::WinIfExists;
 
39582
  friend class ::WinImportHandler;
 
39583
  friend class ::WinMacros;
 
39584
  friend class ::WinAsm;
 
39585
  friend class ::WinDeclSpecs;
 
39586
  friend class ::WinMemberExplSpec;
 
39587
  friend class ::WinTypeKeywords;
 
39588
  friend class ::WinFriend;
 
39589
  friend class ::ExtAC;
 
39590
  friend class ::ExtACBuilderCoupling;
 
39591
  friend class ::ExtACSyntaxCoupling;
 
39592
  friend class ::ExtACTree;
 
39593
  friend class ::ExtACKeywords;
 
39594
  friend class ::ExtGnu;
 
39595
  friend class ::PragmaOnceUnitState;
 
39596
  friend class ::PragmaOnce;
 
39597
  friend class ::CMatchSyntax;
 
39598
 
 
39599
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39600
 
 
39601
public:
 
39602
  /** Constructor.
 
39603
   *  \param o The address operator, i.e. '&'.
 
39604
   *  \param e The expression from which to take the address. */
 
39605
  CT_AddrExpr (CTree *o, CTree *e) :
 
39606
    CT_UnaryExpr (o, e) {}
 
39607
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39608
  static const char *NodeId ();
 
39609
  /** Get the name of the node. Can be compared with NodeId(). */
 
39610
  const char *NodeName () const { return NodeId (); }
 
39611
   private:
 
39612
  typedef CT_AddrExpr CCExprResolveExpr;
 
39613
 
 
39614
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39615
 public :
 
39616
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39617
  typedef CT_AddrExpr CExprResolveExpr;
 
39618
 
 
39619
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39620
 public :
 
39621
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39622
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39623
};
 
39624
 
 
39625
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
39626
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
39627
 
 
39628
#line 39629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39629
} // closed Puma
 
39630
class CCExprResolve;
 
39631
class CExprResolve;
 
39632
class WinIfExists;
 
39633
class WinImportHandler;
 
39634
class WinMacros;
 
39635
class WinAsm;
 
39636
class WinDeclSpecs;
 
39637
class WinMemberExplSpec;
 
39638
class WinTypeKeywords;
 
39639
class WinFriend;
 
39640
class ExtAC;
 
39641
class ExtACBuilderCoupling;
 
39642
class ExtACSyntaxCoupling;
 
39643
class ExtACTree;
 
39644
class ExtACKeywords;
 
39645
class ExtGnu;
 
39646
class PragmaOnceUnitState;
 
39647
class PragmaOnce;
 
39648
class CMatchSyntax;
 
39649
namespace Puma {
 
39650
 
 
39651
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39652
 
 
39653
#line 39654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39654
} // closed Puma
 
39655
 
 
39656
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39657
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39658
#include "CCExprResolveH.ah"
 
39659
#endif
 
39660
namespace Puma {
 
39661
 
 
39662
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39663
 
 
39664
#line 39665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39665
} // closed Puma
 
39666
 
 
39667
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39668
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39669
#include "CExprResolveH.ah"
 
39670
#endif
 
39671
namespace Puma {
 
39672
 
 
39673
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39674
class CT_DerefExpr : public CT_UnaryExpr {
 
39675
#line 39676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39676
  friend class ::CCExprResolve;
 
39677
  friend class ::CExprResolve;
 
39678
  friend class ::WinIfExists;
 
39679
  friend class ::WinImportHandler;
 
39680
  friend class ::WinMacros;
 
39681
  friend class ::WinAsm;
 
39682
  friend class ::WinDeclSpecs;
 
39683
  friend class ::WinMemberExplSpec;
 
39684
  friend class ::WinTypeKeywords;
 
39685
  friend class ::WinFriend;
 
39686
  friend class ::ExtAC;
 
39687
  friend class ::ExtACBuilderCoupling;
 
39688
  friend class ::ExtACSyntaxCoupling;
 
39689
  friend class ::ExtACTree;
 
39690
  friend class ::ExtACKeywords;
 
39691
  friend class ::ExtGnu;
 
39692
  friend class ::PragmaOnceUnitState;
 
39693
  friend class ::PragmaOnce;
 
39694
  friend class ::CMatchSyntax;
 
39695
 
 
39696
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39697
 
 
39698
public:
 
39699
  /** Constructor.
 
39700
   *  \param o The dereferencing operator, i.e. '*'.
 
39701
   *  \param e The expression to dereference. */
 
39702
  CT_DerefExpr (CTree *o, CTree *e) :
 
39703
    CT_UnaryExpr (o, e) {}
 
39704
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39705
  static const char *NodeId ();
 
39706
  /** Get the name of the node. Can be compared with NodeId(). */
 
39707
  const char *NodeName () const { return NodeId (); }
 
39708
   private:
 
39709
  typedef CT_DerefExpr CCExprResolveExpr;
 
39710
 
 
39711
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39712
 public :
 
39713
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39714
  typedef CT_DerefExpr CExprResolveExpr;
 
39715
 
 
39716
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39717
 public :
 
39718
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39719
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39720
};
 
39721
 
 
39722
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
39723
 *  Tree node representing a delete expression, e.g. delete a. */
 
39724
 
 
39725
#line 39726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39726
} // closed Puma
 
39727
class CCExprResolve;
 
39728
class CExprResolve;
 
39729
class WinIfExists;
 
39730
class WinImportHandler;
 
39731
class WinMacros;
 
39732
class WinAsm;
 
39733
class WinDeclSpecs;
 
39734
class WinMemberExplSpec;
 
39735
class WinTypeKeywords;
 
39736
class WinFriend;
 
39737
class ExtAC;
 
39738
class ExtACBuilderCoupling;
 
39739
class ExtACSyntaxCoupling;
 
39740
class ExtACTree;
 
39741
class ExtACKeywords;
 
39742
class ExtGnu;
 
39743
class PragmaOnceUnitState;
 
39744
class PragmaOnce;
 
39745
class CMatchSyntax;
 
39746
namespace Puma {
 
39747
 
 
39748
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39749
 
 
39750
#line 39751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39751
} // closed Puma
 
39752
 
 
39753
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39754
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39755
#include "CCExprResolveH.ah"
 
39756
#endif
 
39757
namespace Puma {
 
39758
 
 
39759
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39760
 
 
39761
#line 39762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39762
} // closed Puma
 
39763
 
 
39764
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39765
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39766
#include "CExprResolveH.ah"
 
39767
#endif
 
39768
namespace Puma {
 
39769
 
 
39770
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39771
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
39772
#line 39773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39773
  friend class ::CCExprResolve;
 
39774
  friend class ::CExprResolve;
 
39775
  friend class ::WinIfExists;
 
39776
  friend class ::WinImportHandler;
 
39777
  friend class ::WinMacros;
 
39778
  friend class ::WinAsm;
 
39779
  friend class ::WinDeclSpecs;
 
39780
  friend class ::WinMemberExplSpec;
 
39781
  friend class ::WinTypeKeywords;
 
39782
  friend class ::WinFriend;
 
39783
  friend class ::ExtAC;
 
39784
  friend class ::ExtACBuilderCoupling;
 
39785
  friend class ::ExtACSyntaxCoupling;
 
39786
  friend class ::ExtACTree;
 
39787
  friend class ::ExtACKeywords;
 
39788
  friend class ::ExtGnu;
 
39789
  friend class ::PragmaOnceUnitState;
 
39790
  friend class ::PragmaOnce;
 
39791
  friend class ::CMatchSyntax;
 
39792
 
 
39793
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39794
 
 
39795
  CTree *sons[2]; // oper, expr
 
39796
 
 
39797
public:
 
39798
  /** Constructor.
 
39799
   *  \param op The delete operator.
 
39800
   *  \param e The expression representing the object to delete. */
 
39801
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
39802
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39803
  static const char *NodeId ();
 
39804
  /** Get the name of the node. Can be compared with NodeId(). */
 
39805
  const char *NodeName () const { return NodeId (); }
 
39806
  /** Get the number of sons. */
 
39807
  int Sons () const { return 2; }
 
39808
  /** Get the n-th son.
 
39809
   *  \param n The index of the son.
 
39810
   *  \return The n-th son or NULL. */
 
39811
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
39812
  /** Replace a son.
 
39813
   *  \param old_son The son to replace.
 
39814
   *  \param new_son The new son. */
 
39815
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39816
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
39817
  }
 
39818
  /** Get the expression. */
 
39819
  CTree *Expr () const { return sons[1]; }
 
39820
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
39821
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
39822
  /** Get the semantic information object. */
 
39823
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39824
   private:
 
39825
  typedef CT_DeleteExpr CCExprResolveExpr;
 
39826
 
 
39827
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39828
 public :
 
39829
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39830
  typedef CT_DeleteExpr CExprResolveExpr;
 
39831
 
 
39832
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39833
 public :
 
39834
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39835
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39836
};
 
39837
 
 
39838
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
39839
 *  Tree node representing a new expression, e.g. new A(). */
 
39840
 
 
39841
#line 39842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39842
} // closed Puma
 
39843
class CCExprResolve;
 
39844
class CExprResolve;
 
39845
class WinIfExists;
 
39846
class WinImportHandler;
 
39847
class WinMacros;
 
39848
class WinAsm;
 
39849
class WinDeclSpecs;
 
39850
class WinMemberExplSpec;
 
39851
class WinTypeKeywords;
 
39852
class WinFriend;
 
39853
class ExtAC;
 
39854
class ExtACBuilderCoupling;
 
39855
class ExtACSyntaxCoupling;
 
39856
class ExtACTree;
 
39857
class ExtACKeywords;
 
39858
class ExtGnu;
 
39859
class PragmaOnceUnitState;
 
39860
class PragmaOnce;
 
39861
class CMatchSyntax;
 
39862
namespace Puma {
 
39863
 
 
39864
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39865
 
 
39866
#line 39867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39867
} // closed Puma
 
39868
 
 
39869
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39870
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39871
#include "CCExprResolveH.ah"
 
39872
#endif
 
39873
namespace Puma {
 
39874
 
 
39875
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39876
 
 
39877
#line 39878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39878
} // closed Puma
 
39879
 
 
39880
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39881
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
39882
#include "CExprResolveH.ah"
 
39883
#endif
 
39884
namespace Puma {
 
39885
 
 
39886
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39887
class CT_NewExpr : public CT_Expression, public CSemObject {
 
39888
#line 39889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39889
  friend class ::CCExprResolve;
 
39890
  friend class ::CExprResolve;
 
39891
  friend class ::WinIfExists;
 
39892
  friend class ::WinImportHandler;
 
39893
  friend class ::WinMacros;
 
39894
  friend class ::WinAsm;
 
39895
  friend class ::WinDeclSpecs;
 
39896
  friend class ::WinMemberExplSpec;
 
39897
  friend class ::WinTypeKeywords;
 
39898
  friend class ::WinFriend;
 
39899
  friend class ::ExtAC;
 
39900
  friend class ::ExtACBuilderCoupling;
 
39901
  friend class ::ExtACSyntaxCoupling;
 
39902
  friend class ::ExtACTree;
 
39903
  friend class ::ExtACKeywords;
 
39904
  friend class ::ExtGnu;
 
39905
  friend class ::PragmaOnceUnitState;
 
39906
  friend class ::PragmaOnce;
 
39907
  friend class ::CMatchSyntax;
 
39908
 
 
39909
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39910
 
 
39911
  CTree *sons[6]; // oper, placement, open, type, close, init
 
39912
 
 
39913
public:
 
39914
  /** Constructor.
 
39915
   *  \param op The new operator.
 
39916
   *  \param p The optional placement expression.
 
39917
   *  \param o The optional left parenthesis around the type identifier.
 
39918
   *  \param t The type identifier specifying the type of the object to create.
 
39919
   *  \param c The optional right parenthesis around the type identifier.
 
39920
   *  \param i The optional initializer. */
 
39921
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
39922
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
39923
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
39924
  }
 
39925
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39926
  static const char *NodeId ();
 
39927
  /** Get the name of the node. Can be compared with NodeId(). */
 
39928
  const char *NodeName () const { return NodeId (); }
 
39929
  /** Get the number of sons. */
 
39930
  int Sons () const { return CTree::Sons (sons, 6); }
 
39931
  /** Get the n-th son.
 
39932
   *  \param n The index of the son.
 
39933
   *  \return The n-th son or NULL. */
 
39934
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
39935
  /** Replace a son.
 
39936
   *  \param old_son The son to replace.
 
39937
   *  \param new_son The new son. */
 
39938
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39939
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
39940
  }
 
39941
  /** Get the operator name. */
 
39942
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
39943
  /** Get the placement expression. */
 
39944
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
39945
  /** Get the initializer. */
 
39946
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
39947
  /** Get the type of the object to create. */
 
39948
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
39949
  /** Get the semantic information object. */
 
39950
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39951
   private:
 
39952
  typedef CT_NewExpr CCExprResolveExpr;
 
39953
 
 
39954
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
39955
 public :
 
39956
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
39957
  typedef CT_NewExpr CExprResolveExpr;
 
39958
 
 
39959
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
39960
 public :
 
39961
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
39962
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39963
};
 
39964
 
 
39965
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
39966
 *  Tree node representing an if-then expression, 
 
39967
 *  e.g. a>0?a:b or a?:b. */
 
39968
 
 
39969
#line 39970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39970
} // closed Puma
 
39971
class CCExprResolve;
 
39972
class CExprResolve;
 
39973
class WinIfExists;
 
39974
class WinImportHandler;
 
39975
class WinMacros;
 
39976
class WinAsm;
 
39977
class WinDeclSpecs;
 
39978
class WinMemberExplSpec;
 
39979
class WinTypeKeywords;
 
39980
class WinFriend;
 
39981
class ExtAC;
 
39982
class ExtACBuilderCoupling;
 
39983
class ExtACSyntaxCoupling;
 
39984
class ExtACTree;
 
39985
class ExtACKeywords;
 
39986
class ExtGnu;
 
39987
class PragmaOnceUnitState;
 
39988
class PragmaOnce;
 
39989
class CMatchSyntax;
 
39990
namespace Puma {
 
39991
 
 
39992
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39993
 
 
39994
#line 39995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
39995
} // closed Puma
 
39996
 
 
39997
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39998
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
39999
#include "CCExprResolveH.ah"
 
40000
#endif
 
40001
namespace Puma {
 
40002
 
 
40003
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40004
 
 
40005
#line 40006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40006
} // closed Puma
 
40007
 
 
40008
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40009
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40010
#include "CExprResolveH.ah"
 
40011
#endif
 
40012
namespace Puma {
 
40013
 
 
40014
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40015
class CT_IfThenExpr : public CT_Expression {
 
40016
#line 40017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40017
  friend class ::CCExprResolve;
 
40018
  friend class ::CExprResolve;
 
40019
  friend class ::WinIfExists;
 
40020
  friend class ::WinImportHandler;
 
40021
  friend class ::WinMacros;
 
40022
  friend class ::WinAsm;
 
40023
  friend class ::WinDeclSpecs;
 
40024
  friend class ::WinMemberExplSpec;
 
40025
  friend class ::WinTypeKeywords;
 
40026
  friend class ::WinFriend;
 
40027
  friend class ::ExtAC;
 
40028
  friend class ::ExtACBuilderCoupling;
 
40029
  friend class ::ExtACSyntaxCoupling;
 
40030
  friend class ::ExtACTree;
 
40031
  friend class ::ExtACKeywords;
 
40032
  friend class ::ExtGnu;
 
40033
  friend class ::PragmaOnceUnitState;
 
40034
  friend class ::PragmaOnce;
 
40035
  friend class ::CMatchSyntax;
 
40036
 
 
40037
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40038
 
 
40039
  CTree *sons[5]; // cond, oper, left, colon, right
 
40040
 
 
40041
public:
 
40042
  /** Constructor.
 
40043
   *  \param c1 The condition expression.
 
40044
   *  \param o The question mark operator. 
 
40045
   *  \param l The expression to the left of the colon.
 
40046
   *  \param c2 The colon operator.
 
40047
   *  \param r The expression to the right of the colon. */ 
 
40048
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
40049
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
40050
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
40051
  }
 
40052
  /** Constructor.
 
40053
   *  \param c1 The condition expression.
 
40054
   *  \param o The question mark operator. 
 
40055
   *  \param c2 The colon operator.
 
40056
   *  \param r The expression to the right of the colon. */ 
 
40057
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
40058
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
40059
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
40060
  }
 
40061
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40062
  static const char *NodeId ();
 
40063
  /** Get the name of the node. Can be compared with NodeId(). */
 
40064
  const char *NodeName () const { return NodeId (); }
 
40065
  /** Get the number of sons. */
 
40066
  int Sons () const { return CTree::Sons (sons, 5); }
 
40067
  /** Get the n-th son.
 
40068
   *  \param n The index of the son.
 
40069
   *  \return The n-th son or NULL. */
 
40070
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
40071
  /** Get the condition expression. */
 
40072
  CTree *Condition () const { return sons[0]; }
 
40073
  /** Get the left expression (condition=true). */
 
40074
  CTree *LeftOperand () const { return sons[2]; }
 
40075
  /** Get the right expression (condition=false). */
 
40076
  CTree *RightOperand () const { return sons[4]; }
 
40077
  /** Replace a son.
 
40078
   *  \param old_son The son to replace.
 
40079
   *  \param new_son The new son. */
 
40080
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40081
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
40082
  }
 
40083
   private:
 
40084
  typedef CT_IfThenExpr CCExprResolveExpr;
 
40085
 
 
40086
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40087
 public :
 
40088
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40089
  typedef CT_IfThenExpr CExprResolveExpr;
 
40090
 
 
40091
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40092
 public :
 
40093
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40094
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40095
};
 
40096
 
 
40097
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
40098
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
40099
 
 
40100
#line 40101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40101
} // closed Puma
 
40102
class CCExprResolve;
 
40103
class CExprResolve;
 
40104
class WinIfExists;
 
40105
class WinImportHandler;
 
40106
class WinMacros;
 
40107
class WinAsm;
 
40108
class WinDeclSpecs;
 
40109
class WinMemberExplSpec;
 
40110
class WinTypeKeywords;
 
40111
class WinFriend;
 
40112
class ExtAC;
 
40113
class ExtACBuilderCoupling;
 
40114
class ExtACSyntaxCoupling;
 
40115
class ExtACTree;
 
40116
class ExtACKeywords;
 
40117
class ExtGnu;
 
40118
class PragmaOnceUnitState;
 
40119
class PragmaOnce;
 
40120
class CMatchSyntax;
 
40121
namespace Puma {
 
40122
 
 
40123
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40124
 
 
40125
#line 40126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40126
} // closed Puma
 
40127
 
 
40128
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40129
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40130
#include "CCExprResolveH.ah"
 
40131
#endif
 
40132
namespace Puma {
 
40133
 
 
40134
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40135
 
 
40136
#line 40137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40137
} // closed Puma
 
40138
 
 
40139
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40140
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40141
#include "CExprResolveH.ah"
 
40142
#endif
 
40143
namespace Puma {
 
40144
 
 
40145
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40146
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
40147
#line 40148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40148
  friend class ::CCExprResolve;
 
40149
  friend class ::CExprResolve;
 
40150
  friend class ::WinIfExists;
 
40151
  friend class ::WinImportHandler;
 
40152
  friend class ::WinMacros;
 
40153
  friend class ::WinAsm;
 
40154
  friend class ::WinDeclSpecs;
 
40155
  friend class ::WinMemberExplSpec;
 
40156
  friend class ::WinTypeKeywords;
 
40157
  friend class ::WinFriend;
 
40158
  friend class ::ExtAC;
 
40159
  friend class ::ExtACBuilderCoupling;
 
40160
  friend class ::ExtACSyntaxCoupling;
 
40161
  friend class ::ExtACTree;
 
40162
  friend class ::ExtACKeywords;
 
40163
  friend class ::ExtGnu;
 
40164
  friend class ::PragmaOnceUnitState;
 
40165
  friend class ::PragmaOnce;
 
40166
  friend class ::CMatchSyntax;
 
40167
 
 
40168
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40169
 
 
40170
  CTree *sons[4]; // open, type, close, init
 
40171
 
 
40172
public:
 
40173
  /** Constructor.
 
40174
   *  \param r Left parenthesis of the type name.
 
40175
   *  \param t The type name.
 
40176
   *  \param cr Right parenthesis of the type name.
 
40177
   *  \param i The initializer list. */
 
40178
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
40179
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
40180
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
40181
  }
 
40182
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40183
  static const char *NodeId ();
 
40184
  /** Get the name of the node. Can be compared with NodeId(). */
 
40185
  const char *NodeName () const { return NodeId (); }
 
40186
  /** Get the number of sons. */
 
40187
  int Sons () const { return 4; }
 
40188
  /** Get the n-th son.
 
40189
   *  \param n The index of the son.
 
40190
   *  \return The n-th son or NULL. */
 
40191
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40192
  /** Replace a son.
 
40193
   *  \param old_son The son to replace.
 
40194
   *  \param new_son The new son. */
 
40195
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40196
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
40197
  }
 
40198
  /** Get the type name. */
 
40199
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
40200
  /** Get the initializer list. */
 
40201
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
40202
  /** Get the semantic information object. */
 
40203
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
40204
   private:
 
40205
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
40206
 
 
40207
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40208
 public :
 
40209
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40210
  typedef CT_CmpdLiteral CExprResolveExpr;
 
40211
 
 
40212
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40213
 public :
 
40214
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40215
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40216
};
 
40217
 
 
40218
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
40219
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
40220
 
 
40221
#line 40222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40222
} // closed Puma
 
40223
class CCExprResolve;
 
40224
class CExprResolve;
 
40225
class WinIfExists;
 
40226
class WinImportHandler;
 
40227
class WinMacros;
 
40228
class WinAsm;
 
40229
class WinDeclSpecs;
 
40230
class WinMemberExplSpec;
 
40231
class WinTypeKeywords;
 
40232
class WinFriend;
 
40233
class ExtAC;
 
40234
class ExtACBuilderCoupling;
 
40235
class ExtACSyntaxCoupling;
 
40236
class ExtACTree;
 
40237
class ExtACKeywords;
 
40238
class ExtGnu;
 
40239
class PragmaOnceUnitState;
 
40240
class PragmaOnce;
 
40241
class CMatchSyntax;
 
40242
namespace Puma {
 
40243
 
 
40244
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40245
 
 
40246
#line 40247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40247
} // closed Puma
 
40248
 
 
40249
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40250
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40251
#include "CCExprResolveH.ah"
 
40252
#endif
 
40253
namespace Puma {
 
40254
 
 
40255
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40256
 
 
40257
#line 40258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40258
} // closed Puma
 
40259
 
 
40260
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40261
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40262
#include "CExprResolveH.ah"
 
40263
#endif
 
40264
namespace Puma {
 
40265
 
 
40266
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40267
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
40268
#line 40269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40269
  friend class ::CCExprResolve;
 
40270
  friend class ::CExprResolve;
 
40271
  friend class ::WinIfExists;
 
40272
  friend class ::WinImportHandler;
 
40273
  friend class ::WinMacros;
 
40274
  friend class ::WinAsm;
 
40275
  friend class ::WinDeclSpecs;
 
40276
  friend class ::WinMemberExplSpec;
 
40277
  friend class ::WinTypeKeywords;
 
40278
  friend class ::WinFriend;
 
40279
  friend class ::ExtAC;
 
40280
  friend class ::ExtACBuilderCoupling;
 
40281
  friend class ::ExtACSyntaxCoupling;
 
40282
  friend class ::ExtACTree;
 
40283
  friend class ::ExtACKeywords;
 
40284
  friend class ::ExtGnu;
 
40285
  friend class ::PragmaOnceUnitState;
 
40286
  friend class ::PragmaOnce;
 
40287
  friend class ::CMatchSyntax;
 
40288
 
 
40289
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40290
 
 
40291
  CTree *sons[2]; // type, init
 
40292
 
 
40293
public:
 
40294
  /** Constructor.
 
40295
   *  \param t The type name.
 
40296
   *  \param i The initializer list. */
 
40297
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
40298
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40299
  static const char *NodeId ();
 
40300
  /** Get the name of the node. Can be compared with NodeId(). */
 
40301
  const char *NodeName () const { return NodeId (); }
 
40302
  /** Get the number of sons. */
 
40303
  int Sons () const { return 2; }
 
40304
  /** Get the n-th son.
 
40305
   *  \param n The index of the son.
 
40306
   *  \return The n-th son or NULL. */
 
40307
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
40308
  /** Replace a son.
 
40309
   *  \param old_son The son to replace.
 
40310
   *  \param new_son The new son. */
 
40311
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40312
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
40313
  }
 
40314
  /** Get the type name. */
 
40315
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
40316
  /** Get the initializer. */
 
40317
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
40318
  /** Get the semantic information object. */
 
40319
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
40320
   private:
 
40321
  typedef CT_ConstructExpr CCExprResolveExpr;
 
40322
 
 
40323
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40324
 public :
 
40325
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40326
  typedef CT_ConstructExpr CExprResolveExpr;
 
40327
 
 
40328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40329
 public :
 
40330
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40331
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40332
};
 
40333
 
 
40334
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
40335
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
40336
 
 
40337
#line 40338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40338
} // closed Puma
 
40339
class CCExprResolve;
 
40340
class CExprResolve;
 
40341
class WinIfExists;
 
40342
class WinImportHandler;
 
40343
class WinMacros;
 
40344
class WinAsm;
 
40345
class WinDeclSpecs;
 
40346
class WinMemberExplSpec;
 
40347
class WinTypeKeywords;
 
40348
class WinFriend;
 
40349
class ExtAC;
 
40350
class ExtACBuilderCoupling;
 
40351
class ExtACSyntaxCoupling;
 
40352
class ExtACTree;
 
40353
class ExtACKeywords;
 
40354
class ExtGnu;
 
40355
class PragmaOnceUnitState;
 
40356
class PragmaOnce;
 
40357
class CMatchSyntax;
 
40358
namespace Puma {
 
40359
 
 
40360
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40361
 
 
40362
#line 40363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40363
} // closed Puma
 
40364
 
 
40365
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40366
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40367
#include "CCExprResolveH.ah"
 
40368
#endif
 
40369
namespace Puma {
 
40370
 
 
40371
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40372
 
 
40373
#line 40374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40374
} // closed Puma
 
40375
 
 
40376
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40377
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40378
#include "CExprResolveH.ah"
 
40379
#endif
 
40380
namespace Puma {
 
40381
 
 
40382
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40383
class CT_ThrowExpr : public CT_Expression {
 
40384
#line 40385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40385
  friend class ::CCExprResolve;
 
40386
  friend class ::CExprResolve;
 
40387
  friend class ::WinIfExists;
 
40388
  friend class ::WinImportHandler;
 
40389
  friend class ::WinMacros;
 
40390
  friend class ::WinAsm;
 
40391
  friend class ::WinDeclSpecs;
 
40392
  friend class ::WinMemberExplSpec;
 
40393
  friend class ::WinTypeKeywords;
 
40394
  friend class ::WinFriend;
 
40395
  friend class ::ExtAC;
 
40396
  friend class ::ExtACBuilderCoupling;
 
40397
  friend class ::ExtACSyntaxCoupling;
 
40398
  friend class ::ExtACTree;
 
40399
  friend class ::ExtACKeywords;
 
40400
  friend class ::ExtGnu;
 
40401
  friend class ::PragmaOnceUnitState;
 
40402
  friend class ::PragmaOnce;
 
40403
  friend class ::CMatchSyntax;
 
40404
 
 
40405
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40406
 
 
40407
  CTree *sons[2]; // throw, expr
 
40408
 
 
40409
public:
 
40410
  /** Constructor.
 
40411
   *  \param t The 'throw' keyword.
 
40412
   *  \param e The expression. */
 
40413
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
40414
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40415
  static const char *NodeId ();
 
40416
  /** Get the name of the node. Can be compared with NodeId(). */
 
40417
  const char *NodeName () const { return NodeId (); }
 
40418
  /** Get the number of sons. */
 
40419
  int Sons () const { return CTree::Sons (sons, 2); }
 
40420
  /** Get the n-th son.
 
40421
   *  \param n The index of the son.
 
40422
   *  \return The n-th son or NULL. */
 
40423
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
40424
  /** Replace a son.
 
40425
   *  \param old_son The son to replace.
 
40426
   *  \param new_son The new son. */
 
40427
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40428
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
40429
  }
 
40430
  /** Get the expression. */
 
40431
  CTree *Expr () const { return sons[1]; }
 
40432
   private:
 
40433
  typedef CT_ThrowExpr CCExprResolveExpr;
 
40434
 
 
40435
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40436
 public :
 
40437
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40438
  typedef CT_ThrowExpr CExprResolveExpr;
 
40439
 
 
40440
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40441
 public :
 
40442
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40443
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40444
};
 
40445
 
 
40446
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
40447
 *  Tree node representing an index expression. */
 
40448
 
 
40449
#line 40450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40450
} // closed Puma
 
40451
class CCExprResolve;
 
40452
class CExprResolve;
 
40453
class WinIfExists;
 
40454
class WinImportHandler;
 
40455
class WinMacros;
 
40456
class WinAsm;
 
40457
class WinDeclSpecs;
 
40458
class WinMemberExplSpec;
 
40459
class WinTypeKeywords;
 
40460
class WinFriend;
 
40461
class ExtAC;
 
40462
class ExtACBuilderCoupling;
 
40463
class ExtACSyntaxCoupling;
 
40464
class ExtACTree;
 
40465
class ExtACKeywords;
 
40466
class ExtGnu;
 
40467
class PragmaOnceUnitState;
 
40468
class PragmaOnce;
 
40469
class CMatchSyntax;
 
40470
namespace Puma {
 
40471
 
 
40472
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40473
 
 
40474
#line 40475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40475
} // closed Puma
 
40476
 
 
40477
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40478
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40479
#include "CCExprResolveH.ah"
 
40480
#endif
 
40481
namespace Puma {
 
40482
 
 
40483
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40484
 
 
40485
#line 40486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40486
} // closed Puma
 
40487
 
 
40488
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40489
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40490
#include "CExprResolveH.ah"
 
40491
#endif
 
40492
namespace Puma {
 
40493
 
 
40494
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40495
class CT_IndexExpr : public CT_Call {
 
40496
#line 40497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40497
  friend class ::CCExprResolve;
 
40498
  friend class ::CExprResolve;
 
40499
  friend class ::WinIfExists;
 
40500
  friend class ::WinImportHandler;
 
40501
  friend class ::WinMacros;
 
40502
  friend class ::WinAsm;
 
40503
  friend class ::WinDeclSpecs;
 
40504
  friend class ::WinMemberExplSpec;
 
40505
  friend class ::WinTypeKeywords;
 
40506
  friend class ::WinFriend;
 
40507
  friend class ::ExtAC;
 
40508
  friend class ::ExtACBuilderCoupling;
 
40509
  friend class ::ExtACSyntaxCoupling;
 
40510
  friend class ::ExtACTree;
 
40511
  friend class ::ExtACKeywords;
 
40512
  friend class ::ExtGnu;
 
40513
  friend class ::PragmaOnceUnitState;
 
40514
  friend class ::PragmaOnce;
 
40515
  friend class ::CMatchSyntax;
 
40516
 
 
40517
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40518
 
 
40519
  CTree *sons[4]; // expr, open, index, close
 
40520
 
 
40521
public:
 
40522
  /** Constructor.
 
40523
   *  \param e The expression on which to invoke the index operator.
 
40524
   *  \param o Left parenthesis of the index expression.
 
40525
   *  \param i The index expression. 
 
40526
   *  \param c Right parenthesis of the index expression. */
 
40527
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
40528
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
40529
    AddSon (sons[2], i); AddSon (sons[3], c);
 
40530
  }
 
40531
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40532
  static const char *NodeId ();
 
40533
  /** Get the name of the node. Can be compared with NodeId(). */
 
40534
  const char *NodeName () const { return NodeId (); }
 
40535
  /** Get the number of sons. */
 
40536
  int Sons () const { return 4; }
 
40537
  /** Get the n-th son.
 
40538
   *  \param n The index of the son.
 
40539
   *  \return The n-th son or NULL. */
 
40540
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40541
  /** Replace a son.
 
40542
   *  \param old_son The son to replace.
 
40543
   *  \param new_son The new son. */
 
40544
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40545
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
40546
  }
 
40547
   private:
 
40548
  typedef CT_IndexExpr CCExprResolveExpr;
 
40549
 
 
40550
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40551
 public :
 
40552
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40553
  typedef CT_IndexExpr CExprResolveExpr;
 
40554
 
 
40555
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40556
 public :
 
40557
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40558
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40559
};
 
40560
 
 
40561
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
40562
 *  Tree node representing a function call expression, e.g. f(i). */
 
40563
 
 
40564
#line 40565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40565
} // closed Puma
 
40566
class CCExprResolve;
 
40567
class CExprResolve;
 
40568
class WinIfExists;
 
40569
class WinImportHandler;
 
40570
class WinMacros;
 
40571
class WinAsm;
 
40572
class WinDeclSpecs;
 
40573
class WinMemberExplSpec;
 
40574
class WinTypeKeywords;
 
40575
class WinFriend;
 
40576
class ExtAC;
 
40577
class ExtACBuilderCoupling;
 
40578
class ExtACSyntaxCoupling;
 
40579
class ExtACTree;
 
40580
class ExtACKeywords;
 
40581
class ExtGnu;
 
40582
class PragmaOnceUnitState;
 
40583
class PragmaOnce;
 
40584
class CMatchSyntax;
 
40585
namespace Puma {
 
40586
 
 
40587
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40588
 
 
40589
#line 40590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40590
} // closed Puma
 
40591
 
 
40592
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40593
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40594
#include "CCExprResolveH.ah"
 
40595
#endif
 
40596
namespace Puma {
 
40597
 
 
40598
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40599
 
 
40600
#line 40601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40601
} // closed Puma
 
40602
 
 
40603
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40604
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40605
#include "CExprResolveH.ah"
 
40606
#endif
 
40607
namespace Puma {
 
40608
 
 
40609
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40610
class CT_CallExpr : public CT_Call {
 
40611
#line 40612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40612
  friend class ::CCExprResolve;
 
40613
  friend class ::CExprResolve;
 
40614
  friend class ::WinIfExists;
 
40615
  friend class ::WinImportHandler;
 
40616
  friend class ::WinMacros;
 
40617
  friend class ::WinAsm;
 
40618
  friend class ::WinDeclSpecs;
 
40619
  friend class ::WinMemberExplSpec;
 
40620
  friend class ::WinTypeKeywords;
 
40621
  friend class ::WinFriend;
 
40622
  friend class ::ExtAC;
 
40623
  friend class ::ExtACBuilderCoupling;
 
40624
  friend class ::ExtACSyntaxCoupling;
 
40625
  friend class ::ExtACTree;
 
40626
  friend class ::ExtACKeywords;
 
40627
  friend class ::ExtGnu;
 
40628
  friend class ::PragmaOnceUnitState;
 
40629
  friend class ::PragmaOnce;
 
40630
  friend class ::CMatchSyntax;
 
40631
 
 
40632
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40633
 
 
40634
  CTree *sons[2]; // expr, args
 
40635
 
 
40636
public:
 
40637
  /** Constructor.
 
40638
   *  \param e The expression on which the call is invoked. */
 
40639
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
40640
  /** Constructor.
 
40641
   *  \param e The expression on which the call is invoked.
 
40642
   *  \param l The argument list of the call. */
 
40643
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
40644
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40645
  static const char *NodeId ();
 
40646
  /** Get the name of the node. Can be compared with NodeId(). */
 
40647
  const char *NodeName () const { return NodeId (); }
 
40648
  /** Get the number of sons. */
 
40649
  int Sons () const { return CTree::Sons (sons, 2); }
 
40650
  /** Get the n-th son.
 
40651
   *  \param n The index of the son.
 
40652
   *  \return The n-th son or NULL. */
 
40653
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
40654
  /** Replace a son.
 
40655
   *  \param old_son The son to replace.
 
40656
   *  \param new_son The new son. */
 
40657
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40658
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
40659
  }
 
40660
  CTree *Expr () const { return sons[0]; }
 
40661
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
40662
   private:
 
40663
  typedef CT_CallExpr CCExprResolveExpr;
 
40664
 
 
40665
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40666
 public :
 
40667
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40668
  typedef CT_CallExpr CExprResolveExpr;
 
40669
 
 
40670
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40671
 public :
 
40672
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40673
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40674
};
 
40675
 
 
40676
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
40677
 *  Tree node representing a cast expression, e.g. (int)a. */
 
40678
 
 
40679
#line 40680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40680
} // closed Puma
 
40681
class CCExprResolve;
 
40682
class CExprResolve;
 
40683
class WinIfExists;
 
40684
class WinImportHandler;
 
40685
class WinMacros;
 
40686
class WinAsm;
 
40687
class WinDeclSpecs;
 
40688
class WinMemberExplSpec;
 
40689
class WinTypeKeywords;
 
40690
class WinFriend;
 
40691
class ExtAC;
 
40692
class ExtACBuilderCoupling;
 
40693
class ExtACSyntaxCoupling;
 
40694
class ExtACTree;
 
40695
class ExtACKeywords;
 
40696
class ExtGnu;
 
40697
class PragmaOnceUnitState;
 
40698
class PragmaOnce;
 
40699
class CMatchSyntax;
 
40700
namespace Puma {
 
40701
 
 
40702
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40703
 
 
40704
#line 40705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40705
} // closed Puma
 
40706
 
 
40707
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40708
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40709
#include "CCExprResolveH.ah"
 
40710
#endif
 
40711
namespace Puma {
 
40712
 
 
40713
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40714
 
 
40715
#line 40716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40716
} // closed Puma
 
40717
 
 
40718
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40719
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40720
#include "CExprResolveH.ah"
 
40721
#endif
 
40722
namespace Puma {
 
40723
 
 
40724
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40725
class CT_CastExpr : public CT_Expression {
 
40726
#line 40727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40727
  friend class ::CCExprResolve;
 
40728
  friend class ::CExprResolve;
 
40729
  friend class ::WinIfExists;
 
40730
  friend class ::WinImportHandler;
 
40731
  friend class ::WinMacros;
 
40732
  friend class ::WinAsm;
 
40733
  friend class ::WinDeclSpecs;
 
40734
  friend class ::WinMemberExplSpec;
 
40735
  friend class ::WinTypeKeywords;
 
40736
  friend class ::WinFriend;
 
40737
  friend class ::ExtAC;
 
40738
  friend class ::ExtACBuilderCoupling;
 
40739
  friend class ::ExtACSyntaxCoupling;
 
40740
  friend class ::ExtACTree;
 
40741
  friend class ::ExtACKeywords;
 
40742
  friend class ::ExtGnu;
 
40743
  friend class ::PragmaOnceUnitState;
 
40744
  friend class ::PragmaOnce;
 
40745
  friend class ::CMatchSyntax;
 
40746
 
 
40747
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40748
 
 
40749
  CTree *sons[4]; // open, type, close, expr
 
40750
 
 
40751
public:
 
40752
  /** Constructor.
 
40753
   *  \param o Left parenthesis of the type name.
 
40754
   *  \param t The type to cast to.
 
40755
   *  \param c Right parenthesis of the type name. 
 
40756
   *  \param e The expression to cast. */
 
40757
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
40758
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
40759
    AddSon (sons[2], c); AddSon (sons[3], e);
 
40760
  }
 
40761
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40762
  static const char *NodeId ();
 
40763
  /** Get the name of the node. Can be compared with NodeId(). */
 
40764
  const char *NodeName () const { return NodeId (); }
 
40765
  /** Get the number of sons. */
 
40766
  int Sons () const { return 4; }
 
40767
  /** Get the n-th son.
 
40768
   *  \param n The index of the son.
 
40769
   *  \return The n-th son or NULL. */
 
40770
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40771
  /** Replace a son.
 
40772
   *  \param old_son The son to replace.
 
40773
   *  \param new_son The new son. */
 
40774
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40775
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
40776
  }
 
40777
  /** Get the casted expression. */
 
40778
  CTree *Expr () const { return sons[3]; }
 
40779
  /** Get the type to cast to. */
 
40780
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
40781
   private:
 
40782
  typedef CT_CastExpr CCExprResolveExpr;
 
40783
 
 
40784
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40785
 public :
 
40786
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40787
  typedef CT_CastExpr CExprResolveExpr;
 
40788
 
 
40789
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40790
 public :
 
40791
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40792
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40793
};
 
40794
 
 
40795
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
40796
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
40797
 
 
40798
#line 40799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40799
} // closed Puma
 
40800
class CCExprResolve;
 
40801
class CExprResolve;
 
40802
class WinIfExists;
 
40803
class WinImportHandler;
 
40804
class WinMacros;
 
40805
class WinAsm;
 
40806
class WinDeclSpecs;
 
40807
class WinMemberExplSpec;
 
40808
class WinTypeKeywords;
 
40809
class WinFriend;
 
40810
class ExtAC;
 
40811
class ExtACBuilderCoupling;
 
40812
class ExtACSyntaxCoupling;
 
40813
class ExtACTree;
 
40814
class ExtACKeywords;
 
40815
class ExtGnu;
 
40816
class PragmaOnceUnitState;
 
40817
class PragmaOnce;
 
40818
class CMatchSyntax;
 
40819
namespace Puma {
 
40820
 
 
40821
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40822
 
 
40823
#line 40824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40824
} // closed Puma
 
40825
 
 
40826
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40827
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40828
#include "CCExprResolveH.ah"
 
40829
#endif
 
40830
namespace Puma {
 
40831
 
 
40832
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40833
 
 
40834
#line 40835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40835
} // closed Puma
 
40836
 
 
40837
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40838
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40839
#include "CExprResolveH.ah"
 
40840
#endif
 
40841
namespace Puma {
 
40842
 
 
40843
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40844
class CT_StaticCast : public CT_Expression {
 
40845
#line 40846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40846
  friend class ::CCExprResolve;
 
40847
  friend class ::CExprResolve;
 
40848
  friend class ::WinIfExists;
 
40849
  friend class ::WinImportHandler;
 
40850
  friend class ::WinMacros;
 
40851
  friend class ::WinAsm;
 
40852
  friend class ::WinDeclSpecs;
 
40853
  friend class ::WinMemberExplSpec;
 
40854
  friend class ::WinTypeKeywords;
 
40855
  friend class ::WinFriend;
 
40856
  friend class ::ExtAC;
 
40857
  friend class ::ExtACBuilderCoupling;
 
40858
  friend class ::ExtACSyntaxCoupling;
 
40859
  friend class ::ExtACTree;
 
40860
  friend class ::ExtACKeywords;
 
40861
  friend class ::ExtGnu;
 
40862
  friend class ::PragmaOnceUnitState;
 
40863
  friend class ::PragmaOnce;
 
40864
  friend class ::CMatchSyntax;
 
40865
 
 
40866
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40867
 
 
40868
  CTree *sons[5]; // cast, open, type, close, expr
 
40869
 
 
40870
public:
 
40871
  /** Constructor.
 
40872
   *  \param cst The cast operator, i.e. 'static_cast'.
 
40873
   *  \param o Left arrow bracket of the type name.
 
40874
   *  \param t The type to cast to.
 
40875
   *  \param c Right array bracket of the type name.
 
40876
   *  \param e The expression to cast. */
 
40877
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
40878
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
40879
    AddSon (sons[3], c); AddSon (sons[4], e);
 
40880
  }
 
40881
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40882
  static const char *NodeId ();
 
40883
  /** Get the name of the node. Can be compared with NodeId(). */
 
40884
  const char *NodeName () const { return NodeId (); }
 
40885
  /** Get the number of sons. */
 
40886
  int Sons () const { return 5; }
 
40887
  /** Get the n-th son.
 
40888
   *  \param n The index of the son.
 
40889
   *  \return The n-th son or NULL. */
 
40890
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
40891
  /** Replace a son.
 
40892
   *  \param old_son The son to replace.
 
40893
   *  \param new_son The new son. */
 
40894
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40895
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
40896
  }
 
40897
  /** Get the casted expression. */
 
40898
  CTree *Expr () const { return sons[4]; }
 
40899
  /** Get the type to cast to. */
 
40900
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
40901
   private:
 
40902
  typedef CT_StaticCast CCExprResolveExpr;
 
40903
 
 
40904
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40905
 public :
 
40906
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40907
  typedef CT_StaticCast CExprResolveExpr;
 
40908
 
 
40909
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40910
 public :
 
40911
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40912
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40913
};
 
40914
 
 
40915
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
40916
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
40917
 
 
40918
#line 40919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40919
} // closed Puma
 
40920
class CCExprResolve;
 
40921
class CExprResolve;
 
40922
class WinIfExists;
 
40923
class WinImportHandler;
 
40924
class WinMacros;
 
40925
class WinAsm;
 
40926
class WinDeclSpecs;
 
40927
class WinMemberExplSpec;
 
40928
class WinTypeKeywords;
 
40929
class WinFriend;
 
40930
class ExtAC;
 
40931
class ExtACBuilderCoupling;
 
40932
class ExtACSyntaxCoupling;
 
40933
class ExtACTree;
 
40934
class ExtACKeywords;
 
40935
class ExtGnu;
 
40936
class PragmaOnceUnitState;
 
40937
class PragmaOnce;
 
40938
class CMatchSyntax;
 
40939
namespace Puma {
 
40940
 
 
40941
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40942
 
 
40943
#line 40944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40944
} // closed Puma
 
40945
 
 
40946
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40947
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40948
#include "CCExprResolveH.ah"
 
40949
#endif
 
40950
namespace Puma {
 
40951
 
 
40952
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40953
 
 
40954
#line 40955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40955
} // closed Puma
 
40956
 
 
40957
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40958
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40959
#include "CExprResolveH.ah"
 
40960
#endif
 
40961
namespace Puma {
 
40962
 
 
40963
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40964
class CT_ConstCast : public CT_StaticCast {
 
40965
#line 40966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
40966
  friend class ::CCExprResolve;
 
40967
  friend class ::CExprResolve;
 
40968
  friend class ::WinIfExists;
 
40969
  friend class ::WinImportHandler;
 
40970
  friend class ::WinMacros;
 
40971
  friend class ::WinAsm;
 
40972
  friend class ::WinDeclSpecs;
 
40973
  friend class ::WinMemberExplSpec;
 
40974
  friend class ::WinTypeKeywords;
 
40975
  friend class ::WinFriend;
 
40976
  friend class ::ExtAC;
 
40977
  friend class ::ExtACBuilderCoupling;
 
40978
  friend class ::ExtACSyntaxCoupling;
 
40979
  friend class ::ExtACTree;
 
40980
  friend class ::ExtACKeywords;
 
40981
  friend class ::ExtGnu;
 
40982
  friend class ::PragmaOnceUnitState;
 
40983
  friend class ::PragmaOnce;
 
40984
  friend class ::CMatchSyntax;
 
40985
 
 
40986
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40987
 
 
40988
public:
 
40989
  /** Constructor.
 
40990
   *  \param cst The cast operator, i.e. 'const_cast'.
 
40991
   *  \param o Left arrow bracket of the type name.
 
40992
   *  \param t The type to cast to.
 
40993
   *  \param c Right array bracket of the type name.
 
40994
   *  \param e The expression to cast. */
 
40995
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
40996
    CT_StaticCast (cst, o, t, c, e) {}
 
40997
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40998
  static const char *NodeId ();
 
40999
  /** Get the name of the node. Can be compared with NodeId(). */
 
41000
  const char *NodeName () const { return NodeId (); }
 
41001
   private:
 
41002
  typedef CT_ConstCast CCExprResolveExpr;
 
41003
 
 
41004
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41005
 public :
 
41006
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
41007
  typedef CT_ConstCast CExprResolveExpr;
 
41008
 
 
41009
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41010
 public :
 
41011
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41012
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41013
};
 
41014
 
 
41015
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
41016
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
41017
 
 
41018
#line 41019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41019
} // closed Puma
 
41020
class CCExprResolve;
 
41021
class CExprResolve;
 
41022
class WinIfExists;
 
41023
class WinImportHandler;
 
41024
class WinMacros;
 
41025
class WinAsm;
 
41026
class WinDeclSpecs;
 
41027
class WinMemberExplSpec;
 
41028
class WinTypeKeywords;
 
41029
class WinFriend;
 
41030
class ExtAC;
 
41031
class ExtACBuilderCoupling;
 
41032
class ExtACSyntaxCoupling;
 
41033
class ExtACTree;
 
41034
class ExtACKeywords;
 
41035
class ExtGnu;
 
41036
class PragmaOnceUnitState;
 
41037
class PragmaOnce;
 
41038
class CMatchSyntax;
 
41039
namespace Puma {
 
41040
 
 
41041
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41042
 
 
41043
#line 41044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41044
} // closed Puma
 
41045
 
 
41046
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41047
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41048
#include "CCExprResolveH.ah"
 
41049
#endif
 
41050
namespace Puma {
 
41051
 
 
41052
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41053
 
 
41054
#line 41055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41055
} // closed Puma
 
41056
 
 
41057
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41058
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41059
#include "CExprResolveH.ah"
 
41060
#endif
 
41061
namespace Puma {
 
41062
 
 
41063
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41064
class CT_ReintCast : public CT_StaticCast {
 
41065
#line 41066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41066
  friend class ::CCExprResolve;
 
41067
  friend class ::CExprResolve;
 
41068
  friend class ::WinIfExists;
 
41069
  friend class ::WinImportHandler;
 
41070
  friend class ::WinMacros;
 
41071
  friend class ::WinAsm;
 
41072
  friend class ::WinDeclSpecs;
 
41073
  friend class ::WinMemberExplSpec;
 
41074
  friend class ::WinTypeKeywords;
 
41075
  friend class ::WinFriend;
 
41076
  friend class ::ExtAC;
 
41077
  friend class ::ExtACBuilderCoupling;
 
41078
  friend class ::ExtACSyntaxCoupling;
 
41079
  friend class ::ExtACTree;
 
41080
  friend class ::ExtACKeywords;
 
41081
  friend class ::ExtGnu;
 
41082
  friend class ::PragmaOnceUnitState;
 
41083
  friend class ::PragmaOnce;
 
41084
  friend class ::CMatchSyntax;
 
41085
 
 
41086
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41087
 
 
41088
public:
 
41089
  /** Constructor.
 
41090
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
41091
   *  \param o Left arrow bracket of the type name.
 
41092
   *  \param t The type to cast to.
 
41093
   *  \param c Right array bracket of the type name.
 
41094
   *  \param e The expression to cast. */
 
41095
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
41096
    CT_StaticCast (cst, o, t, c, e) {}
 
41097
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41098
  static const char *NodeId ();
 
41099
  /** Get the name of the node. Can be compared with NodeId(). */
 
41100
  const char *NodeName () const { return NodeId (); }
 
41101
   private:
 
41102
  typedef CT_ReintCast CCExprResolveExpr;
 
41103
 
 
41104
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41105
 public :
 
41106
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
41107
  typedef CT_ReintCast CExprResolveExpr;
 
41108
 
 
41109
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41110
 public :
 
41111
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41112
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41113
};
 
41114
 
 
41115
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
41116
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
41117
 
 
41118
#line 41119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41119
} // closed Puma
 
41120
class CCExprResolve;
 
41121
class CExprResolve;
 
41122
class WinIfExists;
 
41123
class WinImportHandler;
 
41124
class WinMacros;
 
41125
class WinAsm;
 
41126
class WinDeclSpecs;
 
41127
class WinMemberExplSpec;
 
41128
class WinTypeKeywords;
 
41129
class WinFriend;
 
41130
class ExtAC;
 
41131
class ExtACBuilderCoupling;
 
41132
class ExtACSyntaxCoupling;
 
41133
class ExtACTree;
 
41134
class ExtACKeywords;
 
41135
class ExtGnu;
 
41136
class PragmaOnceUnitState;
 
41137
class PragmaOnce;
 
41138
class CMatchSyntax;
 
41139
namespace Puma {
 
41140
 
 
41141
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41142
 
 
41143
#line 41144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41144
} // closed Puma
 
41145
 
 
41146
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41147
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41148
#include "CCExprResolveH.ah"
 
41149
#endif
 
41150
namespace Puma {
 
41151
 
 
41152
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41153
 
 
41154
#line 41155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41155
} // closed Puma
 
41156
 
 
41157
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41158
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41159
#include "CExprResolveH.ah"
 
41160
#endif
 
41161
namespace Puma {
 
41162
 
 
41163
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41164
class CT_DynamicCast : public CT_StaticCast {
 
41165
#line 41166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41166
  friend class ::CCExprResolve;
 
41167
  friend class ::CExprResolve;
 
41168
  friend class ::WinIfExists;
 
41169
  friend class ::WinImportHandler;
 
41170
  friend class ::WinMacros;
 
41171
  friend class ::WinAsm;
 
41172
  friend class ::WinDeclSpecs;
 
41173
  friend class ::WinMemberExplSpec;
 
41174
  friend class ::WinTypeKeywords;
 
41175
  friend class ::WinFriend;
 
41176
  friend class ::ExtAC;
 
41177
  friend class ::ExtACBuilderCoupling;
 
41178
  friend class ::ExtACSyntaxCoupling;
 
41179
  friend class ::ExtACTree;
 
41180
  friend class ::ExtACKeywords;
 
41181
  friend class ::ExtGnu;
 
41182
  friend class ::PragmaOnceUnitState;
 
41183
  friend class ::PragmaOnce;
 
41184
  friend class ::CMatchSyntax;
 
41185
 
 
41186
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41187
 
 
41188
public:
 
41189
  /** Constructor.
 
41190
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
41191
   *  \param o Left arrow bracket of the type name.
 
41192
   *  \param t The type to cast to.
 
41193
   *  \param c Right array bracket of the type name.
 
41194
   *  \param e The expression to cast. */
 
41195
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
41196
    CT_StaticCast (cst, o, t, c, e) {}
 
41197
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41198
  static const char *NodeId ();
 
41199
  /** Get the name of the node. Can be compared with NodeId(). */
 
41200
  const char *NodeName () const { return NodeId (); }
 
41201
   private:
 
41202
  typedef CT_DynamicCast CCExprResolveExpr;
 
41203
 
 
41204
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41205
 public :
 
41206
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
41207
  typedef CT_DynamicCast CExprResolveExpr;
 
41208
 
 
41209
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41210
 public :
 
41211
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41212
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41213
};
 
41214
 
 
41215
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
41216
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
41217
 *  where 1.2 is implicitely casted from float to int. */
 
41218
 
 
41219
#line 41220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41220
} // closed Puma
 
41221
class CCExprResolve;
 
41222
class CExprResolve;
 
41223
class WinIfExists;
 
41224
class WinImportHandler;
 
41225
class WinMacros;
 
41226
class WinAsm;
 
41227
class WinDeclSpecs;
 
41228
class WinMemberExplSpec;
 
41229
class WinTypeKeywords;
 
41230
class WinFriend;
 
41231
class ExtAC;
 
41232
class ExtACBuilderCoupling;
 
41233
class ExtACSyntaxCoupling;
 
41234
class ExtACTree;
 
41235
class ExtACKeywords;
 
41236
class ExtGnu;
 
41237
class PragmaOnceUnitState;
 
41238
class PragmaOnce;
 
41239
class CMatchSyntax;
 
41240
namespace Puma {
 
41241
 
 
41242
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41243
 
 
41244
#line 41245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41245
} // closed Puma
 
41246
 
 
41247
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41248
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41249
#include "CCExprResolveH.ah"
 
41250
#endif
 
41251
namespace Puma {
 
41252
 
 
41253
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41254
 
 
41255
#line 41256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41256
} // closed Puma
 
41257
 
 
41258
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41259
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41260
#include "CExprResolveH.ah"
 
41261
#endif
 
41262
namespace Puma {
 
41263
 
 
41264
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41265
class CT_ImplicitCast : public CT_Expression {
 
41266
#line 41267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41267
  friend class ::CCExprResolve;
 
41268
  friend class ::CExprResolve;
 
41269
  friend class ::WinIfExists;
 
41270
  friend class ::WinImportHandler;
 
41271
  friend class ::WinMacros;
 
41272
  friend class ::WinAsm;
 
41273
  friend class ::WinDeclSpecs;
 
41274
  friend class ::WinMemberExplSpec;
 
41275
  friend class ::WinTypeKeywords;
 
41276
  friend class ::WinFriend;
 
41277
  friend class ::ExtAC;
 
41278
  friend class ::ExtACBuilderCoupling;
 
41279
  friend class ::ExtACSyntaxCoupling;
 
41280
  friend class ::ExtACTree;
 
41281
  friend class ::ExtACKeywords;
 
41282
  friend class ::ExtGnu;
 
41283
  friend class ::PragmaOnceUnitState;
 
41284
  friend class ::PragmaOnce;
 
41285
  friend class ::CMatchSyntax;
 
41286
 
 
41287
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41288
 
 
41289
  CTree *_expr; // casted expression
 
41290
 
 
41291
public:
 
41292
  /** Constructor.
 
41293
   *  \param e The expression that is implicitely casted. */
 
41294
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
41295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41296
  static const char *NodeId ();
 
41297
  /** Get the name of the node. Can be compared with NodeId(). */
 
41298
  const char *NodeName () const { return NodeId (); }
 
41299
  /** Get the number of sons. */
 
41300
  int Sons () const { return 1; }
 
41301
  /** Get the n-th son.
 
41302
   *  \param n The index of the son.
 
41303
   *  \return The n-th son or NULL. */
 
41304
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
41305
  /** Get the casted expression. */
 
41306
  CTree *Expr () const { return _expr; }
 
41307
  /** Replace a son.
 
41308
   *  \param old_son The son to replace.
 
41309
   *  \param new_son The new son. */
 
41310
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
41311
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
41312
   private:
 
41313
  typedef CT_ImplicitCast CCExprResolveExpr;
 
41314
 
 
41315
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41316
 public :
 
41317
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
41318
  typedef CT_ImplicitCast CExprResolveExpr;
 
41319
 
 
41320
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41321
 public :
 
41322
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41323
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41324
};
 
41325
 
 
41326
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
41327
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
41328
 
 
41329
#line 41330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41330
} // closed Puma
 
41331
class CCExprResolve;
 
41332
class CExprResolve;
 
41333
class WinIfExists;
 
41334
class WinImportHandler;
 
41335
class WinMacros;
 
41336
class WinAsm;
 
41337
class WinDeclSpecs;
 
41338
class WinMemberExplSpec;
 
41339
class WinTypeKeywords;
 
41340
class WinFriend;
 
41341
class ExtAC;
 
41342
class ExtACBuilderCoupling;
 
41343
class ExtACSyntaxCoupling;
 
41344
class ExtACTree;
 
41345
class ExtACKeywords;
 
41346
class ExtGnu;
 
41347
class PragmaOnceUnitState;
 
41348
class PragmaOnce;
 
41349
class CMatchSyntax;
 
41350
namespace Puma {
 
41351
 
 
41352
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41353
 
 
41354
#line 41355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41355
} // closed Puma
 
41356
 
 
41357
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41358
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41359
#include "CCExprResolveH.ah"
 
41360
#endif
 
41361
namespace Puma {
 
41362
 
 
41363
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41364
 
 
41365
#line 41366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41366
} // closed Puma
 
41367
 
 
41368
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41369
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41370
#include "CExprResolveH.ah"
 
41371
#endif
 
41372
namespace Puma {
 
41373
 
 
41374
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41375
class CT_TypeidExpr : public CT_Expression {
 
41376
#line 41377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41377
  friend class ::CCExprResolve;
 
41378
  friend class ::CExprResolve;
 
41379
  friend class ::WinIfExists;
 
41380
  friend class ::WinImportHandler;
 
41381
  friend class ::WinMacros;
 
41382
  friend class ::WinAsm;
 
41383
  friend class ::WinDeclSpecs;
 
41384
  friend class ::WinMemberExplSpec;
 
41385
  friend class ::WinTypeKeywords;
 
41386
  friend class ::WinFriend;
 
41387
  friend class ::ExtAC;
 
41388
  friend class ::ExtACBuilderCoupling;
 
41389
  friend class ::ExtACSyntaxCoupling;
 
41390
  friend class ::ExtACTree;
 
41391
  friend class ::ExtACKeywords;
 
41392
  friend class ::ExtGnu;
 
41393
  friend class ::PragmaOnceUnitState;
 
41394
  friend class ::PragmaOnce;
 
41395
  friend class ::CMatchSyntax;
 
41396
 
 
41397
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41398
 
 
41399
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
41400
 
 
41401
public:
 
41402
  /** Constructor.
 
41403
   *  \param tid The 'typeid' operator.
 
41404
   *  \param o The left parenthesis of the type name or expression.
 
41405
   *  \param e The expression or type name for which to get the type identifier.
 
41406
   *  \param c The right parenthesis of the type name or expression. */
 
41407
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
41408
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
41409
    AddSon (sons[2], e); AddSon (sons[3], c);
 
41410
  }
 
41411
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41412
  static const char *NodeId ();
 
41413
  /** Get the name of the node. Can be compared with NodeId(). */
 
41414
  const char *NodeName () const { return NodeId (); }
 
41415
  /** Get the number of sons. */
 
41416
  int Sons () const { return 4; }
 
41417
  /** Get the n-th son.
 
41418
   *  \param n The index of the son.
 
41419
   *  \return The n-th son or NULL. */
 
41420
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
41421
  /** Replace a son.
 
41422
   *  \param old_son The son to replace.
 
41423
   *  \param new_son The new son. */
 
41424
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41425
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
41426
  }
 
41427
  /** Get the typeid argument, i.e. the expression or type name for
 
41428
   *  which to get the type identifier. */
 
41429
  CTree *Arg () const { return sons[2]; }
 
41430
   private:
 
41431
  typedef CT_TypeidExpr CCExprResolveExpr;
 
41432
 
 
41433
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41434
 public :
 
41435
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
41436
  typedef CT_TypeidExpr CExprResolveExpr;
 
41437
 
 
41438
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41439
 public :
 
41440
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41441
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41442
};
 
41443
 
 
41444
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
41445
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
41446
 
 
41447
#line 41448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41448
} // closed Puma
 
41449
class CCExprResolve;
 
41450
class CExprResolve;
 
41451
class WinIfExists;
 
41452
class WinImportHandler;
 
41453
class WinMacros;
 
41454
class WinAsm;
 
41455
class WinDeclSpecs;
 
41456
class WinMemberExplSpec;
 
41457
class WinTypeKeywords;
 
41458
class WinFriend;
 
41459
class ExtAC;
 
41460
class ExtACBuilderCoupling;
 
41461
class ExtACSyntaxCoupling;
 
41462
class ExtACTree;
 
41463
class ExtACKeywords;
 
41464
class ExtGnu;
 
41465
class PragmaOnceUnitState;
 
41466
class PragmaOnce;
 
41467
class CMatchSyntax;
 
41468
namespace Puma {
 
41469
 
 
41470
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41471
 
 
41472
#line 41473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41473
} // closed Puma
 
41474
 
 
41475
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41476
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41477
#include "CCExprResolveH.ah"
 
41478
#endif
 
41479
namespace Puma {
 
41480
 
 
41481
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41482
 
 
41483
#line 41484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41484
} // closed Puma
 
41485
 
 
41486
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41487
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41488
#include "CExprResolveH.ah"
 
41489
#endif
 
41490
namespace Puma {
 
41491
 
 
41492
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41493
class CT_SizeofExpr : public CT_Expression {
 
41494
#line 41495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41495
  friend class ::CCExprResolve;
 
41496
  friend class ::CExprResolve;
 
41497
  friend class ::WinIfExists;
 
41498
  friend class ::WinImportHandler;
 
41499
  friend class ::WinMacros;
 
41500
  friend class ::WinAsm;
 
41501
  friend class ::WinDeclSpecs;
 
41502
  friend class ::WinMemberExplSpec;
 
41503
  friend class ::WinTypeKeywords;
 
41504
  friend class ::WinFriend;
 
41505
  friend class ::ExtAC;
 
41506
  friend class ::ExtACBuilderCoupling;
 
41507
  friend class ::ExtACSyntaxCoupling;
 
41508
  friend class ::ExtACTree;
 
41509
  friend class ::ExtACKeywords;
 
41510
  friend class ::ExtGnu;
 
41511
  friend class ::PragmaOnceUnitState;
 
41512
  friend class ::PragmaOnce;
 
41513
  friend class ::CMatchSyntax;
 
41514
 
 
41515
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41516
 
 
41517
  CTree *sons[5]; // key, open, type, close, expr
 
41518
 
 
41519
public:
 
41520
  /** Constructor.
 
41521
   *  \param k The 'sizeof' keyword.
 
41522
   *  \param o Left parenthesis around the type name.
 
41523
   *  \param t The type from which to get the size.
 
41524
   *  \param c Right parenthesis around the type name. */
 
41525
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
41526
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
41527
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
41528
  }
 
41529
  /** Constructor.
 
41530
   *  \param k The 'sizeof' keyword.
 
41531
   *  \param e The expression from which to get the size. */
 
41532
  CT_SizeofExpr (CTree *k, CTree *e) {
 
41533
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
41534
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
41535
  }
 
41536
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41537
  static const char *NodeId ();
 
41538
  /** Get the name of the node. Can be compared with NodeId(). */
 
41539
  const char *NodeName () const { return NodeId (); }
 
41540
  /** Get the number of sons. */
 
41541
  int Sons () const { return CTree::Sons (sons, 5); }
 
41542
  /** Get the n-th son.
 
41543
   *  \param n The index of the son.
 
41544
   *  \return The n-th son or NULL. */
 
41545
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
41546
  /** Replace a son.
 
41547
   *  \param old_son The son to replace.
 
41548
   *  \param new_son The new son. */
 
41549
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41550
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
41551
  }
 
41552
  /** Get the expression. */
 
41553
  CTree *Expr () const { return sons[4]; }
 
41554
  /** Get the type name. */
 
41555
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
41556
   private:
 
41557
  typedef CT_SizeofExpr CCExprResolveExpr;
 
41558
 
 
41559
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41560
 public :
 
41561
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
41562
  typedef CT_SizeofExpr CExprResolveExpr;
 
41563
 
 
41564
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41565
 public :
 
41566
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41567
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41568
};
 
41569
 
 
41570
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
41571
 *  Tree node representing an index designator, i.e. [1]. */
 
41572
 
 
41573
#line 41574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41574
} // closed Puma
 
41575
class CCExprResolve;
 
41576
class CExprResolve;
 
41577
class WinIfExists;
 
41578
class WinImportHandler;
 
41579
class WinMacros;
 
41580
class WinAsm;
 
41581
class WinDeclSpecs;
 
41582
class WinMemberExplSpec;
 
41583
class WinTypeKeywords;
 
41584
class WinFriend;
 
41585
class ExtAC;
 
41586
class ExtACBuilderCoupling;
 
41587
class ExtACSyntaxCoupling;
 
41588
class ExtACTree;
 
41589
class ExtACKeywords;
 
41590
class ExtGnu;
 
41591
class PragmaOnceUnitState;
 
41592
class PragmaOnce;
 
41593
class CMatchSyntax;
 
41594
namespace Puma {
 
41595
 
 
41596
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41597
 
 
41598
#line 41599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41599
} // closed Puma
 
41600
 
 
41601
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41602
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41603
#include "CCExprResolveH.ah"
 
41604
#endif
 
41605
namespace Puma {
 
41606
 
 
41607
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41608
 
 
41609
#line 41610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41610
} // closed Puma
 
41611
 
 
41612
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41613
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41614
#include "CExprResolveH.ah"
 
41615
#endif
 
41616
namespace Puma {
 
41617
 
 
41618
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41619
class CT_IndexDesignator : public CT_Expression {
 
41620
#line 41621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41621
  friend class ::CCExprResolve;
 
41622
  friend class ::CExprResolve;
 
41623
  friend class ::WinIfExists;
 
41624
  friend class ::WinImportHandler;
 
41625
  friend class ::WinMacros;
 
41626
  friend class ::WinAsm;
 
41627
  friend class ::WinDeclSpecs;
 
41628
  friend class ::WinMemberExplSpec;
 
41629
  friend class ::WinTypeKeywords;
 
41630
  friend class ::WinFriend;
 
41631
  friend class ::ExtAC;
 
41632
  friend class ::ExtACBuilderCoupling;
 
41633
  friend class ::ExtACSyntaxCoupling;
 
41634
  friend class ::ExtACTree;
 
41635
  friend class ::ExtACKeywords;
 
41636
  friend class ::ExtGnu;
 
41637
  friend class ::PragmaOnceUnitState;
 
41638
  friend class ::PragmaOnce;
 
41639
  friend class ::CMatchSyntax;
 
41640
 
 
41641
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41642
 
 
41643
  CTree *sons[3]; // open, index, close
 
41644
 
 
41645
public:
 
41646
  /** Constructor.
 
41647
   *  \param o Left bracket of the index designator.
 
41648
   *  \param i The index expression.
 
41649
   *  \param c Right bracket of the index designator. */
 
41650
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
41651
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
41652
  }
 
41653
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41654
  static const char *NodeId ();
 
41655
  /** Get the name of the node. Can be compared with NodeId(). */
 
41656
  const char *NodeName () const { return NodeId (); }
 
41657
  /** Get the number of sons. */
 
41658
  int Sons () const { return 3; }
 
41659
  /** Get the n-th son.
 
41660
   *  \param n The index of the son.
 
41661
   *  \return The n-th son or NULL. */
 
41662
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
41663
  /** Replace a son.
 
41664
   *  \param old_son The son to replace.
 
41665
   *  \param new_son The new son. */
 
41666
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41667
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
41668
  }
 
41669
   private:
 
41670
  typedef CT_IndexDesignator CCExprResolveExpr;
 
41671
 
 
41672
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41673
 public :
 
41674
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
41675
  typedef CT_IndexDesignator CExprResolveExpr;
 
41676
 
 
41677
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41678
 public :
 
41679
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41680
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41681
};
 
41682
 
 
41683
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
41684
 *  Tree node representing a member designator, e.g. .a. */
 
41685
 
 
41686
#line 41687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41687
} // closed Puma
 
41688
class CCExprResolve;
 
41689
class CExprResolve;
 
41690
class WinIfExists;
 
41691
class WinImportHandler;
 
41692
class WinMacros;
 
41693
class WinAsm;
 
41694
class WinDeclSpecs;
 
41695
class WinMemberExplSpec;
 
41696
class WinTypeKeywords;
 
41697
class WinFriend;
 
41698
class ExtAC;
 
41699
class ExtACBuilderCoupling;
 
41700
class ExtACSyntaxCoupling;
 
41701
class ExtACTree;
 
41702
class ExtACKeywords;
 
41703
class ExtGnu;
 
41704
class PragmaOnceUnitState;
 
41705
class PragmaOnce;
 
41706
class CMatchSyntax;
 
41707
namespace Puma {
 
41708
 
 
41709
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41710
 
 
41711
#line 41712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41712
} // closed Puma
 
41713
 
 
41714
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41715
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
41716
#include "CCExprResolveH.ah"
 
41717
#endif
 
41718
namespace Puma {
 
41719
 
 
41720
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41721
 
 
41722
#line 41723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41723
} // closed Puma
 
41724
 
 
41725
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41726
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
41727
#include "CExprResolveH.ah"
 
41728
#endif
 
41729
namespace Puma {
 
41730
 
 
41731
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41732
class CT_MembDesignator : public CT_Expression {
 
41733
#line 41734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41734
  friend class ::CCExprResolve;
 
41735
  friend class ::CExprResolve;
 
41736
  friend class ::WinIfExists;
 
41737
  friend class ::WinImportHandler;
 
41738
  friend class ::WinMacros;
 
41739
  friend class ::WinAsm;
 
41740
  friend class ::WinDeclSpecs;
 
41741
  friend class ::WinMemberExplSpec;
 
41742
  friend class ::WinTypeKeywords;
 
41743
  friend class ::WinFriend;
 
41744
  friend class ::ExtAC;
 
41745
  friend class ::ExtACBuilderCoupling;
 
41746
  friend class ::ExtACSyntaxCoupling;
 
41747
  friend class ::ExtACTree;
 
41748
  friend class ::ExtACKeywords;
 
41749
  friend class ::ExtGnu;
 
41750
  friend class ::PragmaOnceUnitState;
 
41751
  friend class ::PragmaOnce;
 
41752
  friend class ::CMatchSyntax;
 
41753
 
 
41754
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41755
 
 
41756
  CTree *sons[2]; // dot, member
 
41757
 
 
41758
public:
 
41759
  /** Constructor.
 
41760
   *  \param d The dot before the member name.
 
41761
   *  \param m The member name. */
 
41762
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
41763
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41764
  static const char *NodeId ();
 
41765
  /** Get the name of the node. Can be compared with NodeId(). */
 
41766
  const char *NodeName () const { return NodeId (); }
 
41767
  /** Get the number of sons. */
 
41768
  int Sons () const { return 2; }
 
41769
  /** Get the n-th son.
 
41770
   *  \param n The index of the son.
 
41771
   *  \return The n-th son or NULL. */
 
41772
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
41773
  /** Replace a son.
 
41774
   *  \param old_son The son to replace.
 
41775
   *  \param new_son The new son. */
 
41776
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41777
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
41778
  }
 
41779
   private:
 
41780
  typedef CT_MembDesignator CCExprResolveExpr;
 
41781
 
 
41782
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41783
 public :
 
41784
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
41785
  typedef CT_MembDesignator CExprResolveExpr;
 
41786
 
 
41787
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41788
 public :
 
41789
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41790
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41791
};
 
41792
 
 
41793
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
41794
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
41795
 
 
41796
#line 41797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41797
} // closed Puma
 
41798
class CCExprResolve;
 
41799
class CExprResolve;
 
41800
class WinIfExists;
 
41801
class WinImportHandler;
 
41802
class WinMacros;
 
41803
class WinAsm;
 
41804
class WinDeclSpecs;
 
41805
class WinMemberExplSpec;
 
41806
class WinTypeKeywords;
 
41807
class WinFriend;
 
41808
class ExtAC;
 
41809
class ExtACBuilderCoupling;
 
41810
class ExtACSyntaxCoupling;
 
41811
class ExtACTree;
 
41812
class ExtACKeywords;
 
41813
class ExtGnu;
 
41814
class PragmaOnceUnitState;
 
41815
class PragmaOnce;
 
41816
class CMatchSyntax;
 
41817
namespace Puma {
 
41818
 
 
41819
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41820
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
41821
#line 41822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41822
  friend class ::CCExprResolve;
 
41823
  friend class ::CExprResolve;
 
41824
  friend class ::WinIfExists;
 
41825
  friend class ::WinImportHandler;
 
41826
  friend class ::WinMacros;
 
41827
  friend class ::WinAsm;
 
41828
  friend class ::WinDeclSpecs;
 
41829
  friend class ::WinMemberExplSpec;
 
41830
  friend class ::WinTypeKeywords;
 
41831
  friend class ::WinFriend;
 
41832
  friend class ::ExtAC;
 
41833
  friend class ::ExtACBuilderCoupling;
 
41834
  friend class ::ExtACSyntaxCoupling;
 
41835
  friend class ::ExtACTree;
 
41836
  friend class ::ExtACKeywords;
 
41837
  friend class ::ExtGnu;
 
41838
  friend class ::PragmaOnceUnitState;
 
41839
  friend class ::PragmaOnce;
 
41840
  friend class ::CMatchSyntax;
 
41841
 
 
41842
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41843
 
 
41844
public:
 
41845
  /** Constructor.
 
41846
   *  \param size Initial number of designators. */
 
41847
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
41848
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41849
  static const char *NodeId ();
 
41850
  /** Get the name of the node. Can be compared with NodeId(). */
 
41851
  const char *NodeName () const { return NodeId (); }
 
41852
 
 
41853
  /** Get the type of the entity to initialize. */
 
41854
  CTypeInfo *Type () const { return type; }
 
41855
  /** Get the value of the entity to initialize. */
 
41856
  CExprValue *Value () const { return value; }
 
41857
  /** Get the semantic value object. */
 
41858
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
41859
};
 
41860
 
 
41861
/*****************************************************************************/
 
41862
/*                                                                           */
 
41863
/*                         Declaration specifiers                            */
 
41864
/*                                                                           */
 
41865
/*****************************************************************************/
 
41866
 
 
41867
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
41868
 *  Base class for all tree nodes representing declaration specifiers. */
 
41869
 
 
41870
#line 41871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41871
} // closed Puma
 
41872
class CCExprResolve;
 
41873
class CExprResolve;
 
41874
class WinIfExists;
 
41875
class WinImportHandler;
 
41876
class WinMacros;
 
41877
class WinAsm;
 
41878
class WinDeclSpecs;
 
41879
class WinMemberExplSpec;
 
41880
class WinTypeKeywords;
 
41881
class WinFriend;
 
41882
class ExtAC;
 
41883
class ExtACBuilderCoupling;
 
41884
class ExtACSyntaxCoupling;
 
41885
class ExtACTree;
 
41886
class ExtACKeywords;
 
41887
class ExtGnu;
 
41888
class PragmaOnceUnitState;
 
41889
class PragmaOnce;
 
41890
class CMatchSyntax;
 
41891
namespace Puma {
 
41892
 
 
41893
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41894
class CT_DeclSpec : public CTree {
 
41895
#line 41896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41896
  friend class ::CCExprResolve;
 
41897
  friend class ::CExprResolve;
 
41898
  friend class ::WinIfExists;
 
41899
  friend class ::WinImportHandler;
 
41900
  friend class ::WinMacros;
 
41901
  friend class ::WinAsm;
 
41902
  friend class ::WinDeclSpecs;
 
41903
  friend class ::WinMemberExplSpec;
 
41904
  friend class ::WinTypeKeywords;
 
41905
  friend class ::WinFriend;
 
41906
  friend class ::ExtAC;
 
41907
  friend class ::ExtACBuilderCoupling;
 
41908
  friend class ::ExtACSyntaxCoupling;
 
41909
  friend class ::ExtACTree;
 
41910
  friend class ::ExtACKeywords;
 
41911
  friend class ::ExtGnu;
 
41912
  friend class ::PragmaOnceUnitState;
 
41913
  friend class ::PragmaOnce;
 
41914
  friend class ::CMatchSyntax;
 
41915
 
 
41916
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41917
 
 
41918
protected:
 
41919
  /** Constructor. */
 
41920
  CT_DeclSpec () {}
 
41921
};
 
41922
 
 
41923
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
41924
 *  Tree node representing a primitive declaration specifier. */
 
41925
 
 
41926
#line 41927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41927
} // closed Puma
 
41928
class CCExprResolve;
 
41929
class CExprResolve;
 
41930
class WinIfExists;
 
41931
class WinImportHandler;
 
41932
class WinMacros;
 
41933
class WinAsm;
 
41934
class WinDeclSpecs;
 
41935
class WinMemberExplSpec;
 
41936
class WinTypeKeywords;
 
41937
class WinFriend;
 
41938
class ExtAC;
 
41939
class ExtACBuilderCoupling;
 
41940
class ExtACSyntaxCoupling;
 
41941
class ExtACTree;
 
41942
class ExtACKeywords;
 
41943
class ExtGnu;
 
41944
class PragmaOnceUnitState;
 
41945
class PragmaOnce;
 
41946
class CMatchSyntax;
 
41947
namespace Puma {
 
41948
 
 
41949
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41950
class CT_PrimDeclSpec : public CT_DeclSpec {
 
41951
#line 41952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
41952
  friend class ::CCExprResolve;
 
41953
  friend class ::CExprResolve;
 
41954
  friend class ::WinIfExists;
 
41955
  friend class ::WinImportHandler;
 
41956
  friend class ::WinMacros;
 
41957
  friend class ::WinAsm;
 
41958
  friend class ::WinDeclSpecs;
 
41959
  friend class ::WinMemberExplSpec;
 
41960
  friend class ::WinTypeKeywords;
 
41961
  friend class ::WinFriend;
 
41962
  friend class ::ExtAC;
 
41963
  friend class ::ExtACBuilderCoupling;
 
41964
  friend class ::ExtACSyntaxCoupling;
 
41965
  friend class ::ExtACTree;
 
41966
  friend class ::ExtACKeywords;
 
41967
  friend class ::ExtGnu;
 
41968
  friend class ::PragmaOnceUnitState;
 
41969
  friend class ::PragmaOnce;
 
41970
  friend class ::CMatchSyntax;
 
41971
 
 
41972
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41973
 
 
41974
public:
 
41975
  /** Declaration specifier types. */
 
41976
  enum Type { 
 
41977
    PDS_FRIEND,    /** friend */
 
41978
    PDS_TYPEDEF,   /** typedef */
 
41979
    PDS_AUTO,      /** auto */
 
41980
    PDS_REGISTER,  /** register */
 
41981
    PDS_STATIC,    /** static */
 
41982
    PDS_EXTERN,    /** extern */
 
41983
    PDS_MUTABLE,   /** mutable */
 
41984
    PDS_INLINE,    /** inline */
 
41985
    PDS_VIRTUAL,   /** virtual */
 
41986
    PDS_EXPLICIT,  /** explicit */
 
41987
    PDS_CONST,     /** const */
 
41988
    PDS_VOLATILE,  /** volatile */
 
41989
    PDS_RESTRICT,  /** restrict */
 
41990
    PDS_CHAR,      /** char */
 
41991
    PDS_WCHAR_T,   /** wchar_t */
 
41992
    PDS_BOOL,      /** bool */
 
41993
    PDS_SHORT,     /** short */
 
41994
    PDS_INT,       /** int */
 
41995
    PDS_LONG,      /** long */
 
41996
    PDS_SIGNED,    /** signed */
 
41997
    PDS_UNSIGNED,  /** unsigned */
 
41998
    PDS_FLOAT,     /** float */
 
41999
    PDS_DOUBLE,    /** double */
 
42000
    PDS_VOID,      /** void */
 
42001
    // AspectC++ specific type specifier
 
42002
    PDS_UNKNOWN_T, /** unknown_t */
 
42003
    // Win specific declaration specifiers
 
42004
    PDS_CDECL,     /** __cdecl */
 
42005
    PDS_STDCALL,   /** __stdcall */
 
42006
    PDS_FASTCALL,  /** __fastcall */
 
42007
    PDS_INT64,     /** __int64 */
 
42008
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
42009
    PDS_NUM        /** Number of declaration specifier types. */
 
42010
  };
 
42011
 
 
42012
private:
 
42013
  Type _type;
 
42014
  CTree *_token; // has to be a CT_Token
 
42015
 
 
42016
  void determine_type ();
 
42017
 
 
42018
public:
 
42019
  /** Constructor.
 
42020
   *  \param t The token containing the declaration specifier. */
 
42021
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
42022
  /** Constructor.
 
42023
   *  \param t The declaration specifier type. */
 
42024
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
42025
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42026
  static const char *NodeId ();
 
42027
  /** Get the name of the node. Can be compared with NodeId(). */
 
42028
  const char *NodeName () const { return NodeId (); }
 
42029
  /** Get the number of sons. */
 
42030
  int Sons () const { return _token ? 1 : 0; }
 
42031
  /** Get the n-th son.
 
42032
   *  \param n The index of the son.
 
42033
   *  \return The n-th son or NULL. */
 
42034
  CTree *Son (int n) const 
 
42035
   { return (n == 0) ? _token : (CTree*)0; }
 
42036
  /** Get the textual representation of the declaration specifier.
 
42037
   *  \return The string representation or " ". */
 
42038
  const char *SpecText () const 
 
42039
   { return _token ? _token->token ()->text () : " "; }
 
42040
  /** Get the declaration specifier type. */
 
42041
  Type SpecType () const { return _type; }
 
42042
  /** Number of declaration specifier types. */
 
42043
  static const int NumTypes = PDS_NUM;
 
42044
  /** Replace a son.
 
42045
   *  \param old_son The son to replace.
 
42046
   *  \param new_son The new son. */
 
42047
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42048
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
42049
    determine_type ();
 
42050
  }
 
42051
};
 
42052
 
 
42053
/** \class CT_NamedType CTree.h Puma/CTree.h
 
42054
 *  Tree node representing a named type, e.g. (int*)a. 
 
42055
 *  where int* is a type with a generated name. */
 
42056
 
 
42057
#line 42058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42058
} // closed Puma
 
42059
class CCExprResolve;
 
42060
class CExprResolve;
 
42061
class WinIfExists;
 
42062
class WinImportHandler;
 
42063
class WinMacros;
 
42064
class WinAsm;
 
42065
class WinDeclSpecs;
 
42066
class WinMemberExplSpec;
 
42067
class WinTypeKeywords;
 
42068
class WinFriend;
 
42069
class ExtAC;
 
42070
class ExtACBuilderCoupling;
 
42071
class ExtACSyntaxCoupling;
 
42072
class ExtACTree;
 
42073
class ExtACKeywords;
 
42074
class ExtGnu;
 
42075
class PragmaOnceUnitState;
 
42076
class PragmaOnce;
 
42077
class CMatchSyntax;
 
42078
namespace Puma {
 
42079
 
 
42080
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42081
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
42082
#line 42083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42083
  friend class ::CCExprResolve;
 
42084
  friend class ::CExprResolve;
 
42085
  friend class ::WinIfExists;
 
42086
  friend class ::WinImportHandler;
 
42087
  friend class ::WinMacros;
 
42088
  friend class ::WinAsm;
 
42089
  friend class ::WinDeclSpecs;
 
42090
  friend class ::WinMemberExplSpec;
 
42091
  friend class ::WinTypeKeywords;
 
42092
  friend class ::WinFriend;
 
42093
  friend class ::ExtAC;
 
42094
  friend class ::ExtACBuilderCoupling;
 
42095
  friend class ::ExtACSyntaxCoupling;
 
42096
  friend class ::ExtACTree;
 
42097
  friend class ::ExtACKeywords;
 
42098
  friend class ::ExtGnu;
 
42099
  friend class ::PragmaOnceUnitState;
 
42100
  friend class ::PragmaOnce;
 
42101
  friend class ::CMatchSyntax;
 
42102
 
 
42103
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42104
 
 
42105
  CTree *sons[2]; // declspecs, declarator
 
42106
 
 
42107
public:
 
42108
  /** Constructor.
 
42109
   *  \param dss The declaration specifier sequence of the type.
 
42110
   *  \param d The type declarator. */
 
42111
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
42112
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42113
  static const char *NodeId ();
 
42114
  /** Get the name of the node. Can be compared with NodeId(). */
 
42115
  const char *NodeName () const { return NodeId (); }
 
42116
  /** Get the number of sons. */
 
42117
  int Sons () const { return CTree::Sons (sons, 2); }
 
42118
  /** Get the n-th son.
 
42119
   *  \param n The index of the son.
 
42120
   *  \return The n-th son or NULL. */
 
42121
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
42122
  /** Get the declarator. */
 
42123
  CTree *Declarator () const { return sons[1]; }
 
42124
  /** Replace a son.
 
42125
   *  \param old_son The son to replace.
 
42126
   *  \param new_son The new son. */
 
42127
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42128
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
42129
  }
 
42130
  /** Get the semantic information object. */
 
42131
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
42132
};
 
42133
      
 
42134
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
42135
 *  Tree node representing a class specifier, e.g. class X. */
 
42136
 
 
42137
#line 42138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42138
} // closed Puma
 
42139
class CCExprResolve;
 
42140
class CExprResolve;
 
42141
class WinIfExists;
 
42142
class WinImportHandler;
 
42143
class WinMacros;
 
42144
class WinAsm;
 
42145
class WinDeclSpecs;
 
42146
class WinMemberExplSpec;
 
42147
class WinTypeKeywords;
 
42148
class WinFriend;
 
42149
class ExtAC;
 
42150
class ExtACBuilderCoupling;
 
42151
class ExtACSyntaxCoupling;
 
42152
class ExtACTree;
 
42153
class ExtACKeywords;
 
42154
class ExtGnu;
 
42155
class PragmaOnceUnitState;
 
42156
class PragmaOnce;
 
42157
class CMatchSyntax;
 
42158
namespace Puma {
 
42159
 
 
42160
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42161
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
42162
#line 42163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42163
  friend class ::CCExprResolve;
 
42164
  friend class ::CExprResolve;
 
42165
  friend class ::WinIfExists;
 
42166
  friend class ::WinImportHandler;
 
42167
  friend class ::WinMacros;
 
42168
  friend class ::WinAsm;
 
42169
  friend class ::WinDeclSpecs;
 
42170
  friend class ::WinMemberExplSpec;
 
42171
  friend class ::WinTypeKeywords;
 
42172
  friend class ::WinFriend;
 
42173
  friend class ::ExtAC;
 
42174
  friend class ::ExtACBuilderCoupling;
 
42175
  friend class ::ExtACSyntaxCoupling;
 
42176
  friend class ::ExtACTree;
 
42177
  friend class ::ExtACKeywords;
 
42178
  friend class ::ExtGnu;
 
42179
  friend class ::PragmaOnceUnitState;
 
42180
  friend class ::PragmaOnce;
 
42181
  friend class ::CMatchSyntax;
 
42182
 
 
42183
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42184
 
 
42185
  CTree *sons[2]; // key, name
 
42186
  
 
42187
public:
 
42188
  /** Constructor.
 
42189
   *  \param k The 'class' or 'struct' keyword.
 
42190
   *  \param n The class name. */
 
42191
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
42192
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42193
  static const char *NodeId ();
 
42194
  /** Get the name of the node. Can be compared with NodeId(). */
 
42195
  const char *NodeName () const { return NodeId (); }
 
42196
  /** Get the number of sons. */
 
42197
  int Sons () const { return 2; }
 
42198
  /** Get the n-th son.
 
42199
   *  \param n The index of the son.
 
42200
   *  \return The n-th son or NULL. */
 
42201
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
42202
  /** Get the class name. */
 
42203
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
42204
  /** Get the semantic information object. */
 
42205
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
42206
  /** Replace a son.
 
42207
   *  \param old_son The son to replace.
 
42208
   *  \param new_son The new son. */
 
42209
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42210
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
42211
  }
 
42212
};
 
42213
 
 
42214
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
42215
 *  Tree node representing a union specifier, e.g. union X. */
 
42216
 
 
42217
#line 42218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42218
} // closed Puma
 
42219
class CCExprResolve;
 
42220
class CExprResolve;
 
42221
class WinIfExists;
 
42222
class WinImportHandler;
 
42223
class WinMacros;
 
42224
class WinAsm;
 
42225
class WinDeclSpecs;
 
42226
class WinMemberExplSpec;
 
42227
class WinTypeKeywords;
 
42228
class WinFriend;
 
42229
class ExtAC;
 
42230
class ExtACBuilderCoupling;
 
42231
class ExtACSyntaxCoupling;
 
42232
class ExtACTree;
 
42233
class ExtACKeywords;
 
42234
class ExtGnu;
 
42235
class PragmaOnceUnitState;
 
42236
class PragmaOnce;
 
42237
class CMatchSyntax;
 
42238
namespace Puma {
 
42239
 
 
42240
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42241
class CT_UnionSpec : public CT_ClassSpec {
 
42242
#line 42243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42243
  friend class ::CCExprResolve;
 
42244
  friend class ::CExprResolve;
 
42245
  friend class ::WinIfExists;
 
42246
  friend class ::WinImportHandler;
 
42247
  friend class ::WinMacros;
 
42248
  friend class ::WinAsm;
 
42249
  friend class ::WinDeclSpecs;
 
42250
  friend class ::WinMemberExplSpec;
 
42251
  friend class ::WinTypeKeywords;
 
42252
  friend class ::WinFriend;
 
42253
  friend class ::ExtAC;
 
42254
  friend class ::ExtACBuilderCoupling;
 
42255
  friend class ::ExtACSyntaxCoupling;
 
42256
  friend class ::ExtACTree;
 
42257
  friend class ::ExtACKeywords;
 
42258
  friend class ::ExtGnu;
 
42259
  friend class ::PragmaOnceUnitState;
 
42260
  friend class ::PragmaOnce;
 
42261
  friend class ::CMatchSyntax;
 
42262
 
 
42263
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42264
 
 
42265
public:
 
42266
  /** Constructor.
 
42267
   *  \param k The 'union' keyword.
 
42268
   *  \param n The name of the union. */
 
42269
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
42270
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42271
  static const char *NodeId ();
 
42272
  /** Get the name of the node. Can be compared with NodeId(). */
 
42273
  const char *NodeName () const { return NodeId (); }
 
42274
};
 
42275
 
 
42276
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
42277
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
42278
 
 
42279
#line 42280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42280
} // closed Puma
 
42281
class CCExprResolve;
 
42282
class CExprResolve;
 
42283
class WinIfExists;
 
42284
class WinImportHandler;
 
42285
class WinMacros;
 
42286
class WinAsm;
 
42287
class WinDeclSpecs;
 
42288
class WinMemberExplSpec;
 
42289
class WinTypeKeywords;
 
42290
class WinFriend;
 
42291
class ExtAC;
 
42292
class ExtACBuilderCoupling;
 
42293
class ExtACSyntaxCoupling;
 
42294
class ExtACTree;
 
42295
class ExtACKeywords;
 
42296
class ExtGnu;
 
42297
class PragmaOnceUnitState;
 
42298
class PragmaOnce;
 
42299
class CMatchSyntax;
 
42300
namespace Puma {
 
42301
 
 
42302
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42303
class CT_EnumSpec : public CT_ClassSpec {
 
42304
#line 42305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42305
  friend class ::CCExprResolve;
 
42306
  friend class ::CExprResolve;
 
42307
  friend class ::WinIfExists;
 
42308
  friend class ::WinImportHandler;
 
42309
  friend class ::WinMacros;
 
42310
  friend class ::WinAsm;
 
42311
  friend class ::WinDeclSpecs;
 
42312
  friend class ::WinMemberExplSpec;
 
42313
  friend class ::WinTypeKeywords;
 
42314
  friend class ::WinFriend;
 
42315
  friend class ::ExtAC;
 
42316
  friend class ::ExtACBuilderCoupling;
 
42317
  friend class ::ExtACSyntaxCoupling;
 
42318
  friend class ::ExtACTree;
 
42319
  friend class ::ExtACKeywords;
 
42320
  friend class ::ExtGnu;
 
42321
  friend class ::PragmaOnceUnitState;
 
42322
  friend class ::PragmaOnce;
 
42323
  friend class ::CMatchSyntax;
 
42324
 
 
42325
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42326
 
 
42327
public:
 
42328
  /** Constructor.
 
42329
   *  \param k The 'enum' keyword. 
 
42330
   *  \param n The name of the enumeration. */
 
42331
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
42332
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42333
  static const char *NodeId ();
 
42334
  /** Get the name of the node. Can be compared with NodeId(). */
 
42335
  const char *NodeName () const { return NodeId (); }
 
42336
};
 
42337
 
 
42338
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
42339
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
42340
 
 
42341
#line 42342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42342
} // closed Puma
 
42343
class CCExprResolve;
 
42344
class CExprResolve;
 
42345
class WinIfExists;
 
42346
class WinImportHandler;
 
42347
class WinMacros;
 
42348
class WinAsm;
 
42349
class WinDeclSpecs;
 
42350
class WinMemberExplSpec;
 
42351
class WinTypeKeywords;
 
42352
class WinFriend;
 
42353
class ExtAC;
 
42354
class ExtACBuilderCoupling;
 
42355
class ExtACSyntaxCoupling;
 
42356
class ExtACTree;
 
42357
class ExtACKeywords;
 
42358
class ExtGnu;
 
42359
class PragmaOnceUnitState;
 
42360
class PragmaOnce;
 
42361
class CMatchSyntax;
 
42362
namespace Puma {
 
42363
 
 
42364
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42365
class CT_ExceptionSpec : public CT_DeclSpec {
 
42366
#line 42367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42367
  friend class ::CCExprResolve;
 
42368
  friend class ::CExprResolve;
 
42369
  friend class ::WinIfExists;
 
42370
  friend class ::WinImportHandler;
 
42371
  friend class ::WinMacros;
 
42372
  friend class ::WinAsm;
 
42373
  friend class ::WinDeclSpecs;
 
42374
  friend class ::WinMemberExplSpec;
 
42375
  friend class ::WinTypeKeywords;
 
42376
  friend class ::WinFriend;
 
42377
  friend class ::ExtAC;
 
42378
  friend class ::ExtACBuilderCoupling;
 
42379
  friend class ::ExtACSyntaxCoupling;
 
42380
  friend class ::ExtACTree;
 
42381
  friend class ::ExtACKeywords;
 
42382
  friend class ::ExtGnu;
 
42383
  friend class ::PragmaOnceUnitState;
 
42384
  friend class ::PragmaOnce;
 
42385
  friend class ::CMatchSyntax;
 
42386
 
 
42387
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42388
 
 
42389
  CTree *sons[2]; // throw, type_id_list
 
42390
  
 
42391
public:
 
42392
  /** Constructor.
 
42393
   *  \param k The 'throw' keyword.
 
42394
   *  \param l The type list for the exception type to throw. */
 
42395
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
42396
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42397
  static const char *NodeId ();
 
42398
  /** Get the name of the node. Can be compared with NodeId(). */
 
42399
  const char *NodeName () const { return NodeId (); }
 
42400
  /** Get the number of sons. */
 
42401
  int Sons () const { return 2; }
 
42402
  /** Get the n-th son.
 
42403
   *  \param n The index of the son.
 
42404
   *  \return The n-th son or NULL. */
 
42405
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
42406
  /** Get the exception type list. */
 
42407
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
42408
  /** Replace a son.
 
42409
   *  \param old_son The son to replace.
 
42410
   *  \param new_son The new son. */
 
42411
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42412
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
42413
  }
 
42414
};
 
42415
 
 
42416
/*****************************************************************************/
 
42417
/*                                                                           */
 
42418
/*                              Declarations                                 */
 
42419
/*                                                                           */
 
42420
/*****************************************************************************/
 
42421
 
 
42422
/** \class CT_Decl CTree.h Puma/CTree.h
 
42423
 *  Base class for all tree nodes representing declarations. */
 
42424
 
 
42425
#line 42426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42426
} // closed Puma
 
42427
class CCExprResolve;
 
42428
class CExprResolve;
 
42429
class WinIfExists;
 
42430
class WinImportHandler;
 
42431
class WinMacros;
 
42432
class WinAsm;
 
42433
class WinDeclSpecs;
 
42434
class WinMemberExplSpec;
 
42435
class WinTypeKeywords;
 
42436
class WinFriend;
 
42437
class ExtAC;
 
42438
class ExtACBuilderCoupling;
 
42439
class ExtACSyntaxCoupling;
 
42440
class ExtACTree;
 
42441
class ExtACKeywords;
 
42442
class ExtGnu;
 
42443
class PragmaOnceUnitState;
 
42444
class PragmaOnce;
 
42445
class CMatchSyntax;
 
42446
namespace Puma {
 
42447
 
 
42448
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42449
class CT_Decl : public CTree {
 
42450
#line 42451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42451
  friend class ::CCExprResolve;
 
42452
  friend class ::CExprResolve;
 
42453
  friend class ::WinIfExists;
 
42454
  friend class ::WinImportHandler;
 
42455
  friend class ::WinMacros;
 
42456
  friend class ::WinAsm;
 
42457
  friend class ::WinDeclSpecs;
 
42458
  friend class ::WinMemberExplSpec;
 
42459
  friend class ::WinTypeKeywords;
 
42460
  friend class ::WinFriend;
 
42461
  friend class ::ExtAC;
 
42462
  friend class ::ExtACBuilderCoupling;
 
42463
  friend class ::ExtACSyntaxCoupling;
 
42464
  friend class ::ExtACTree;
 
42465
  friend class ::ExtACKeywords;
 
42466
  friend class ::ExtGnu;
 
42467
  friend class ::PragmaOnceUnitState;
 
42468
  friend class ::PragmaOnce;
 
42469
  friend class ::CMatchSyntax;
 
42470
 
 
42471
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42472
 
 
42473
  CT_LinkageSpec *_linkage;
 
42474
  
 
42475
protected:
 
42476
  /** Constructor. */
 
42477
  CT_Decl () : _linkage (0) {}
 
42478
  
 
42479
public:
 
42480
  /** Set the linkage of the declared entity.
 
42481
   *  \param l The linkage specifiers. */
 
42482
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
42483
  /** Get the linkage specifiers. */
 
42484
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
42485
  /** Get this. */
 
42486
  virtual CT_Decl *IsDeclaration () { return this; }
 
42487
};
 
42488
 
 
42489
/** \class CT_Program CTree.h Puma/CTree.h
 
42490
 *  Root node of C/C++ syntax tree. */
 
42491
 
 
42492
#line 42493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42493
} // closed Puma
 
42494
class CCExprResolve;
 
42495
class CExprResolve;
 
42496
class WinIfExists;
 
42497
class WinImportHandler;
 
42498
class WinMacros;
 
42499
class WinAsm;
 
42500
class WinDeclSpecs;
 
42501
class WinMemberExplSpec;
 
42502
class WinTypeKeywords;
 
42503
class WinFriend;
 
42504
class ExtAC;
 
42505
class ExtACBuilderCoupling;
 
42506
class ExtACSyntaxCoupling;
 
42507
class ExtACTree;
 
42508
class ExtACKeywords;
 
42509
class ExtGnu;
 
42510
class PragmaOnceUnitState;
 
42511
class PragmaOnce;
 
42512
class CMatchSyntax;
 
42513
namespace Puma {
 
42514
 
 
42515
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42516
class CT_Program : public CT_DeclList, public CSemScope {
 
42517
#line 42518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42518
  friend class ::CCExprResolve;
 
42519
  friend class ::CExprResolve;
 
42520
  friend class ::WinIfExists;
 
42521
  friend class ::WinImportHandler;
 
42522
  friend class ::WinMacros;
 
42523
  friend class ::WinAsm;
 
42524
  friend class ::WinDeclSpecs;
 
42525
  friend class ::WinMemberExplSpec;
 
42526
  friend class ::WinTypeKeywords;
 
42527
  friend class ::WinFriend;
 
42528
  friend class ::ExtAC;
 
42529
  friend class ::ExtACBuilderCoupling;
 
42530
  friend class ::ExtACSyntaxCoupling;
 
42531
  friend class ::ExtACTree;
 
42532
  friend class ::ExtACKeywords;
 
42533
  friend class ::ExtGnu;
 
42534
  friend class ::PragmaOnceUnitState;
 
42535
  friend class ::PragmaOnce;
 
42536
  friend class ::CMatchSyntax;
 
42537
 
 
42538
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42539
 
 
42540
public:
 
42541
  /** Constructor.
 
42542
   *  \param size The initial number of declarations in the program.
 
42543
   *  \param incr The initial increment count. */
 
42544
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
42545
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42546
  static const char *NodeId ();
 
42547
  /** Get the name of the node. Can be compared with NodeId(). */
 
42548
  const char *NodeName () const { return NodeId (); }
 
42549
  /** Get the semantic scope object. */
 
42550
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
42551
};
 
42552
   
 
42553
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
42554
 *  Tree node representing an object declaration, e.g. int *i. */
 
42555
 
 
42556
#line 42557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42557
} // closed Puma
 
42558
class CCExprResolve;
 
42559
class CExprResolve;
 
42560
class WinIfExists;
 
42561
class WinImportHandler;
 
42562
class WinMacros;
 
42563
class WinAsm;
 
42564
class WinDeclSpecs;
 
42565
class WinMemberExplSpec;
 
42566
class WinTypeKeywords;
 
42567
class WinFriend;
 
42568
class ExtAC;
 
42569
class ExtACBuilderCoupling;
 
42570
class ExtACSyntaxCoupling;
 
42571
class ExtACTree;
 
42572
class ExtACKeywords;
 
42573
class ExtGnu;
 
42574
class PragmaOnceUnitState;
 
42575
class PragmaOnce;
 
42576
class CMatchSyntax;
 
42577
namespace Puma {
 
42578
 
 
42579
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42580
class CT_ObjDecl : public CT_Decl {
 
42581
#line 42582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42582
  friend class ::CCExprResolve;
 
42583
  friend class ::CExprResolve;
 
42584
  friend class ::WinIfExists;
 
42585
  friend class ::WinImportHandler;
 
42586
  friend class ::WinMacros;
 
42587
  friend class ::WinAsm;
 
42588
  friend class ::WinDeclSpecs;
 
42589
  friend class ::WinMemberExplSpec;
 
42590
  friend class ::WinTypeKeywords;
 
42591
  friend class ::WinFriend;
 
42592
  friend class ::ExtAC;
 
42593
  friend class ::ExtACBuilderCoupling;
 
42594
  friend class ::ExtACSyntaxCoupling;
 
42595
  friend class ::ExtACTree;
 
42596
  friend class ::ExtACKeywords;
 
42597
  friend class ::ExtGnu;
 
42598
  friend class ::PragmaOnceUnitState;
 
42599
  friend class ::PragmaOnce;
 
42600
  friend class ::CMatchSyntax;
 
42601
 
 
42602
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42603
 
 
42604
  CTree *sons[3]; // declspecs, declarators, colon
 
42605
 
 
42606
public:
 
42607
  /** Constructor.
 
42608
   *  \param dsl The declaration specifier sequence.
 
42609
   *  \param dl The declarator list.
 
42610
   *  \param c Optional colon. */
 
42611
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
42612
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
42613
  }
 
42614
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42615
  static const char *NodeId ();
 
42616
  /** Get the name of the node. Can be compared with NodeId(). */
 
42617
  const char *NodeName () const { return NodeId (); }
 
42618
  /** Get the number of sons. */
 
42619
  int Sons () const { return 3; }
 
42620
  /** Get the n-th son.
 
42621
   *  \param n The index of the son.
 
42622
   *  \return The n-th son or NULL. */
 
42623
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
42624
  /** Get the declaration specifier sequence. */
 
42625
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
42626
  /** Get the declarator list. */
 
42627
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
42628
  /** Replace a son.
 
42629
   *  \param old_son The son to replace.
 
42630
   *  \param new_son The new son. */
 
42631
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42632
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
42633
  }
 
42634
};
 
42635
 
 
42636
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
42637
 *  Tree node representing a template declaration. */
 
42638
 
 
42639
#line 42640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42640
} // closed Puma
 
42641
class CCExprResolve;
 
42642
class CExprResolve;
 
42643
class WinIfExists;
 
42644
class WinImportHandler;
 
42645
class WinMacros;
 
42646
class WinAsm;
 
42647
class WinDeclSpecs;
 
42648
class WinMemberExplSpec;
 
42649
class WinTypeKeywords;
 
42650
class WinFriend;
 
42651
class ExtAC;
 
42652
class ExtACBuilderCoupling;
 
42653
class ExtACSyntaxCoupling;
 
42654
class ExtACTree;
 
42655
class ExtACKeywords;
 
42656
class ExtGnu;
 
42657
class PragmaOnceUnitState;
 
42658
class PragmaOnce;
 
42659
class CMatchSyntax;
 
42660
namespace Puma {
 
42661
 
 
42662
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42663
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
42664
#line 42665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42665
  friend class ::CCExprResolve;
 
42666
  friend class ::CExprResolve;
 
42667
  friend class ::WinIfExists;
 
42668
  friend class ::WinImportHandler;
 
42669
  friend class ::WinMacros;
 
42670
  friend class ::WinAsm;
 
42671
  friend class ::WinDeclSpecs;
 
42672
  friend class ::WinMemberExplSpec;
 
42673
  friend class ::WinTypeKeywords;
 
42674
  friend class ::WinFriend;
 
42675
  friend class ::ExtAC;
 
42676
  friend class ::ExtACBuilderCoupling;
 
42677
  friend class ::ExtACSyntaxCoupling;
 
42678
  friend class ::ExtACTree;
 
42679
  friend class ::ExtACKeywords;
 
42680
  friend class ::ExtGnu;
 
42681
  friend class ::PragmaOnceUnitState;
 
42682
  friend class ::PragmaOnce;
 
42683
  friend class ::CMatchSyntax;
 
42684
 
 
42685
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42686
 
 
42687
  CTree *sons[3]; // export, param_list, decl
 
42688
 
 
42689
public:
 
42690
  /** Constructor.
 
42691
   *  \param e Optional 'export' keyword. 
 
42692
   *  \param p The template parameter list.
 
42693
   *  \param d The class or function declaration. */
 
42694
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
42695
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
42696
  }
 
42697
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42698
  static const char *NodeId ();
 
42699
  /** Get the name of the node. Can be compared with NodeId(). */
 
42700
  const char *NodeName () const { return NodeId (); }
 
42701
  /** Get the number of sons. */
 
42702
  int Sons () const { return CTree::Sons (sons, 3); }
 
42703
  /** Get the n-th son.
 
42704
   *  \param n The index of the son.
 
42705
   *  \return The n-th son or NULL. */
 
42706
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
42707
  /** Replace a son.
 
42708
   *  \param old_son The son to replace.
 
42709
   *  \param new_son The new son. */
 
42710
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42711
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
42712
  }
 
42713
  /** Get the 'export' keyword. */
 
42714
  CTree *Export () const { return sons[0]; }
 
42715
  /** Get the template parameter list. */
 
42716
  CT_TemplateParamList *Parameters () const { 
 
42717
    return (CT_TemplateParamList*)sons[1]; 
 
42718
  }
 
42719
  /** Get the class or function declaration. */
 
42720
  CTree *Declaration () const { return sons[2]; }
 
42721
  /** Get the semantic scope object. */
 
42722
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
42723
};
 
42724
 
 
42725
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
42726
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
42727
 
 
42728
#line 42729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42729
} // closed Puma
 
42730
class CCExprResolve;
 
42731
class CExprResolve;
 
42732
class WinIfExists;
 
42733
class WinImportHandler;
 
42734
class WinMacros;
 
42735
class WinAsm;
 
42736
class WinDeclSpecs;
 
42737
class WinMemberExplSpec;
 
42738
class WinTypeKeywords;
 
42739
class WinFriend;
 
42740
class ExtAC;
 
42741
class ExtACBuilderCoupling;
 
42742
class ExtACSyntaxCoupling;
 
42743
class ExtACTree;
 
42744
class ExtACKeywords;
 
42745
class ExtGnu;
 
42746
class PragmaOnceUnitState;
 
42747
class PragmaOnce;
 
42748
class CMatchSyntax;
 
42749
namespace Puma {
 
42750
 
 
42751
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42752
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
42753
#line 42754 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42754
  friend class ::CCExprResolve;
 
42755
  friend class ::CExprResolve;
 
42756
  friend class ::WinIfExists;
 
42757
  friend class ::WinImportHandler;
 
42758
  friend class ::WinMacros;
 
42759
  friend class ::WinAsm;
 
42760
  friend class ::WinDeclSpecs;
 
42761
  friend class ::WinMemberExplSpec;
 
42762
  friend class ::WinTypeKeywords;
 
42763
  friend class ::WinFriend;
 
42764
  friend class ::ExtAC;
 
42765
  friend class ::ExtACBuilderCoupling;
 
42766
  friend class ::ExtACSyntaxCoupling;
 
42767
  friend class ::ExtACTree;
 
42768
  friend class ::ExtACKeywords;
 
42769
  friend class ::ExtGnu;
 
42770
  friend class ::PragmaOnceUnitState;
 
42771
  friend class ::PragmaOnce;
 
42772
  friend class ::CMatchSyntax;
 
42773
 
 
42774
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42775
 
 
42776
protected:
 
42777
  /** Constructor. */
 
42778
  CT_TemplateParamDecl () {}
 
42779
  
 
42780
public:
 
42781
  /** Get the template default argument. */
 
42782
  virtual CT_ExprList *DefaultArgument () const = 0;
 
42783
  /** Get the semantic information object. */
 
42784
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
42785
};
 
42786
 
 
42787
 
 
42788
#line 42789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42789
} // closed Puma
 
42790
class CCExprResolve;
 
42791
class CExprResolve;
 
42792
class WinIfExists;
 
42793
class WinImportHandler;
 
42794
class WinMacros;
 
42795
class WinAsm;
 
42796
class WinDeclSpecs;
 
42797
class WinMemberExplSpec;
 
42798
class WinTypeKeywords;
 
42799
class WinFriend;
 
42800
class ExtAC;
 
42801
class ExtACBuilderCoupling;
 
42802
class ExtACSyntaxCoupling;
 
42803
class ExtACTree;
 
42804
class ExtACKeywords;
 
42805
class ExtGnu;
 
42806
class PragmaOnceUnitState;
 
42807
class PragmaOnce;
 
42808
class CMatchSyntax;
 
42809
namespace Puma {
 
42810
 
 
42811
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42812
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
42813
#line 42814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42814
  friend class ::CCExprResolve;
 
42815
  friend class ::CExprResolve;
 
42816
  friend class ::WinIfExists;
 
42817
  friend class ::WinImportHandler;
 
42818
  friend class ::WinMacros;
 
42819
  friend class ::WinAsm;
 
42820
  friend class ::WinDeclSpecs;
 
42821
  friend class ::WinMemberExplSpec;
 
42822
  friend class ::WinTypeKeywords;
 
42823
  friend class ::WinFriend;
 
42824
  friend class ::ExtAC;
 
42825
  friend class ::ExtACBuilderCoupling;
 
42826
  friend class ::ExtACSyntaxCoupling;
 
42827
  friend class ::ExtACTree;
 
42828
  friend class ::ExtACKeywords;
 
42829
  friend class ::ExtGnu;
 
42830
  friend class ::PragmaOnceUnitState;
 
42831
  friend class ::PragmaOnce;
 
42832
  friend class ::CMatchSyntax;
 
42833
 
 
42834
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42835
 
 
42836
  CTree *sons[3]; // declspecs, declarator, init
 
42837
 
 
42838
public:
 
42839
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
42840
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
42841
  }
 
42842
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42843
  static const char *NodeId ();
 
42844
  /** Get the name of the node. Can be compared with NodeId(). */
 
42845
  const char *NodeName () const { return NodeId (); }
 
42846
  /** Get the number of sons. */
 
42847
  int Sons () const { return CTree::Sons (sons, 3); }
 
42848
  /** Get the n-th son.
 
42849
   *  \param n The index of the son.
 
42850
   *  \return The n-th son or NULL. */
 
42851
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
42852
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
42853
  CTree *Declarator () const { return sons[1]; }
 
42854
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
42855
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
42856
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
42857
  /** Replace a son.
 
42858
   *  \param old_son The son to replace.
 
42859
   *  \param new_son The new son. */
 
42860
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42861
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
42862
  }
 
42863
};
 
42864
 
 
42865
 
 
42866
#line 42867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42867
} // closed Puma
 
42868
class CCExprResolve;
 
42869
class CExprResolve;
 
42870
class WinIfExists;
 
42871
class WinImportHandler;
 
42872
class WinMacros;
 
42873
class WinAsm;
 
42874
class WinDeclSpecs;
 
42875
class WinMemberExplSpec;
 
42876
class WinTypeKeywords;
 
42877
class WinFriend;
 
42878
class ExtAC;
 
42879
class ExtACBuilderCoupling;
 
42880
class ExtACSyntaxCoupling;
 
42881
class ExtACTree;
 
42882
class ExtACKeywords;
 
42883
class ExtGnu;
 
42884
class PragmaOnceUnitState;
 
42885
class PragmaOnce;
 
42886
class CMatchSyntax;
 
42887
namespace Puma {
 
42888
 
 
42889
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42890
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
42891
#line 42892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42892
  friend class ::CCExprResolve;
 
42893
  friend class ::CExprResolve;
 
42894
  friend class ::WinIfExists;
 
42895
  friend class ::WinImportHandler;
 
42896
  friend class ::WinMacros;
 
42897
  friend class ::WinAsm;
 
42898
  friend class ::WinDeclSpecs;
 
42899
  friend class ::WinMemberExplSpec;
 
42900
  friend class ::WinTypeKeywords;
 
42901
  friend class ::WinFriend;
 
42902
  friend class ::ExtAC;
 
42903
  friend class ::ExtACBuilderCoupling;
 
42904
  friend class ::ExtACSyntaxCoupling;
 
42905
  friend class ::ExtACTree;
 
42906
  friend class ::ExtACKeywords;
 
42907
  friend class ::ExtGnu;
 
42908
  friend class ::PragmaOnceUnitState;
 
42909
  friend class ::PragmaOnce;
 
42910
  friend class ::CMatchSyntax;
 
42911
 
 
42912
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42913
 
 
42914
  CTree *sons[4]; // params, key, id, init
 
42915
 
 
42916
public:
 
42917
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
42918
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
42919
    AddSon (sons[2], id); AddSon (sons[3], i);
 
42920
  }
 
42921
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42922
  static const char *NodeId ();
 
42923
  /** Get the name of the node. Can be compared with NodeId(). */
 
42924
  const char *NodeName () const { return NodeId (); }
 
42925
  /** Get the number of sons. */
 
42926
  int Sons () const { return CTree::Sons (sons, 4); }
 
42927
  /** Get the n-th son.
 
42928
   *  \param n The index of the son.
 
42929
   *  \return The n-th son or NULL. */
 
42930
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
42931
  CT_TemplateParamList *Parameters () const { 
 
42932
    return (CT_TemplateParamList*)sons[0]; 
 
42933
  }
 
42934
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
42935
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
42936
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
42937
  /** Replace a son.
 
42938
   *  \param old_son The son to replace.
 
42939
   *  \param new_son The new son. */
 
42940
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42941
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
42942
  }
 
42943
};
 
42944
 
 
42945
 
 
42946
#line 42947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42947
} // closed Puma
 
42948
class CCExprResolve;
 
42949
class CExprResolve;
 
42950
class WinIfExists;
 
42951
class WinImportHandler;
 
42952
class WinMacros;
 
42953
class WinAsm;
 
42954
class WinDeclSpecs;
 
42955
class WinMemberExplSpec;
 
42956
class WinTypeKeywords;
 
42957
class WinFriend;
 
42958
class ExtAC;
 
42959
class ExtACBuilderCoupling;
 
42960
class ExtACSyntaxCoupling;
 
42961
class ExtACTree;
 
42962
class ExtACKeywords;
 
42963
class ExtGnu;
 
42964
class PragmaOnceUnitState;
 
42965
class PragmaOnce;
 
42966
class CMatchSyntax;
 
42967
namespace Puma {
 
42968
 
 
42969
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42970
class CT_EnumDef : public CT_Decl, public CSemObject {
 
42971
#line 42972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
42972
  friend class ::CCExprResolve;
 
42973
  friend class ::CExprResolve;
 
42974
  friend class ::WinIfExists;
 
42975
  friend class ::WinImportHandler;
 
42976
  friend class ::WinMacros;
 
42977
  friend class ::WinAsm;
 
42978
  friend class ::WinDeclSpecs;
 
42979
  friend class ::WinMemberExplSpec;
 
42980
  friend class ::WinTypeKeywords;
 
42981
  friend class ::WinFriend;
 
42982
  friend class ::ExtAC;
 
42983
  friend class ::ExtACBuilderCoupling;
 
42984
  friend class ::ExtACSyntaxCoupling;
 
42985
  friend class ::ExtACTree;
 
42986
  friend class ::ExtACKeywords;
 
42987
  friend class ::ExtGnu;
 
42988
  friend class ::PragmaOnceUnitState;
 
42989
  friend class ::PragmaOnce;
 
42990
  friend class ::CMatchSyntax;
 
42991
 
 
42992
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42993
 
 
42994
  CTree *sons[3]; // key, name, enumerators
 
42995
 
 
42996
public:
 
42997
  CT_EnumDef (CTree *k, CTree *n) {
 
42998
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
42999
  }
 
43000
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43001
  static const char *NodeId ();
 
43002
  /** Get the name of the node. Can be compared with NodeId(). */
 
43003
  const char *NodeName () const { return NodeId (); }
 
43004
  /** Get the number of sons. */
 
43005
  int Sons () const { return CTree::Sons (sons, 3); }
 
43006
  /** Get the n-th son.
 
43007
   *  \param n The index of the son.
 
43008
   *  \return The n-th son or NULL. */
 
43009
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
43010
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
43011
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
43012
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
43013
  /** Replace a son.
 
43014
   *  \param old_son The son to replace.
 
43015
   *  \param new_son The new son. */
 
43016
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43017
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
43018
  }
 
43019
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
43020
};
 
43021
 
 
43022
 
 
43023
#line 43024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43024
} // closed Puma
 
43025
class CCExprResolve;
 
43026
class CExprResolve;
 
43027
class WinIfExists;
 
43028
class WinImportHandler;
 
43029
class WinMacros;
 
43030
class WinAsm;
 
43031
class WinDeclSpecs;
 
43032
class WinMemberExplSpec;
 
43033
class WinTypeKeywords;
 
43034
class WinFriend;
 
43035
class ExtAC;
 
43036
class ExtACBuilderCoupling;
 
43037
class ExtACSyntaxCoupling;
 
43038
class ExtACTree;
 
43039
class ExtACKeywords;
 
43040
class ExtGnu;
 
43041
class PragmaOnceUnitState;
 
43042
class PragmaOnce;
 
43043
class CMatchSyntax;
 
43044
namespace Puma {
 
43045
 
 
43046
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43047
class CT_Enumerator : public CT_Decl, public CSemObject {
 
43048
#line 43049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43049
  friend class ::CCExprResolve;
 
43050
  friend class ::CExprResolve;
 
43051
  friend class ::WinIfExists;
 
43052
  friend class ::WinImportHandler;
 
43053
  friend class ::WinMacros;
 
43054
  friend class ::WinAsm;
 
43055
  friend class ::WinDeclSpecs;
 
43056
  friend class ::WinMemberExplSpec;
 
43057
  friend class ::WinTypeKeywords;
 
43058
  friend class ::WinFriend;
 
43059
  friend class ::ExtAC;
 
43060
  friend class ::ExtACBuilderCoupling;
 
43061
  friend class ::ExtACSyntaxCoupling;
 
43062
  friend class ::ExtACTree;
 
43063
  friend class ::ExtACKeywords;
 
43064
  friend class ::ExtGnu;
 
43065
  friend class ::PragmaOnceUnitState;
 
43066
  friend class ::PragmaOnce;
 
43067
  friend class ::CMatchSyntax;
 
43068
 
 
43069
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43070
 
 
43071
  CTree *sons[2]; // name, init
 
43072
 
 
43073
public:
 
43074
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
43075
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43076
  static const char *NodeId ();
 
43077
  /** Get the name of the node. Can be compared with NodeId(). */
 
43078
  const char *NodeName () const { return NodeId (); }
 
43079
  /** Get the number of sons. */
 
43080
  int Sons () const { return CTree::Sons (sons, 2); }
 
43081
  /** Get the n-th son.
 
43082
   *  \param n The index of the son.
 
43083
   *  \return The n-th son or NULL. */
 
43084
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
43085
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
43086
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
43087
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
43088
  /** Replace a son.
 
43089
   *  \param old_son The son to replace.
 
43090
   *  \param new_son The new son. */
 
43091
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43092
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
43093
  }
 
43094
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
43095
};
 
43096
 
 
43097
 
 
43098
#line 43099 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43099
} // closed Puma
 
43100
class CCExprResolve;
 
43101
class CExprResolve;
 
43102
class WinIfExists;
 
43103
class WinImportHandler;
 
43104
class WinMacros;
 
43105
class WinAsm;
 
43106
class WinDeclSpecs;
 
43107
class WinMemberExplSpec;
 
43108
class WinTypeKeywords;
 
43109
class WinFriend;
 
43110
class ExtAC;
 
43111
class ExtACBuilderCoupling;
 
43112
class ExtACSyntaxCoupling;
 
43113
class ExtACTree;
 
43114
class ExtACKeywords;
 
43115
class ExtGnu;
 
43116
class PragmaOnceUnitState;
 
43117
class PragmaOnce;
 
43118
class CMatchSyntax;
 
43119
namespace Puma {
 
43120
 
 
43121
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43122
class CT_FctDef : public CT_Decl, public CSemObject {
 
43123
#line 43124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43124
  friend class ::CCExprResolve;
 
43125
  friend class ::CExprResolve;
 
43126
  friend class ::WinIfExists;
 
43127
  friend class ::WinImportHandler;
 
43128
  friend class ::WinMacros;
 
43129
  friend class ::WinAsm;
 
43130
  friend class ::WinDeclSpecs;
 
43131
  friend class ::WinMemberExplSpec;
 
43132
  friend class ::WinTypeKeywords;
 
43133
  friend class ::WinFriend;
 
43134
  friend class ::ExtAC;
 
43135
  friend class ::ExtACBuilderCoupling;
 
43136
  friend class ::ExtACSyntaxCoupling;
 
43137
  friend class ::ExtACTree;
 
43138
  friend class ::ExtACKeywords;
 
43139
  friend class ::ExtGnu;
 
43140
  friend class ::PragmaOnceUnitState;
 
43141
  friend class ::PragmaOnce;
 
43142
  friend class ::CMatchSyntax;
 
43143
 
 
43144
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43145
 
 
43146
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
43147
 
 
43148
public:
 
43149
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
43150
             CTree *b, CTree *hs) {
 
43151
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
43152
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
43153
    AddSon (sons[6], hs); 
 
43154
  }
 
43155
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43156
  static const char *NodeId ();
 
43157
  /** Get the name of the node. Can be compared with NodeId(). */
 
43158
  const char *NodeName () const { return NodeId (); }
 
43159
  /** Get the number of sons. */
 
43160
  int Sons () const { return CTree::Sons (sons, 7); }
 
43161
  /** Get the n-th son.
 
43162
   *  \param n The index of the son.
 
43163
   *  \return The n-th son or NULL. */
 
43164
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
43165
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
43166
  CTree *Declarator () const { return sons[1]; }
 
43167
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
43168
  CTree *CtorInit () const { return sons[3]; }
 
43169
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
43170
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
43171
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
43172
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
43173
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
43174
  void Body (CTree *b) { AddSon (sons[5], b); }
 
43175
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
43176
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
43177
    AddSon (sons[5], b); AddSon (sons[6], h);
 
43178
  }
 
43179
  /** Replace a son.
 
43180
   *  \param old_son The son to replace.
 
43181
   *  \param new_son The new son. */
 
43182
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43183
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
43184
  }
 
43185
};
 
43186
 
 
43187
 
 
43188
#line 43189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43189
} // closed Puma
 
43190
class CCExprResolve;
 
43191
class CExprResolve;
 
43192
class WinIfExists;
 
43193
class WinImportHandler;
 
43194
class WinMacros;
 
43195
class WinAsm;
 
43196
class WinDeclSpecs;
 
43197
class WinMemberExplSpec;
 
43198
class WinTypeKeywords;
 
43199
class WinFriend;
 
43200
class ExtAC;
 
43201
class ExtACBuilderCoupling;
 
43202
class ExtACSyntaxCoupling;
 
43203
class ExtACTree;
 
43204
class ExtACKeywords;
 
43205
class ExtGnu;
 
43206
class PragmaOnceUnitState;
 
43207
class PragmaOnce;
 
43208
class CMatchSyntax;
 
43209
namespace Puma {
 
43210
 
 
43211
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43212
class CT_AsmDef : public CT_Decl {
 
43213
#line 43214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43214
  friend class ::CCExprResolve;
 
43215
  friend class ::CExprResolve;
 
43216
  friend class ::WinIfExists;
 
43217
  friend class ::WinImportHandler;
 
43218
  friend class ::WinMacros;
 
43219
  friend class ::WinAsm;
 
43220
  friend class ::WinDeclSpecs;
 
43221
  friend class ::WinMemberExplSpec;
 
43222
  friend class ::WinTypeKeywords;
 
43223
  friend class ::WinFriend;
 
43224
  friend class ::ExtAC;
 
43225
  friend class ::ExtACBuilderCoupling;
 
43226
  friend class ::ExtACSyntaxCoupling;
 
43227
  friend class ::ExtACTree;
 
43228
  friend class ::ExtACKeywords;
 
43229
  friend class ::ExtGnu;
 
43230
  friend class ::PragmaOnceUnitState;
 
43231
  friend class ::PragmaOnce;
 
43232
  friend class ::CMatchSyntax;
 
43233
 
 
43234
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43235
 
 
43236
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
43237
 
 
43238
public:
 
43239
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
43240
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
43241
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
43242
  }
 
43243
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43244
  static const char *NodeId ();
 
43245
  /** Get the name of the node. Can be compared with NodeId(). */
 
43246
  const char *NodeName () const { return NodeId (); }
 
43247
  /** Get the number of sons. */
 
43248
  int Sons () const { return 5; }
 
43249
  /** Get the n-th son.
 
43250
   *  \param n The index of the son.
 
43251
   *  \return The n-th son or NULL. */
 
43252
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
43253
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
43254
  /** Replace a son.
 
43255
   *  \param old_son The son to replace.
 
43256
   *  \param new_son The new son. */
 
43257
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43258
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
43259
  }
 
43260
};
 
43261
 
 
43262
 
 
43263
#line 43264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43264
} // closed Puma
 
43265
class CCExprResolve;
 
43266
class CExprResolve;
 
43267
class WinIfExists;
 
43268
class WinImportHandler;
 
43269
class WinMacros;
 
43270
class WinAsm;
 
43271
class WinDeclSpecs;
 
43272
class WinMemberExplSpec;
 
43273
class WinTypeKeywords;
 
43274
class WinFriend;
 
43275
class ExtAC;
 
43276
class ExtACBuilderCoupling;
 
43277
class ExtACSyntaxCoupling;
 
43278
class ExtACTree;
 
43279
class ExtACKeywords;
 
43280
class ExtGnu;
 
43281
class PragmaOnceUnitState;
 
43282
class PragmaOnce;
 
43283
class CMatchSyntax;
 
43284
namespace Puma {
 
43285
 
 
43286
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43287
class CT_Handler : public CT_Decl, public CSemScope {
 
43288
#line 43289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43289
  friend class ::CCExprResolve;
 
43290
  friend class ::CExprResolve;
 
43291
  friend class ::WinIfExists;
 
43292
  friend class ::WinImportHandler;
 
43293
  friend class ::WinMacros;
 
43294
  friend class ::WinAsm;
 
43295
  friend class ::WinDeclSpecs;
 
43296
  friend class ::WinMemberExplSpec;
 
43297
  friend class ::WinTypeKeywords;
 
43298
  friend class ::WinFriend;
 
43299
  friend class ::ExtAC;
 
43300
  friend class ::ExtACBuilderCoupling;
 
43301
  friend class ::ExtACSyntaxCoupling;
 
43302
  friend class ::ExtACTree;
 
43303
  friend class ::ExtACKeywords;
 
43304
  friend class ::ExtGnu;
 
43305
  friend class ::PragmaOnceUnitState;
 
43306
  friend class ::PragmaOnce;
 
43307
  friend class ::CMatchSyntax;
 
43308
 
 
43309
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43310
 
 
43311
  CTree *sons[3]; // catch, exception_decl, stmt
 
43312
 
 
43313
public:
 
43314
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
43315
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
43316
  }
 
43317
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43318
  static const char *NodeId ();
 
43319
  /** Get the name of the node. Can be compared with NodeId(). */
 
43320
  const char *NodeName () const { return NodeId (); }
 
43321
  /** Get the number of sons. */
 
43322
  int Sons () const { return 3; }
 
43323
  /** Get the n-th son.
 
43324
   *  \param n The index of the son.
 
43325
   *  \return The n-th son or NULL. */
 
43326
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
43327
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
43328
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
43329
  /** Replace a son.
 
43330
   *  \param old_son The son to replace.
 
43331
   *  \param new_son The new son. */
 
43332
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43333
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
43334
  }
 
43335
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
43336
};
 
43337
 
 
43338
 
 
43339
#line 43340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43340
} // closed Puma
 
43341
class CCExprResolve;
 
43342
class CExprResolve;
 
43343
class WinIfExists;
 
43344
class WinImportHandler;
 
43345
class WinMacros;
 
43346
class WinAsm;
 
43347
class WinDeclSpecs;
 
43348
class WinMemberExplSpec;
 
43349
class WinTypeKeywords;
 
43350
class WinFriend;
 
43351
class ExtAC;
 
43352
class ExtACBuilderCoupling;
 
43353
class ExtACSyntaxCoupling;
 
43354
class ExtACTree;
 
43355
class ExtACKeywords;
 
43356
class ExtGnu;
 
43357
class PragmaOnceUnitState;
 
43358
class PragmaOnce;
 
43359
class CMatchSyntax;
 
43360
namespace Puma {
 
43361
 
 
43362
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43363
class CT_LinkageSpec : public CT_Decl {
 
43364
#line 43365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43365
  friend class ::CCExprResolve;
 
43366
  friend class ::CExprResolve;
 
43367
  friend class ::WinIfExists;
 
43368
  friend class ::WinImportHandler;
 
43369
  friend class ::WinMacros;
 
43370
  friend class ::WinAsm;
 
43371
  friend class ::WinDeclSpecs;
 
43372
  friend class ::WinMemberExplSpec;
 
43373
  friend class ::WinTypeKeywords;
 
43374
  friend class ::WinFriend;
 
43375
  friend class ::ExtAC;
 
43376
  friend class ::ExtACBuilderCoupling;
 
43377
  friend class ::ExtACSyntaxCoupling;
 
43378
  friend class ::ExtACTree;
 
43379
  friend class ::ExtACKeywords;
 
43380
  friend class ::ExtGnu;
 
43381
  friend class ::PragmaOnceUnitState;
 
43382
  friend class ::PragmaOnce;
 
43383
  friend class ::CMatchSyntax;
 
43384
 
 
43385
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43386
 
 
43387
  CTree *sons[5]; // extern, str, open, decls, close
 
43388
 
 
43389
public:
 
43390
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
43391
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
43392
    AddSon (sons[3], d); AddSon (sons[4], c);
 
43393
    if (isList ())
 
43394
      ((CT_DeclList*)Decls ())->Linkage (this);
 
43395
    else
 
43396
      ((CT_Decl*)Decls ())->Linkage (this);
 
43397
  }
 
43398
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43399
  static const char *NodeId ();
 
43400
  /** Get the name of the node. Can be compared with NodeId(). */
 
43401
  const char *NodeName () const { return NodeId (); }
 
43402
  /** Get the number of sons. */
 
43403
  int Sons () const { return CTree::Sons (sons, 5); }
 
43404
  /** Get the n-th son.
 
43405
   *  \param n The index of the son.
 
43406
   *  \return The n-th son or NULL. */
 
43407
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
43408
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
43409
  CTree *Decls () const { return sons[3]; }
 
43410
  bool isList () const {
 
43411
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
43412
  }
 
43413
  /** Replace a son.
 
43414
   *  \param old_son The son to replace.
 
43415
   *  \param new_son The new son. */
 
43416
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43417
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
43418
  }
 
43419
};
 
43420
 
 
43421
 
 
43422
#line 43423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43423
} // closed Puma
 
43424
class CCExprResolve;
 
43425
class CExprResolve;
 
43426
class WinIfExists;
 
43427
class WinImportHandler;
 
43428
class WinMacros;
 
43429
class WinAsm;
 
43430
class WinDeclSpecs;
 
43431
class WinMemberExplSpec;
 
43432
class WinTypeKeywords;
 
43433
class WinFriend;
 
43434
class ExtAC;
 
43435
class ExtACBuilderCoupling;
 
43436
class ExtACSyntaxCoupling;
 
43437
class ExtACTree;
 
43438
class ExtACKeywords;
 
43439
class ExtGnu;
 
43440
class PragmaOnceUnitState;
 
43441
class PragmaOnce;
 
43442
class CMatchSyntax;
 
43443
namespace Puma {
 
43444
 
 
43445
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43446
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
43447
#line 43448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43448
  friend class ::CCExprResolve;
 
43449
  friend class ::CExprResolve;
 
43450
  friend class ::WinIfExists;
 
43451
  friend class ::WinImportHandler;
 
43452
  friend class ::WinMacros;
 
43453
  friend class ::WinAsm;
 
43454
  friend class ::WinDeclSpecs;
 
43455
  friend class ::WinMemberExplSpec;
 
43456
  friend class ::WinTypeKeywords;
 
43457
  friend class ::WinFriend;
 
43458
  friend class ::ExtAC;
 
43459
  friend class ::ExtACBuilderCoupling;
 
43460
  friend class ::ExtACSyntaxCoupling;
 
43461
  friend class ::ExtACTree;
 
43462
  friend class ::ExtACKeywords;
 
43463
  friend class ::ExtGnu;
 
43464
  friend class ::PragmaOnceUnitState;
 
43465
  friend class ::PragmaOnce;
 
43466
  friend class ::CMatchSyntax;
 
43467
 
 
43468
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43469
 
 
43470
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
43471
 
 
43472
public:
 
43473
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
43474
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
43475
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
43476
  }
 
43477
  CT_ArgDecl (CTree *ellipsis) {
 
43478
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
43479
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
43480
  }
 
43481
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43482
  static const char *NodeId ();
 
43483
  /** Get the name of the node. Can be compared with NodeId(). */
 
43484
  const char *NodeName () const { return NodeId (); }
 
43485
  /** Get the number of sons. */
 
43486
  int Sons () const { return CTree::Sons (sons, 4); }
 
43487
  /** Get the n-th son.
 
43488
   *  \param n The index of the son.
 
43489
   *  \return The n-th son or NULL. */
 
43490
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
43491
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
43492
  CTree *Declarator () const { return sons[1]; }
 
43493
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
43494
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
43495
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
43496
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
43497
  /** Replace a son.
 
43498
   *  \param old_son The son to replace.
 
43499
   *  \param new_son The new son. */
 
43500
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43501
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
43502
  }
 
43503
};
 
43504
 
 
43505
 
 
43506
#line 43507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43507
} // closed Puma
 
43508
class CCExprResolve;
 
43509
class CExprResolve;
 
43510
class WinIfExists;
 
43511
class WinImportHandler;
 
43512
class WinMacros;
 
43513
class WinAsm;
 
43514
class WinDeclSpecs;
 
43515
class WinMemberExplSpec;
 
43516
class WinTypeKeywords;
 
43517
class WinFriend;
 
43518
class ExtAC;
 
43519
class ExtACBuilderCoupling;
 
43520
class ExtACSyntaxCoupling;
 
43521
class ExtACTree;
 
43522
class ExtACKeywords;
 
43523
class ExtGnu;
 
43524
class PragmaOnceUnitState;
 
43525
class PragmaOnce;
 
43526
class CMatchSyntax;
 
43527
namespace Puma {
 
43528
 
 
43529
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43530
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
43531
#line 43532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43532
  friend class ::CCExprResolve;
 
43533
  friend class ::CExprResolve;
 
43534
  friend class ::WinIfExists;
 
43535
  friend class ::WinImportHandler;
 
43536
  friend class ::WinMacros;
 
43537
  friend class ::WinAsm;
 
43538
  friend class ::WinDeclSpecs;
 
43539
  friend class ::WinMemberExplSpec;
 
43540
  friend class ::WinTypeKeywords;
 
43541
  friend class ::WinFriend;
 
43542
  friend class ::ExtAC;
 
43543
  friend class ::ExtACBuilderCoupling;
 
43544
  friend class ::ExtACSyntaxCoupling;
 
43545
  friend class ::ExtACTree;
 
43546
  friend class ::ExtACKeywords;
 
43547
  friend class ::ExtGnu;
 
43548
  friend class ::PragmaOnceUnitState;
 
43549
  friend class ::PragmaOnce;
 
43550
  friend class ::CMatchSyntax;
 
43551
 
 
43552
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43553
 
 
43554
public:
 
43555
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
43556
   CT_DeclList (size, 2) { AddProperties (props); }
 
43557
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43558
  static const char *NodeId ();
 
43559
  /** Get the name of the node. Can be compared with NodeId(). */
 
43560
  const char *NodeName () const { return NodeId (); }
 
43561
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
43562
};
 
43563
 
 
43564
 
 
43565
#line 43566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43566
} // closed Puma
 
43567
class CCExprResolve;
 
43568
class CExprResolve;
 
43569
class WinIfExists;
 
43570
class WinImportHandler;
 
43571
class WinMacros;
 
43572
class WinAsm;
 
43573
class WinDeclSpecs;
 
43574
class WinMemberExplSpec;
 
43575
class WinTypeKeywords;
 
43576
class WinFriend;
 
43577
class ExtAC;
 
43578
class ExtACBuilderCoupling;
 
43579
class ExtACSyntaxCoupling;
 
43580
class ExtACTree;
 
43581
class ExtACKeywords;
 
43582
class ExtGnu;
 
43583
class PragmaOnceUnitState;
 
43584
class PragmaOnce;
 
43585
class CMatchSyntax;
 
43586
namespace Puma {
 
43587
 
 
43588
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43589
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
43590
#line 43591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43591
  friend class ::CCExprResolve;
 
43592
  friend class ::CExprResolve;
 
43593
  friend class ::WinIfExists;
 
43594
  friend class ::WinImportHandler;
 
43595
  friend class ::WinMacros;
 
43596
  friend class ::WinAsm;
 
43597
  friend class ::WinDeclSpecs;
 
43598
  friend class ::WinMemberExplSpec;
 
43599
  friend class ::WinTypeKeywords;
 
43600
  friend class ::WinFriend;
 
43601
  friend class ::ExtAC;
 
43602
  friend class ::ExtACBuilderCoupling;
 
43603
  friend class ::ExtACSyntaxCoupling;
 
43604
  friend class ::ExtACTree;
 
43605
  friend class ::ExtACKeywords;
 
43606
  friend class ::ExtGnu;
 
43607
  friend class ::PragmaOnceUnitState;
 
43608
  friend class ::PragmaOnce;
 
43609
  friend class ::CMatchSyntax;
 
43610
 
 
43611
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43612
 
 
43613
public:
 
43614
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
43615
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43616
  static const char *NodeId ();
 
43617
  /** Get the name of the node. Can be compared with NodeId(). */
 
43618
  const char *NodeName () const { return NodeId (); }
 
43619
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
43620
};
 
43621
 
 
43622
 
 
43623
#line 43624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43624
} // closed Puma
 
43625
class CCExprResolve;
 
43626
class CExprResolve;
 
43627
class WinIfExists;
 
43628
class WinImportHandler;
 
43629
class WinMacros;
 
43630
class WinAsm;
 
43631
class WinDeclSpecs;
 
43632
class WinMemberExplSpec;
 
43633
class WinTypeKeywords;
 
43634
class WinFriend;
 
43635
class ExtAC;
 
43636
class ExtACBuilderCoupling;
 
43637
class ExtACSyntaxCoupling;
 
43638
class ExtACTree;
 
43639
class ExtACKeywords;
 
43640
class ExtGnu;
 
43641
class PragmaOnceUnitState;
 
43642
class PragmaOnce;
 
43643
class CMatchSyntax;
 
43644
namespace Puma {
 
43645
 
 
43646
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43647
class CT_ArgNameList : public CT_ArgDeclList {
 
43648
#line 43649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43649
  friend class ::CCExprResolve;
 
43650
  friend class ::CExprResolve;
 
43651
  friend class ::WinIfExists;
 
43652
  friend class ::WinImportHandler;
 
43653
  friend class ::WinMacros;
 
43654
  friend class ::WinAsm;
 
43655
  friend class ::WinDeclSpecs;
 
43656
  friend class ::WinMemberExplSpec;
 
43657
  friend class ::WinTypeKeywords;
 
43658
  friend class ::WinFriend;
 
43659
  friend class ::ExtAC;
 
43660
  friend class ::ExtACBuilderCoupling;
 
43661
  friend class ::ExtACSyntaxCoupling;
 
43662
  friend class ::ExtACTree;
 
43663
  friend class ::ExtACKeywords;
 
43664
  friend class ::ExtGnu;
 
43665
  friend class ::PragmaOnceUnitState;
 
43666
  friend class ::PragmaOnce;
 
43667
  friend class ::CMatchSyntax;
 
43668
 
 
43669
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43670
 
 
43671
public:
 
43672
  CT_ArgNameList () : CT_ArgDeclList () {}
 
43673
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43674
  static const char *NodeId ();
 
43675
  /** Get the name of the node. Can be compared with NodeId(). */
 
43676
  const char *NodeName () const { return NodeId (); }
 
43677
};
 
43678
 
 
43679
 
 
43680
#line 43681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43681
} // closed Puma
 
43682
class CCExprResolve;
 
43683
class CExprResolve;
 
43684
class WinIfExists;
 
43685
class WinImportHandler;
 
43686
class WinMacros;
 
43687
class WinAsm;
 
43688
class WinDeclSpecs;
 
43689
class WinMemberExplSpec;
 
43690
class WinTypeKeywords;
 
43691
class WinFriend;
 
43692
class ExtAC;
 
43693
class ExtACBuilderCoupling;
 
43694
class ExtACSyntaxCoupling;
 
43695
class ExtACTree;
 
43696
class ExtACKeywords;
 
43697
class ExtGnu;
 
43698
class PragmaOnceUnitState;
 
43699
class PragmaOnce;
 
43700
class CMatchSyntax;
 
43701
namespace Puma {
 
43702
 
 
43703
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43704
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
43705
#line 43706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43706
  friend class ::CCExprResolve;
 
43707
  friend class ::CExprResolve;
 
43708
  friend class ::WinIfExists;
 
43709
  friend class ::WinImportHandler;
 
43710
  friend class ::WinMacros;
 
43711
  friend class ::WinAsm;
 
43712
  friend class ::WinDeclSpecs;
 
43713
  friend class ::WinMemberExplSpec;
 
43714
  friend class ::WinTypeKeywords;
 
43715
  friend class ::WinFriend;
 
43716
  friend class ::ExtAC;
 
43717
  friend class ::ExtACBuilderCoupling;
 
43718
  friend class ::ExtACSyntaxCoupling;
 
43719
  friend class ::ExtACTree;
 
43720
  friend class ::ExtACKeywords;
 
43721
  friend class ::ExtGnu;
 
43722
  friend class ::PragmaOnceUnitState;
 
43723
  friend class ::PragmaOnce;
 
43724
  friend class ::CMatchSyntax;
 
43725
 
 
43726
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43727
 
 
43728
  CTree *sons[3]; // ns, name, members
 
43729
 
 
43730
public:
 
43731
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
43732
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
43733
  }
 
43734
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
43735
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
43736
  }
 
43737
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43738
  static const char *NodeId ();
 
43739
  /** Get the name of the node. Can be compared with NodeId(). */
 
43740
  const char *NodeName () const { return NodeId (); }
 
43741
  /** Get the number of sons. */
 
43742
  int Sons () const { return CTree::Sons (sons, 3); }
 
43743
  /** Get the n-th son.
 
43744
   *  \param n The index of the son.
 
43745
   *  \return The n-th son or NULL. */
 
43746
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
43747
  void Members (CTree *m) { AddSon (sons[2], m); }
 
43748
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
43749
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
43750
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
43751
  /** Replace a son.
 
43752
   *  \param old_son The son to replace.
 
43753
   *  \param new_son The new son. */
 
43754
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43755
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
43756
  }
 
43757
};
 
43758
 
 
43759
 
 
43760
#line 43761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43761
} // closed Puma
 
43762
class CCExprResolve;
 
43763
class CExprResolve;
 
43764
class WinIfExists;
 
43765
class WinImportHandler;
 
43766
class WinMacros;
 
43767
class WinAsm;
 
43768
class WinDeclSpecs;
 
43769
class WinMemberExplSpec;
 
43770
class WinTypeKeywords;
 
43771
class WinFriend;
 
43772
class ExtAC;
 
43773
class ExtACBuilderCoupling;
 
43774
class ExtACSyntaxCoupling;
 
43775
class ExtACTree;
 
43776
class ExtACKeywords;
 
43777
class ExtGnu;
 
43778
class PragmaOnceUnitState;
 
43779
class PragmaOnce;
 
43780
class CMatchSyntax;
 
43781
namespace Puma {
 
43782
 
 
43783
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43784
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
43785
#line 43786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43786
  friend class ::CCExprResolve;
 
43787
  friend class ::CExprResolve;
 
43788
  friend class ::WinIfExists;
 
43789
  friend class ::WinImportHandler;
 
43790
  friend class ::WinMacros;
 
43791
  friend class ::WinAsm;
 
43792
  friend class ::WinDeclSpecs;
 
43793
  friend class ::WinMemberExplSpec;
 
43794
  friend class ::WinTypeKeywords;
 
43795
  friend class ::WinFriend;
 
43796
  friend class ::ExtAC;
 
43797
  friend class ::ExtACBuilderCoupling;
 
43798
  friend class ::ExtACSyntaxCoupling;
 
43799
  friend class ::ExtACTree;
 
43800
  friend class ::ExtACKeywords;
 
43801
  friend class ::ExtGnu;
 
43802
  friend class ::PragmaOnceUnitState;
 
43803
  friend class ::PragmaOnce;
 
43804
  friend class ::CMatchSyntax;
 
43805
 
 
43806
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43807
 
 
43808
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
43809
 
 
43810
public:
 
43811
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
43812
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
43813
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
43814
  }
 
43815
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43816
  static const char *NodeId ();
 
43817
  /** Get the name of the node. Can be compared with NodeId(). */
 
43818
  const char *NodeName () const { return NodeId (); }
 
43819
  /** Get the number of sons. */
 
43820
  int Sons () const { return 5; }
 
43821
  /** Get the n-th son.
 
43822
   *  \param n The index of the son.
 
43823
   *  \return The n-th son or NULL. */
 
43824
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
43825
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
43826
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
43827
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
43828
  /** Replace a son.
 
43829
   *  \param old_son The son to replace.
 
43830
   *  \param new_son The new son. */
 
43831
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43832
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
43833
  }
 
43834
};
 
43835
 
 
43836
 
 
43837
#line 43838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43838
} // closed Puma
 
43839
class CCExprResolve;
 
43840
class CExprResolve;
 
43841
class WinIfExists;
 
43842
class WinImportHandler;
 
43843
class WinMacros;
 
43844
class WinAsm;
 
43845
class WinDeclSpecs;
 
43846
class WinMemberExplSpec;
 
43847
class WinTypeKeywords;
 
43848
class WinFriend;
 
43849
class ExtAC;
 
43850
class ExtACBuilderCoupling;
 
43851
class ExtACSyntaxCoupling;
 
43852
class ExtACTree;
 
43853
class ExtACKeywords;
 
43854
class ExtGnu;
 
43855
class PragmaOnceUnitState;
 
43856
class PragmaOnce;
 
43857
class CMatchSyntax;
 
43858
namespace Puma {
 
43859
 
 
43860
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43861
class CT_UsingDirective : public CT_Decl {
 
43862
#line 43863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43863
  friend class ::CCExprResolve;
 
43864
  friend class ::CExprResolve;
 
43865
  friend class ::WinIfExists;
 
43866
  friend class ::WinImportHandler;
 
43867
  friend class ::WinMacros;
 
43868
  friend class ::WinAsm;
 
43869
  friend class ::WinDeclSpecs;
 
43870
  friend class ::WinMemberExplSpec;
 
43871
  friend class ::WinTypeKeywords;
 
43872
  friend class ::WinFriend;
 
43873
  friend class ::ExtAC;
 
43874
  friend class ::ExtACBuilderCoupling;
 
43875
  friend class ::ExtACSyntaxCoupling;
 
43876
  friend class ::ExtACTree;
 
43877
  friend class ::ExtACKeywords;
 
43878
  friend class ::ExtGnu;
 
43879
  friend class ::PragmaOnceUnitState;
 
43880
  friend class ::PragmaOnce;
 
43881
  friend class ::CMatchSyntax;
 
43882
 
 
43883
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43884
 
 
43885
  CTree *sons[4]; // using, ns, name, semi_colon
 
43886
 
 
43887
public:
 
43888
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
43889
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
43890
    AddSon (sons[3], s); 
 
43891
  }
 
43892
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43893
  static const char *NodeId ();
 
43894
  /** Get the name of the node. Can be compared with NodeId(). */
 
43895
  const char *NodeName () const { return NodeId (); }
 
43896
  /** Get the number of sons. */
 
43897
  int Sons () const { return 4; }
 
43898
  /** Get the n-th son.
 
43899
   *  \param n The index of the son.
 
43900
   *  \return The n-th son or NULL. */
 
43901
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
43902
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
43903
  /** Replace a son.
 
43904
   *  \param old_son The son to replace.
 
43905
   *  \param new_son The new son. */
 
43906
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43907
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
43908
  }
 
43909
};
 
43910
 
 
43911
/*****************************************************************************/
 
43912
/*                                                                           */
 
43913
/*                              Declarators                                  */
 
43914
/*                                                                           */
 
43915
/*****************************************************************************/
 
43916
 
 
43917
 
 
43918
#line 43919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43919
} // closed Puma
 
43920
class CCExprResolve;
 
43921
class CExprResolve;
 
43922
class WinIfExists;
 
43923
class WinImportHandler;
 
43924
class WinMacros;
 
43925
class WinAsm;
 
43926
class WinDeclSpecs;
 
43927
class WinMemberExplSpec;
 
43928
class WinTypeKeywords;
 
43929
class WinFriend;
 
43930
class ExtAC;
 
43931
class ExtACBuilderCoupling;
 
43932
class ExtACSyntaxCoupling;
 
43933
class ExtACTree;
 
43934
class ExtACKeywords;
 
43935
class ExtGnu;
 
43936
class PragmaOnceUnitState;
 
43937
class PragmaOnce;
 
43938
class CMatchSyntax;
 
43939
namespace Puma {
 
43940
 
 
43941
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43942
class CT_Declarator : public CTree {
 
43943
#line 43944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43944
  friend class ::CCExprResolve;
 
43945
  friend class ::CExprResolve;
 
43946
  friend class ::WinIfExists;
 
43947
  friend class ::WinImportHandler;
 
43948
  friend class ::WinMacros;
 
43949
  friend class ::WinAsm;
 
43950
  friend class ::WinDeclSpecs;
 
43951
  friend class ::WinMemberExplSpec;
 
43952
  friend class ::WinTypeKeywords;
 
43953
  friend class ::WinFriend;
 
43954
  friend class ::ExtAC;
 
43955
  friend class ::ExtACBuilderCoupling;
 
43956
  friend class ::ExtACSyntaxCoupling;
 
43957
  friend class ::ExtACTree;
 
43958
  friend class ::ExtACKeywords;
 
43959
  friend class ::ExtGnu;
 
43960
  friend class ::PragmaOnceUnitState;
 
43961
  friend class ::PragmaOnce;
 
43962
  friend class ::CMatchSyntax;
 
43963
 
 
43964
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43965
 
 
43966
protected:
 
43967
  CT_Declarator () {}
 
43968
 
 
43969
public:
 
43970
  virtual CTree *Declarator () const = 0;
 
43971
  //classification function
 
43972
  virtual CT_Declarator *IsDeclarator () { return this; }
 
43973
  // locate the name node
 
43974
  CT_SimpleName *Name ();
 
43975
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
43976
};
 
43977
 
 
43978
 
 
43979
#line 43980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
43980
} // closed Puma
 
43981
class CCExprResolve;
 
43982
class CExprResolve;
 
43983
class WinIfExists;
 
43984
class WinImportHandler;
 
43985
class WinMacros;
 
43986
class WinAsm;
 
43987
class WinDeclSpecs;
 
43988
class WinMemberExplSpec;
 
43989
class WinTypeKeywords;
 
43990
class WinFriend;
 
43991
class ExtAC;
 
43992
class ExtACBuilderCoupling;
 
43993
class ExtACSyntaxCoupling;
 
43994
class ExtACTree;
 
43995
class ExtACKeywords;
 
43996
class ExtGnu;
 
43997
class PragmaOnceUnitState;
 
43998
class PragmaOnce;
 
43999
class CMatchSyntax;
 
44000
namespace Puma {
 
44001
 
 
44002
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44003
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
44004
#line 44005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44005
  friend class ::CCExprResolve;
 
44006
  friend class ::CExprResolve;
 
44007
  friend class ::WinIfExists;
 
44008
  friend class ::WinImportHandler;
 
44009
  friend class ::WinMacros;
 
44010
  friend class ::WinAsm;
 
44011
  friend class ::WinDeclSpecs;
 
44012
  friend class ::WinMemberExplSpec;
 
44013
  friend class ::WinTypeKeywords;
 
44014
  friend class ::WinFriend;
 
44015
  friend class ::ExtAC;
 
44016
  friend class ::ExtACBuilderCoupling;
 
44017
  friend class ::ExtACSyntaxCoupling;
 
44018
  friend class ::ExtACTree;
 
44019
  friend class ::ExtACKeywords;
 
44020
  friend class ::ExtGnu;
 
44021
  friend class ::PragmaOnceUnitState;
 
44022
  friend class ::PragmaOnce;
 
44023
  friend class ::CMatchSyntax;
 
44024
 
 
44025
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44026
 
 
44027
  CTree *sons[3]; // declarator, ext, init
 
44028
  CTree *obj_decl;
 
44029
 
 
44030
public:
 
44031
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
44032
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
44033
    AddSon (obj_decl, 0); 
 
44034
  }
 
44035
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44036
  static const char *NodeId ();
 
44037
  /** Get the name of the node. Can be compared with NodeId(). */
 
44038
  const char *NodeName () const { return NodeId (); }
 
44039
  /** Get the number of sons. */
 
44040
  int Sons () const { return CTree::Sons (sons, 3); }
 
44041
  /** Get the n-th son.
 
44042
   *  \param n The index of the son.
 
44043
   *  \return The n-th son or NULL. */
 
44044
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
44045
  CTree *Declarator () const { return sons[0]; }
 
44046
  CTree *Extension () const { return sons[1]; }
 
44047
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
44048
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
44049
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
44050
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
44051
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
44052
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
44053
  /** Replace a son.
 
44054
   *  \param old_son The son to replace.
 
44055
   *  \param new_son The new son. */
 
44056
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44057
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
44058
  }
 
44059
};
 
44060
 
 
44061
 
 
44062
#line 44063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44063
} // closed Puma
 
44064
class CCExprResolve;
 
44065
class CExprResolve;
 
44066
class WinIfExists;
 
44067
class WinImportHandler;
 
44068
class WinMacros;
 
44069
class WinAsm;
 
44070
class WinDeclSpecs;
 
44071
class WinMemberExplSpec;
 
44072
class WinTypeKeywords;
 
44073
class WinFriend;
 
44074
class ExtAC;
 
44075
class ExtACBuilderCoupling;
 
44076
class ExtACSyntaxCoupling;
 
44077
class ExtACTree;
 
44078
class ExtACKeywords;
 
44079
class ExtGnu;
 
44080
class PragmaOnceUnitState;
 
44081
class PragmaOnce;
 
44082
class CMatchSyntax;
 
44083
namespace Puma {
 
44084
 
 
44085
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44086
class CT_BracedDeclarator : public CT_Declarator {
 
44087
#line 44088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44088
  friend class ::CCExprResolve;
 
44089
  friend class ::CExprResolve;
 
44090
  friend class ::WinIfExists;
 
44091
  friend class ::WinImportHandler;
 
44092
  friend class ::WinMacros;
 
44093
  friend class ::WinAsm;
 
44094
  friend class ::WinDeclSpecs;
 
44095
  friend class ::WinMemberExplSpec;
 
44096
  friend class ::WinTypeKeywords;
 
44097
  friend class ::WinFriend;
 
44098
  friend class ::ExtAC;
 
44099
  friend class ::ExtACBuilderCoupling;
 
44100
  friend class ::ExtACSyntaxCoupling;
 
44101
  friend class ::ExtACTree;
 
44102
  friend class ::ExtACKeywords;
 
44103
  friend class ::ExtGnu;
 
44104
  friend class ::PragmaOnceUnitState;
 
44105
  friend class ::PragmaOnce;
 
44106
  friend class ::CMatchSyntax;
 
44107
 
 
44108
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44109
 
 
44110
  CTree *sons[4]; // open, win_specs, declarator, close
 
44111
 
 
44112
public:
 
44113
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
44114
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
44115
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
44116
  }
 
44117
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
44118
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
44119
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
44120
  }
 
44121
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44122
  static const char *NodeId ();
 
44123
  /** Get the name of the node. Can be compared with NodeId(). */
 
44124
  const char *NodeName () const { return NodeId (); }
 
44125
  /** Get the number of sons. */
 
44126
  int Sons () const { return CTree::Sons (sons, 4); }
 
44127
  /** Get the n-th son.
 
44128
   *  \param n The index of the son.
 
44129
   *  \return The n-th son or NULL. */
 
44130
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
44131
  CTree *Declarator () const { return sons[2]; }
 
44132
  /** Replace a son.
 
44133
   *  \param old_son The son to replace.
 
44134
   *  \param new_son The new son. */
 
44135
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44136
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
44137
  }
 
44138
};
 
44139
 
 
44140
 
 
44141
#line 44142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44142
} // closed Puma
 
44143
class CCExprResolve;
 
44144
class CExprResolve;
 
44145
class WinIfExists;
 
44146
class WinImportHandler;
 
44147
class WinMacros;
 
44148
class WinAsm;
 
44149
class WinDeclSpecs;
 
44150
class WinMemberExplSpec;
 
44151
class WinTypeKeywords;
 
44152
class WinFriend;
 
44153
class ExtAC;
 
44154
class ExtACBuilderCoupling;
 
44155
class ExtACSyntaxCoupling;
 
44156
class ExtACTree;
 
44157
class ExtACKeywords;
 
44158
class ExtGnu;
 
44159
class PragmaOnceUnitState;
 
44160
class PragmaOnce;
 
44161
class CMatchSyntax;
 
44162
namespace Puma {
 
44163
 
 
44164
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44165
class CT_ArrayDelimiter : public CTree {
 
44166
#line 44167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44167
  friend class ::CCExprResolve;
 
44168
  friend class ::CExprResolve;
 
44169
  friend class ::WinIfExists;
 
44170
  friend class ::WinImportHandler;
 
44171
  friend class ::WinMacros;
 
44172
  friend class ::WinAsm;
 
44173
  friend class ::WinDeclSpecs;
 
44174
  friend class ::WinMemberExplSpec;
 
44175
  friend class ::WinTypeKeywords;
 
44176
  friend class ::WinFriend;
 
44177
  friend class ::ExtAC;
 
44178
  friend class ::ExtACBuilderCoupling;
 
44179
  friend class ::ExtACSyntaxCoupling;
 
44180
  friend class ::ExtACTree;
 
44181
  friend class ::ExtACKeywords;
 
44182
  friend class ::ExtGnu;
 
44183
  friend class ::PragmaOnceUnitState;
 
44184
  friend class ::PragmaOnce;
 
44185
  friend class ::CMatchSyntax;
 
44186
 
 
44187
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44188
 
 
44189
  CTree *sons[4]; // star, static, quals, expr
 
44190
  bool pos0;
 
44191
 
 
44192
public:
 
44193
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
44194
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
44195
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
44196
  }
 
44197
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44198
  static const char *NodeId ();
 
44199
  /** Get the name of the node. Can be compared with NodeId(). */
 
44200
  const char *NodeName () const { return NodeId (); }
 
44201
  /** Get the number of sons. */
 
44202
  int Sons () const { return CTree::Sons (sons, 4); }
 
44203
  /** Get the n-th son.
 
44204
   *  \param n The index of the son.
 
44205
   *  \return The n-th son or NULL. */
 
44206
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
44207
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
44208
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
44209
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
44210
  CTree *Expr () const { return sons[3]; }
 
44211
  /** Replace a son.
 
44212
   *  \param old_son The son to replace.
 
44213
   *  \param new_son The new son. */
 
44214
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44215
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
44216
  }
 
44217
};
 
44218
 
 
44219
 
 
44220
#line 44221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44221
} // closed Puma
 
44222
class CCExprResolve;
 
44223
class CExprResolve;
 
44224
class WinIfExists;
 
44225
class WinImportHandler;
 
44226
class WinMacros;
 
44227
class WinAsm;
 
44228
class WinDeclSpecs;
 
44229
class WinMemberExplSpec;
 
44230
class WinTypeKeywords;
 
44231
class WinFriend;
 
44232
class ExtAC;
 
44233
class ExtACBuilderCoupling;
 
44234
class ExtACSyntaxCoupling;
 
44235
class ExtACTree;
 
44236
class ExtACKeywords;
 
44237
class ExtGnu;
 
44238
class PragmaOnceUnitState;
 
44239
class PragmaOnce;
 
44240
class CMatchSyntax;
 
44241
namespace Puma {
 
44242
 
 
44243
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44244
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
44245
#line 44246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44246
  friend class ::CCExprResolve;
 
44247
  friend class ::CExprResolve;
 
44248
  friend class ::WinIfExists;
 
44249
  friend class ::WinImportHandler;
 
44250
  friend class ::WinMacros;
 
44251
  friend class ::WinAsm;
 
44252
  friend class ::WinDeclSpecs;
 
44253
  friend class ::WinMemberExplSpec;
 
44254
  friend class ::WinTypeKeywords;
 
44255
  friend class ::WinFriend;
 
44256
  friend class ::ExtAC;
 
44257
  friend class ::ExtACBuilderCoupling;
 
44258
  friend class ::ExtACSyntaxCoupling;
 
44259
  friend class ::ExtACTree;
 
44260
  friend class ::ExtACKeywords;
 
44261
  friend class ::ExtGnu;
 
44262
  friend class ::PragmaOnceUnitState;
 
44263
  friend class ::PragmaOnce;
 
44264
  friend class ::CMatchSyntax;
 
44265
 
 
44266
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44267
 
 
44268
  CTree *sons[4]; // declarator, open, delim, close
 
44269
 
 
44270
public:
 
44271
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
44272
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
44273
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
44274
  }
 
44275
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44276
  static const char *NodeId ();
 
44277
  /** Get the name of the node. Can be compared with NodeId(). */
 
44278
  const char *NodeName () const { return NodeId (); }
 
44279
  /** Get the number of sons. */
 
44280
  int Sons () const { return 4; }
 
44281
  /** Get the n-th son.
 
44282
   *  \param n The index of the son.
 
44283
   *  \return The n-th son or NULL. */
 
44284
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
44285
  CTree *Declarator () const { return sons[0]; }
 
44286
  CT_ArrayDelimiter *Delimiter () const 
 
44287
   { return (CT_ArrayDelimiter*)sons[2]; }
 
44288
  /** Replace a son.
 
44289
   *  \param old_son The son to replace.
 
44290
   *  \param new_son The new son. */
 
44291
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44292
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
44293
  }
 
44294
  CTypeInfo *Type () const { return type; }
 
44295
  CExprValue *Value () const { return value; }
 
44296
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
44297
};
 
44298
 
 
44299
 
 
44300
#line 44301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44301
} // closed Puma
 
44302
class CCExprResolve;
 
44303
class CExprResolve;
 
44304
class WinIfExists;
 
44305
class WinImportHandler;
 
44306
class WinMacros;
 
44307
class WinAsm;
 
44308
class WinDeclSpecs;
 
44309
class WinMemberExplSpec;
 
44310
class WinTypeKeywords;
 
44311
class WinFriend;
 
44312
class ExtAC;
 
44313
class ExtACBuilderCoupling;
 
44314
class ExtACSyntaxCoupling;
 
44315
class ExtACTree;
 
44316
class ExtACKeywords;
 
44317
class ExtGnu;
 
44318
class PragmaOnceUnitState;
 
44319
class PragmaOnce;
 
44320
class CMatchSyntax;
 
44321
namespace Puma {
 
44322
 
 
44323
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44324
class CT_FctDeclarator : public CT_Declarator {
 
44325
#line 44326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44326
  friend class ::CCExprResolve;
 
44327
  friend class ::CExprResolve;
 
44328
  friend class ::WinIfExists;
 
44329
  friend class ::WinImportHandler;
 
44330
  friend class ::WinMacros;
 
44331
  friend class ::WinAsm;
 
44332
  friend class ::WinDeclSpecs;
 
44333
  friend class ::WinMemberExplSpec;
 
44334
  friend class ::WinTypeKeywords;
 
44335
  friend class ::WinFriend;
 
44336
  friend class ::ExtAC;
 
44337
  friend class ::ExtACBuilderCoupling;
 
44338
  friend class ::ExtACSyntaxCoupling;
 
44339
  friend class ::ExtACTree;
 
44340
  friend class ::ExtACKeywords;
 
44341
  friend class ::ExtGnu;
 
44342
  friend class ::PragmaOnceUnitState;
 
44343
  friend class ::PragmaOnce;
 
44344
  friend class ::CMatchSyntax;
 
44345
 
 
44346
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44347
 
 
44348
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
44349
 
 
44350
public:
 
44351
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
44352
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
44353
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
44354
  }
 
44355
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44356
  static const char *NodeId ();
 
44357
  /** Get the name of the node. Can be compared with NodeId(). */
 
44358
  const char *NodeName () const { return NodeId (); }
 
44359
  /** Get the number of sons. */
 
44360
  int Sons () const { return CTree::Sons (sons, 4); }
 
44361
  /** Get the n-th son.
 
44362
   *  \param n The index of the son.
 
44363
   *  \return The n-th son or NULL. */
 
44364
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
44365
  CTree *Declarator () const { return sons[0]; }
 
44366
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
44367
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
44368
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
44369
  /** Replace a son.
 
44370
   *  \param old_son The son to replace.
 
44371
   *  \param new_son The new son. */
 
44372
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44373
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
44374
  }
 
44375
};
 
44376
 
 
44377
 
 
44378
#line 44379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44379
} // closed Puma
 
44380
class CCExprResolve;
 
44381
class CExprResolve;
 
44382
class WinIfExists;
 
44383
class WinImportHandler;
 
44384
class WinMacros;
 
44385
class WinAsm;
 
44386
class WinDeclSpecs;
 
44387
class WinMemberExplSpec;
 
44388
class WinTypeKeywords;
 
44389
class WinFriend;
 
44390
class ExtAC;
 
44391
class ExtACBuilderCoupling;
 
44392
class ExtACSyntaxCoupling;
 
44393
class ExtACTree;
 
44394
class ExtACKeywords;
 
44395
class ExtGnu;
 
44396
class PragmaOnceUnitState;
 
44397
class PragmaOnce;
 
44398
class CMatchSyntax;
 
44399
namespace Puma {
 
44400
 
 
44401
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44402
class CT_RefDeclarator : public CT_Declarator {
 
44403
#line 44404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44404
  friend class ::CCExprResolve;
 
44405
  friend class ::CExprResolve;
 
44406
  friend class ::WinIfExists;
 
44407
  friend class ::WinImportHandler;
 
44408
  friend class ::WinMacros;
 
44409
  friend class ::WinAsm;
 
44410
  friend class ::WinDeclSpecs;
 
44411
  friend class ::WinMemberExplSpec;
 
44412
  friend class ::WinTypeKeywords;
 
44413
  friend class ::WinFriend;
 
44414
  friend class ::ExtAC;
 
44415
  friend class ::ExtACBuilderCoupling;
 
44416
  friend class ::ExtACSyntaxCoupling;
 
44417
  friend class ::ExtACTree;
 
44418
  friend class ::ExtACKeywords;
 
44419
  friend class ::ExtGnu;
 
44420
  friend class ::PragmaOnceUnitState;
 
44421
  friend class ::PragmaOnce;
 
44422
  friend class ::CMatchSyntax;
 
44423
 
 
44424
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44425
 
 
44426
  CTree *sons[2]; // ref, declarator
 
44427
 
 
44428
public:
 
44429
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
44430
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44431
  static const char *NodeId ();
 
44432
  /** Get the name of the node. Can be compared with NodeId(). */
 
44433
  const char *NodeName () const { return NodeId (); }
 
44434
  /** Get the number of sons. */
 
44435
  int Sons () const { return 2; }
 
44436
  /** Get the n-th son.
 
44437
   *  \param n The index of the son.
 
44438
   *  \return The n-th son or NULL. */
 
44439
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
44440
  CTree *Declarator () const { return sons[1]; }
 
44441
  /** Replace a son.
 
44442
   *  \param old_son The son to replace.
 
44443
   *  \param new_son The new son. */
 
44444
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
44445
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
44446
  }
 
44447
};
 
44448
 
 
44449
 
 
44450
#line 44451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44451
} // closed Puma
 
44452
class CCExprResolve;
 
44453
class CExprResolve;
 
44454
class WinIfExists;
 
44455
class WinImportHandler;
 
44456
class WinMacros;
 
44457
class WinAsm;
 
44458
class WinDeclSpecs;
 
44459
class WinMemberExplSpec;
 
44460
class WinTypeKeywords;
 
44461
class WinFriend;
 
44462
class ExtAC;
 
44463
class ExtACBuilderCoupling;
 
44464
class ExtACSyntaxCoupling;
 
44465
class ExtACTree;
 
44466
class ExtACKeywords;
 
44467
class ExtGnu;
 
44468
class PragmaOnceUnitState;
 
44469
class PragmaOnce;
 
44470
class CMatchSyntax;
 
44471
namespace Puma {
 
44472
 
 
44473
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44474
class CT_PtrDeclarator : public CT_Declarator {
 
44475
#line 44476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44476
  friend class ::CCExprResolve;
 
44477
  friend class ::CExprResolve;
 
44478
  friend class ::WinIfExists;
 
44479
  friend class ::WinImportHandler;
 
44480
  friend class ::WinMacros;
 
44481
  friend class ::WinAsm;
 
44482
  friend class ::WinDeclSpecs;
 
44483
  friend class ::WinMemberExplSpec;
 
44484
  friend class ::WinTypeKeywords;
 
44485
  friend class ::WinFriend;
 
44486
  friend class ::ExtAC;
 
44487
  friend class ::ExtACBuilderCoupling;
 
44488
  friend class ::ExtACSyntaxCoupling;
 
44489
  friend class ::ExtACTree;
 
44490
  friend class ::ExtACKeywords;
 
44491
  friend class ::ExtGnu;
 
44492
  friend class ::PragmaOnceUnitState;
 
44493
  friend class ::PragmaOnce;
 
44494
  friend class ::CMatchSyntax;
 
44495
 
 
44496
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44497
 
 
44498
  CTree *sons[3]; // ptr, cv_quals, declarator
 
44499
 
 
44500
public:
 
44501
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
44502
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
44503
  }
 
44504
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44505
  static const char *NodeId ();
 
44506
  /** Get the name of the node. Can be compared with NodeId(). */
 
44507
  const char *NodeName () const { return NodeId (); }
 
44508
  /** Get the number of sons. */
 
44509
  int Sons () const { return CTree::Sons (sons, 3); }
 
44510
  /** Get the n-th son.
 
44511
   *  \param n The index of the son.
 
44512
   *  \return The n-th son or NULL. */
 
44513
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
44514
  CTree *Declarator () const { return sons[2]; }
 
44515
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
44516
  /** Replace a son.
 
44517
   *  \param old_son The son to replace.
 
44518
   *  \param new_son The new son. */
 
44519
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44520
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
44521
  }
 
44522
};
 
44523
 
 
44524
 
 
44525
#line 44526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44526
} // closed Puma
 
44527
class CCExprResolve;
 
44528
class CExprResolve;
 
44529
class WinIfExists;
 
44530
class WinImportHandler;
 
44531
class WinMacros;
 
44532
class WinAsm;
 
44533
class WinDeclSpecs;
 
44534
class WinMemberExplSpec;
 
44535
class WinTypeKeywords;
 
44536
class WinFriend;
 
44537
class ExtAC;
 
44538
class ExtACBuilderCoupling;
 
44539
class ExtACSyntaxCoupling;
 
44540
class ExtACTree;
 
44541
class ExtACKeywords;
 
44542
class ExtGnu;
 
44543
class PragmaOnceUnitState;
 
44544
class PragmaOnce;
 
44545
class CMatchSyntax;
 
44546
namespace Puma {
 
44547
 
 
44548
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44549
class CT_MembPtrDeclarator : public CT_Declarator {
 
44550
#line 44551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44551
  friend class ::CCExprResolve;
 
44552
  friend class ::CExprResolve;
 
44553
  friend class ::WinIfExists;
 
44554
  friend class ::WinImportHandler;
 
44555
  friend class ::WinMacros;
 
44556
  friend class ::WinAsm;
 
44557
  friend class ::WinDeclSpecs;
 
44558
  friend class ::WinMemberExplSpec;
 
44559
  friend class ::WinTypeKeywords;
 
44560
  friend class ::WinFriend;
 
44561
  friend class ::ExtAC;
 
44562
  friend class ::ExtACBuilderCoupling;
 
44563
  friend class ::ExtACSyntaxCoupling;
 
44564
  friend class ::ExtACTree;
 
44565
  friend class ::ExtACKeywords;
 
44566
  friend class ::ExtGnu;
 
44567
  friend class ::PragmaOnceUnitState;
 
44568
  friend class ::PragmaOnce;
 
44569
  friend class ::CMatchSyntax;
 
44570
 
 
44571
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44572
 
 
44573
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
44574
 
 
44575
public:
 
44576
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
44577
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
44578
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
44579
  }
 
44580
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44581
  static const char *NodeId ();
 
44582
  /** Get the name of the node. Can be compared with NodeId(). */
 
44583
  const char *NodeName () const { return NodeId (); }
 
44584
  /** Get the number of sons. */
 
44585
  int Sons () const { return CTree::Sons (sons, 5); }
 
44586
  /** Get the n-th son.
 
44587
   *  \param n The index of the son.
 
44588
   *  \return The n-th son or NULL. */
 
44589
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
44590
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
44591
  CTree *Declarator () const { return sons[4]; }
 
44592
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
44593
  /** Replace a son.
 
44594
   *  \param old_son The son to replace.
 
44595
   *  \param new_son The new son. */
 
44596
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44597
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
44598
  }
 
44599
};
 
44600
 
 
44601
 
 
44602
#line 44603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44603
} // closed Puma
 
44604
class CCExprResolve;
 
44605
class CExprResolve;
 
44606
class WinIfExists;
 
44607
class WinImportHandler;
 
44608
class WinMacros;
 
44609
class WinAsm;
 
44610
class WinDeclSpecs;
 
44611
class WinMemberExplSpec;
 
44612
class WinTypeKeywords;
 
44613
class WinFriend;
 
44614
class ExtAC;
 
44615
class ExtACBuilderCoupling;
 
44616
class ExtACSyntaxCoupling;
 
44617
class ExtACTree;
 
44618
class ExtACKeywords;
 
44619
class ExtGnu;
 
44620
class PragmaOnceUnitState;
 
44621
class PragmaOnce;
 
44622
class CMatchSyntax;
 
44623
namespace Puma {
 
44624
 
 
44625
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44626
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
44627
#line 44628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44628
  friend class ::CCExprResolve;
 
44629
  friend class ::CExprResolve;
 
44630
  friend class ::WinIfExists;
 
44631
  friend class ::WinImportHandler;
 
44632
  friend class ::WinMacros;
 
44633
  friend class ::WinAsm;
 
44634
  friend class ::WinDeclSpecs;
 
44635
  friend class ::WinMemberExplSpec;
 
44636
  friend class ::WinTypeKeywords;
 
44637
  friend class ::WinFriend;
 
44638
  friend class ::ExtAC;
 
44639
  friend class ::ExtACBuilderCoupling;
 
44640
  friend class ::ExtACSyntaxCoupling;
 
44641
  friend class ::ExtACTree;
 
44642
  friend class ::ExtACKeywords;
 
44643
  friend class ::ExtGnu;
 
44644
  friend class ::PragmaOnceUnitState;
 
44645
  friend class ::PragmaOnce;
 
44646
  friend class ::CMatchSyntax;
 
44647
 
 
44648
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44649
 
 
44650
  CTree *sons[3]; // declarator, colon, expr
 
44651
 
 
44652
public:
 
44653
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
44654
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
44655
  }
 
44656
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44657
  static const char *NodeId ();
 
44658
  /** Get the name of the node. Can be compared with NodeId(). */
 
44659
  const char *NodeName () const { return NodeId (); }
 
44660
  /** Get the number of sons. */
 
44661
  int Sons () const { return CTree::Sons (sons, 3); }
 
44662
  /** Get the n-th son.
 
44663
   *  \param n The index of the son.
 
44664
   *  \return The n-th son or NULL. */
 
44665
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
44666
  CTree *Declarator () const { return sons[0]; }
 
44667
  CTree *Expr () const { return sons[2]; }
 
44668
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
44669
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
44670
  /** Replace a son.
 
44671
   *  \param old_son The son to replace.
 
44672
   *  \param new_son The new son. */
 
44673
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44674
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
44675
  }
 
44676
};
 
44677
 
 
44678
/*****************************************************************************/
 
44679
/*                                                                           */
 
44680
/*                              Statements                                   */
 
44681
/*                                                                           */
 
44682
/*****************************************************************************/
 
44683
 
 
44684
 
 
44685
#line 44686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44686
} // closed Puma
 
44687
class CCExprResolve;
 
44688
class CExprResolve;
 
44689
class WinIfExists;
 
44690
class WinImportHandler;
 
44691
class WinMacros;
 
44692
class WinAsm;
 
44693
class WinDeclSpecs;
 
44694
class WinMemberExplSpec;
 
44695
class WinTypeKeywords;
 
44696
class WinFriend;
 
44697
class ExtAC;
 
44698
class ExtACBuilderCoupling;
 
44699
class ExtACSyntaxCoupling;
 
44700
class ExtACTree;
 
44701
class ExtACKeywords;
 
44702
class ExtGnu;
 
44703
class PragmaOnceUnitState;
 
44704
class PragmaOnce;
 
44705
class CMatchSyntax;
 
44706
namespace Puma {
 
44707
 
 
44708
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44709
class CT_Statement : public CTree {
 
44710
#line 44711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44711
  friend class ::CCExprResolve;
 
44712
  friend class ::CExprResolve;
 
44713
  friend class ::WinIfExists;
 
44714
  friend class ::WinImportHandler;
 
44715
  friend class ::WinMacros;
 
44716
  friend class ::WinAsm;
 
44717
  friend class ::WinDeclSpecs;
 
44718
  friend class ::WinMemberExplSpec;
 
44719
  friend class ::WinTypeKeywords;
 
44720
  friend class ::WinFriend;
 
44721
  friend class ::ExtAC;
 
44722
  friend class ::ExtACBuilderCoupling;
 
44723
  friend class ::ExtACSyntaxCoupling;
 
44724
  friend class ::ExtACTree;
 
44725
  friend class ::ExtACKeywords;
 
44726
  friend class ::ExtGnu;
 
44727
  friend class ::PragmaOnceUnitState;
 
44728
  friend class ::PragmaOnce;
 
44729
  friend class ::CMatchSyntax;
 
44730
 
 
44731
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44732
 
 
44733
protected:
 
44734
  CT_Statement () {}
 
44735
  virtual CT_Statement *IsStatement () { return this; }
 
44736
};
 
44737
 
 
44738
 
 
44739
#line 44740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44740
} // closed Puma
 
44741
class CCExprResolve;
 
44742
class CExprResolve;
 
44743
class WinIfExists;
 
44744
class WinImportHandler;
 
44745
class WinMacros;
 
44746
class WinAsm;
 
44747
class WinDeclSpecs;
 
44748
class WinMemberExplSpec;
 
44749
class WinTypeKeywords;
 
44750
class WinFriend;
 
44751
class ExtAC;
 
44752
class ExtACBuilderCoupling;
 
44753
class ExtACSyntaxCoupling;
 
44754
class ExtACTree;
 
44755
class ExtACKeywords;
 
44756
class ExtGnu;
 
44757
class PragmaOnceUnitState;
 
44758
class PragmaOnce;
 
44759
class CMatchSyntax;
 
44760
namespace Puma {
 
44761
 
 
44762
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44763
class CT_LabelStmt : public CT_Statement {
 
44764
#line 44765 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44765
  friend class ::CCExprResolve;
 
44766
  friend class ::CExprResolve;
 
44767
  friend class ::WinIfExists;
 
44768
  friend class ::WinImportHandler;
 
44769
  friend class ::WinMacros;
 
44770
  friend class ::WinAsm;
 
44771
  friend class ::WinDeclSpecs;
 
44772
  friend class ::WinMemberExplSpec;
 
44773
  friend class ::WinTypeKeywords;
 
44774
  friend class ::WinFriend;
 
44775
  friend class ::ExtAC;
 
44776
  friend class ::ExtACBuilderCoupling;
 
44777
  friend class ::ExtACSyntaxCoupling;
 
44778
  friend class ::ExtACTree;
 
44779
  friend class ::ExtACKeywords;
 
44780
  friend class ::ExtGnu;
 
44781
  friend class ::PragmaOnceUnitState;
 
44782
  friend class ::PragmaOnce;
 
44783
  friend class ::CMatchSyntax;
 
44784
 
 
44785
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44786
 
 
44787
  CTree *sons[3]; // id, colon, stmt
 
44788
 
 
44789
public:
 
44790
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
44791
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
44792
  }
 
44793
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44794
  static const char *NodeId ();
 
44795
  /** Get the name of the node. Can be compared with NodeId(). */
 
44796
  const char *NodeName () const { return NodeId (); }
 
44797
  /** Get the number of sons. */
 
44798
  int Sons () const { return 3; }
 
44799
  /** Get the n-th son.
 
44800
   *  \param n The index of the son.
 
44801
   *  \return The n-th son or NULL. */
 
44802
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
44803
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
44804
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
44805
  /** Replace a son.
 
44806
   *  \param old_son The son to replace.
 
44807
   *  \param new_son The new son. */
 
44808
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44809
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
44810
  }
 
44811
};
 
44812
 
 
44813
 
 
44814
#line 44815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44815
} // closed Puma
 
44816
class CCExprResolve;
 
44817
class CExprResolve;
 
44818
class WinIfExists;
 
44819
class WinImportHandler;
 
44820
class WinMacros;
 
44821
class WinAsm;
 
44822
class WinDeclSpecs;
 
44823
class WinMemberExplSpec;
 
44824
class WinTypeKeywords;
 
44825
class WinFriend;
 
44826
class ExtAC;
 
44827
class ExtACBuilderCoupling;
 
44828
class ExtACSyntaxCoupling;
 
44829
class ExtACTree;
 
44830
class ExtACKeywords;
 
44831
class ExtGnu;
 
44832
class PragmaOnceUnitState;
 
44833
class PragmaOnce;
 
44834
class CMatchSyntax;
 
44835
namespace Puma {
 
44836
 
 
44837
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44838
class CT_DefaultStmt : public CT_Statement {
 
44839
#line 44840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44840
  friend class ::CCExprResolve;
 
44841
  friend class ::CExprResolve;
 
44842
  friend class ::WinIfExists;
 
44843
  friend class ::WinImportHandler;
 
44844
  friend class ::WinMacros;
 
44845
  friend class ::WinAsm;
 
44846
  friend class ::WinDeclSpecs;
 
44847
  friend class ::WinMemberExplSpec;
 
44848
  friend class ::WinTypeKeywords;
 
44849
  friend class ::WinFriend;
 
44850
  friend class ::ExtAC;
 
44851
  friend class ::ExtACBuilderCoupling;
 
44852
  friend class ::ExtACSyntaxCoupling;
 
44853
  friend class ::ExtACTree;
 
44854
  friend class ::ExtACKeywords;
 
44855
  friend class ::ExtGnu;
 
44856
  friend class ::PragmaOnceUnitState;
 
44857
  friend class ::PragmaOnce;
 
44858
  friend class ::CMatchSyntax;
 
44859
 
 
44860
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44861
 
 
44862
  CTree *sons[3]; // keyword, colon, stmt
 
44863
 
 
44864
public:
 
44865
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
44866
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
44867
  }
 
44868
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44869
  static const char *NodeId ();
 
44870
  /** Get the name of the node. Can be compared with NodeId(). */
 
44871
  const char *NodeName () const { return NodeId (); }
 
44872
  /** Get the number of sons. */
 
44873
  int Sons () const { return 3; }
 
44874
  /** Get the n-th son.
 
44875
   *  \param n The index of the son.
 
44876
   *  \return The n-th son or NULL. */
 
44877
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
44878
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
44879
  /** Replace a son.
 
44880
   *  \param old_son The son to replace.
 
44881
   *  \param new_son The new son. */
 
44882
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44883
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
44884
  }
 
44885
};
 
44886
 
 
44887
 
 
44888
#line 44889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44889
} // closed Puma
 
44890
class CCExprResolve;
 
44891
class CExprResolve;
 
44892
class WinIfExists;
 
44893
class WinImportHandler;
 
44894
class WinMacros;
 
44895
class WinAsm;
 
44896
class WinDeclSpecs;
 
44897
class WinMemberExplSpec;
 
44898
class WinTypeKeywords;
 
44899
class WinFriend;
 
44900
class ExtAC;
 
44901
class ExtACBuilderCoupling;
 
44902
class ExtACSyntaxCoupling;
 
44903
class ExtACTree;
 
44904
class ExtACKeywords;
 
44905
class ExtGnu;
 
44906
class PragmaOnceUnitState;
 
44907
class PragmaOnce;
 
44908
class CMatchSyntax;
 
44909
namespace Puma {
 
44910
 
 
44911
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44912
class CT_TryStmt : public CT_Statement {
 
44913
#line 44914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44914
  friend class ::CCExprResolve;
 
44915
  friend class ::CExprResolve;
 
44916
  friend class ::WinIfExists;
 
44917
  friend class ::WinImportHandler;
 
44918
  friend class ::WinMacros;
 
44919
  friend class ::WinAsm;
 
44920
  friend class ::WinDeclSpecs;
 
44921
  friend class ::WinMemberExplSpec;
 
44922
  friend class ::WinTypeKeywords;
 
44923
  friend class ::WinFriend;
 
44924
  friend class ::ExtAC;
 
44925
  friend class ::ExtACBuilderCoupling;
 
44926
  friend class ::ExtACSyntaxCoupling;
 
44927
  friend class ::ExtACTree;
 
44928
  friend class ::ExtACKeywords;
 
44929
  friend class ::ExtGnu;
 
44930
  friend class ::PragmaOnceUnitState;
 
44931
  friend class ::PragmaOnce;
 
44932
  friend class ::CMatchSyntax;
 
44933
 
 
44934
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44935
 
 
44936
  CTree *sons[3]; // try, stmt, handlers
 
44937
 
 
44938
public:
 
44939
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
44940
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
44941
  }
 
44942
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44943
  static const char *NodeId ();
 
44944
  /** Get the name of the node. Can be compared with NodeId(). */
 
44945
  const char *NodeName () const { return NodeId (); }
 
44946
  /** Get the number of sons. */
 
44947
  int Sons () const { return 3; }
 
44948
  /** Get the n-th son.
 
44949
   *  \param n The index of the son.
 
44950
   *  \return The n-th son or NULL. */
 
44951
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
44952
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
44953
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
44954
  /** Replace a son.
 
44955
   *  \param old_son The son to replace.
 
44956
   *  \param new_son The new son. */
 
44957
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44958
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
44959
  }
 
44960
};
 
44961
 
 
44962
 
 
44963
#line 44964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44964
} // closed Puma
 
44965
class CCExprResolve;
 
44966
class CExprResolve;
 
44967
class WinIfExists;
 
44968
class WinImportHandler;
 
44969
class WinMacros;
 
44970
class WinAsm;
 
44971
class WinDeclSpecs;
 
44972
class WinMemberExplSpec;
 
44973
class WinTypeKeywords;
 
44974
class WinFriend;
 
44975
class ExtAC;
 
44976
class ExtACBuilderCoupling;
 
44977
class ExtACSyntaxCoupling;
 
44978
class ExtACTree;
 
44979
class ExtACKeywords;
 
44980
class ExtGnu;
 
44981
class PragmaOnceUnitState;
 
44982
class PragmaOnce;
 
44983
class CMatchSyntax;
 
44984
namespace Puma {
 
44985
 
 
44986
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44987
class CT_CaseStmt : public CT_Statement {
 
44988
#line 44989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
44989
  friend class ::CCExprResolve;
 
44990
  friend class ::CExprResolve;
 
44991
  friend class ::WinIfExists;
 
44992
  friend class ::WinImportHandler;
 
44993
  friend class ::WinMacros;
 
44994
  friend class ::WinAsm;
 
44995
  friend class ::WinDeclSpecs;
 
44996
  friend class ::WinMemberExplSpec;
 
44997
  friend class ::WinTypeKeywords;
 
44998
  friend class ::WinFriend;
 
44999
  friend class ::ExtAC;
 
45000
  friend class ::ExtACBuilderCoupling;
 
45001
  friend class ::ExtACSyntaxCoupling;
 
45002
  friend class ::ExtACTree;
 
45003
  friend class ::ExtACKeywords;
 
45004
  friend class ::ExtGnu;
 
45005
  friend class ::PragmaOnceUnitState;
 
45006
  friend class ::PragmaOnce;
 
45007
  friend class ::CMatchSyntax;
 
45008
 
 
45009
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45010
 
 
45011
  CTree *sons[4]; // keyword, expr, colon, stmt
 
45012
 
 
45013
public:
 
45014
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
45015
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
45016
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
45017
  }
 
45018
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45019
  static const char *NodeId ();
 
45020
  /** Get the name of the node. Can be compared with NodeId(). */
 
45021
  const char *NodeName () const { return NodeId (); }
 
45022
  /** Get the number of sons. */
 
45023
  int Sons () const { return 4; }
 
45024
  /** Get the n-th son.
 
45025
   *  \param n The index of the son.
 
45026
   *  \return The n-th son or NULL. */
 
45027
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
45028
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
45029
  CTree *Expr () const { return sons[1]; }
 
45030
  /** Replace a son.
 
45031
   *  \param old_son The son to replace.
 
45032
   *  \param new_son The new son. */
 
45033
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45034
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
45035
  }
 
45036
};
 
45037
 
 
45038
 
 
45039
#line 45040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45040
} // closed Puma
 
45041
class CCExprResolve;
 
45042
class CExprResolve;
 
45043
class WinIfExists;
 
45044
class WinImportHandler;
 
45045
class WinMacros;
 
45046
class WinAsm;
 
45047
class WinDeclSpecs;
 
45048
class WinMemberExplSpec;
 
45049
class WinTypeKeywords;
 
45050
class WinFriend;
 
45051
class ExtAC;
 
45052
class ExtACBuilderCoupling;
 
45053
class ExtACSyntaxCoupling;
 
45054
class ExtACTree;
 
45055
class ExtACKeywords;
 
45056
class ExtGnu;
 
45057
class PragmaOnceUnitState;
 
45058
class PragmaOnce;
 
45059
class CMatchSyntax;
 
45060
namespace Puma {
 
45061
 
 
45062
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45063
class CT_ExprStmt : public CT_Statement {
 
45064
#line 45065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45065
  friend class ::CCExprResolve;
 
45066
  friend class ::CExprResolve;
 
45067
  friend class ::WinIfExists;
 
45068
  friend class ::WinImportHandler;
 
45069
  friend class ::WinMacros;
 
45070
  friend class ::WinAsm;
 
45071
  friend class ::WinDeclSpecs;
 
45072
  friend class ::WinMemberExplSpec;
 
45073
  friend class ::WinTypeKeywords;
 
45074
  friend class ::WinFriend;
 
45075
  friend class ::ExtAC;
 
45076
  friend class ::ExtACBuilderCoupling;
 
45077
  friend class ::ExtACSyntaxCoupling;
 
45078
  friend class ::ExtACTree;
 
45079
  friend class ::ExtACKeywords;
 
45080
  friend class ::ExtGnu;
 
45081
  friend class ::PragmaOnceUnitState;
 
45082
  friend class ::PragmaOnce;
 
45083
  friend class ::CMatchSyntax;
 
45084
 
 
45085
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45086
 
 
45087
  CTree *sons[2]; // expr, semi_colon
 
45088
 
 
45089
public:
 
45090
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
45091
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45092
  static const char *NodeId ();
 
45093
  /** Get the name of the node. Can be compared with NodeId(). */
 
45094
  const char *NodeName () const { return NodeId (); }
 
45095
  /** Get the number of sons. */
 
45096
  int Sons () const { return CTree::Sons (sons, 2); }
 
45097
  /** Get the n-th son.
 
45098
   *  \param n The index of the son.
 
45099
   *  \return The n-th son or NULL. */
 
45100
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
45101
  CTree *Expr () const { return sons[0]; }
 
45102
  /** Replace a son.
 
45103
   *  \param old_son The son to replace.
 
45104
   *  \param new_son The new son. */
 
45105
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45106
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
45107
  }
 
45108
};
 
45109
 
 
45110
 
 
45111
#line 45112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45112
} // closed Puma
 
45113
class CCExprResolve;
 
45114
class CExprResolve;
 
45115
class WinIfExists;
 
45116
class WinImportHandler;
 
45117
class WinMacros;
 
45118
class WinAsm;
 
45119
class WinDeclSpecs;
 
45120
class WinMemberExplSpec;
 
45121
class WinTypeKeywords;
 
45122
class WinFriend;
 
45123
class ExtAC;
 
45124
class ExtACBuilderCoupling;
 
45125
class ExtACSyntaxCoupling;
 
45126
class ExtACTree;
 
45127
class ExtACKeywords;
 
45128
class ExtGnu;
 
45129
class PragmaOnceUnitState;
 
45130
class PragmaOnce;
 
45131
class CMatchSyntax;
 
45132
namespace Puma {
 
45133
 
 
45134
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45135
class CT_DeclStmt : public CT_Statement {
 
45136
#line 45137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45137
  friend class ::CCExprResolve;
 
45138
  friend class ::CExprResolve;
 
45139
  friend class ::WinIfExists;
 
45140
  friend class ::WinImportHandler;
 
45141
  friend class ::WinMacros;
 
45142
  friend class ::WinAsm;
 
45143
  friend class ::WinDeclSpecs;
 
45144
  friend class ::WinMemberExplSpec;
 
45145
  friend class ::WinTypeKeywords;
 
45146
  friend class ::WinFriend;
 
45147
  friend class ::ExtAC;
 
45148
  friend class ::ExtACBuilderCoupling;
 
45149
  friend class ::ExtACSyntaxCoupling;
 
45150
  friend class ::ExtACTree;
 
45151
  friend class ::ExtACKeywords;
 
45152
  friend class ::ExtGnu;
 
45153
  friend class ::PragmaOnceUnitState;
 
45154
  friend class ::PragmaOnce;
 
45155
  friend class ::CMatchSyntax;
 
45156
 
 
45157
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45158
 
 
45159
  CTree *_decl;
 
45160
 
 
45161
public:
 
45162
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
45163
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45164
  static const char *NodeId ();
 
45165
  /** Get the name of the node. Can be compared with NodeId(). */
 
45166
  const char *NodeName () const { return NodeId (); }
 
45167
  /** Get the number of sons. */
 
45168
  int Sons () const { return 1; }
 
45169
  /** Get the n-th son.
 
45170
   *  \param n The index of the son.
 
45171
   *  \return The n-th son or NULL. */
 
45172
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
45173
  /** Replace a son.
 
45174
   *  \param old_son The son to replace.
 
45175
   *  \param new_son The new son. */
 
45176
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
45177
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
45178
};
 
45179
 
 
45180
 
 
45181
#line 45182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45182
} // closed Puma
 
45183
class CCExprResolve;
 
45184
class CExprResolve;
 
45185
class WinIfExists;
 
45186
class WinImportHandler;
 
45187
class WinMacros;
 
45188
class WinAsm;
 
45189
class WinDeclSpecs;
 
45190
class WinMemberExplSpec;
 
45191
class WinTypeKeywords;
 
45192
class WinFriend;
 
45193
class ExtAC;
 
45194
class ExtACBuilderCoupling;
 
45195
class ExtACSyntaxCoupling;
 
45196
class ExtACTree;
 
45197
class ExtACKeywords;
 
45198
class ExtGnu;
 
45199
class PragmaOnceUnitState;
 
45200
class PragmaOnce;
 
45201
class CMatchSyntax;
 
45202
namespace Puma {
 
45203
 
 
45204
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45205
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
45206
#line 45207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45207
  friend class ::CCExprResolve;
 
45208
  friend class ::CExprResolve;
 
45209
  friend class ::WinIfExists;
 
45210
  friend class ::WinImportHandler;
 
45211
  friend class ::WinMacros;
 
45212
  friend class ::WinAsm;
 
45213
  friend class ::WinDeclSpecs;
 
45214
  friend class ::WinMemberExplSpec;
 
45215
  friend class ::WinTypeKeywords;
 
45216
  friend class ::WinFriend;
 
45217
  friend class ::ExtAC;
 
45218
  friend class ::ExtACBuilderCoupling;
 
45219
  friend class ::ExtACSyntaxCoupling;
 
45220
  friend class ::ExtACTree;
 
45221
  friend class ::ExtACKeywords;
 
45222
  friend class ::ExtGnu;
 
45223
  friend class ::PragmaOnceUnitState;
 
45224
  friend class ::PragmaOnce;
 
45225
  friend class ::CMatchSyntax;
 
45226
 
 
45227
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45228
 
 
45229
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
45230
 
 
45231
public:
 
45232
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
45233
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
45234
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
45235
  }
 
45236
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45237
  static const char *NodeId ();
 
45238
  /** Get the name of the node. Can be compared with NodeId(). */
 
45239
  const char *NodeName () const { return NodeId (); }
 
45240
  /** Get the number of sons. */
 
45241
  int Sons () const { return 5; }
 
45242
  /** Get the n-th son.
 
45243
   *  \param n The index of the son.
 
45244
   *  \return The n-th son or NULL. */
 
45245
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
45246
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
45247
  CTree *Condition () const { return sons[2]; }
 
45248
  /** Replace a son.
 
45249
   *  \param old_son The son to replace.
 
45250
   *  \param new_son The new son. */
 
45251
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45252
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
45253
  }
 
45254
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
45255
};
 
45256
 
 
45257
 
 
45258
#line 45259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45259
} // closed Puma
 
45260
class CCExprResolve;
 
45261
class CExprResolve;
 
45262
class WinIfExists;
 
45263
class WinImportHandler;
 
45264
class WinMacros;
 
45265
class WinAsm;
 
45266
class WinDeclSpecs;
 
45267
class WinMemberExplSpec;
 
45268
class WinTypeKeywords;
 
45269
class WinFriend;
 
45270
class ExtAC;
 
45271
class ExtACBuilderCoupling;
 
45272
class ExtACSyntaxCoupling;
 
45273
class ExtACTree;
 
45274
class ExtACKeywords;
 
45275
class ExtGnu;
 
45276
class PragmaOnceUnitState;
 
45277
class PragmaOnce;
 
45278
class CMatchSyntax;
 
45279
namespace Puma {
 
45280
 
 
45281
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45282
class CT_IfStmt : public CT_Statement, public CSemScope {
 
45283
#line 45284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45284
  friend class ::CCExprResolve;
 
45285
  friend class ::CExprResolve;
 
45286
  friend class ::WinIfExists;
 
45287
  friend class ::WinImportHandler;
 
45288
  friend class ::WinMacros;
 
45289
  friend class ::WinAsm;
 
45290
  friend class ::WinDeclSpecs;
 
45291
  friend class ::WinMemberExplSpec;
 
45292
  friend class ::WinTypeKeywords;
 
45293
  friend class ::WinFriend;
 
45294
  friend class ::ExtAC;
 
45295
  friend class ::ExtACBuilderCoupling;
 
45296
  friend class ::ExtACSyntaxCoupling;
 
45297
  friend class ::ExtACTree;
 
45298
  friend class ::ExtACKeywords;
 
45299
  friend class ::ExtGnu;
 
45300
  friend class ::PragmaOnceUnitState;
 
45301
  friend class ::PragmaOnce;
 
45302
  friend class ::CMatchSyntax;
 
45303
 
 
45304
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45305
 
 
45306
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
45307
 
 
45308
public:
 
45309
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
45310
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
45311
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
45312
  }
 
45313
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45314
  static const char *NodeId ();
 
45315
  /** Get the name of the node. Can be compared with NodeId(). */
 
45316
  const char *NodeName () const { return NodeId (); }
 
45317
  /** Get the number of sons. */
 
45318
  int Sons () const { return 5; }
 
45319
  /** Get the n-th son.
 
45320
   *  \param n The index of the son.
 
45321
   *  \return The n-th son or NULL. */
 
45322
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
45323
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
45324
  CTree *Condition () const { return sons[2]; }
 
45325
  /** Replace a son.
 
45326
   *  \param old_son The son to replace.
 
45327
   *  \param new_son The new son. */
 
45328
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45329
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
45330
  }
 
45331
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
45332
};
 
45333
 
 
45334
 
 
45335
#line 45336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45336
} // closed Puma
 
45337
class CCExprResolve;
 
45338
class CExprResolve;
 
45339
class WinIfExists;
 
45340
class WinImportHandler;
 
45341
class WinMacros;
 
45342
class WinAsm;
 
45343
class WinDeclSpecs;
 
45344
class WinMemberExplSpec;
 
45345
class WinTypeKeywords;
 
45346
class WinFriend;
 
45347
class ExtAC;
 
45348
class ExtACBuilderCoupling;
 
45349
class ExtACSyntaxCoupling;
 
45350
class ExtACTree;
 
45351
class ExtACKeywords;
 
45352
class ExtGnu;
 
45353
class PragmaOnceUnitState;
 
45354
class PragmaOnce;
 
45355
class CMatchSyntax;
 
45356
namespace Puma {
 
45357
 
 
45358
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45359
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
45360
#line 45361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45361
  friend class ::CCExprResolve;
 
45362
  friend class ::CExprResolve;
 
45363
  friend class ::WinIfExists;
 
45364
  friend class ::WinImportHandler;
 
45365
  friend class ::WinMacros;
 
45366
  friend class ::WinAsm;
 
45367
  friend class ::WinDeclSpecs;
 
45368
  friend class ::WinMemberExplSpec;
 
45369
  friend class ::WinTypeKeywords;
 
45370
  friend class ::WinFriend;
 
45371
  friend class ::ExtAC;
 
45372
  friend class ::ExtACBuilderCoupling;
 
45373
  friend class ::ExtACSyntaxCoupling;
 
45374
  friend class ::ExtACTree;
 
45375
  friend class ::ExtACKeywords;
 
45376
  friend class ::ExtGnu;
 
45377
  friend class ::PragmaOnceUnitState;
 
45378
  friend class ::PragmaOnce;
 
45379
  friend class ::CMatchSyntax;
 
45380
 
 
45381
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45382
 
 
45383
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
45384
 
 
45385
public:
 
45386
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
45387
                 CTree *is, CTree *e, CTree *es) {
 
45388
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
45389
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
45390
    AddSon (sons[6], es); 
 
45391
  }
 
45392
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45393
  static const char *NodeId ();
 
45394
  /** Get the name of the node. Can be compared with NodeId(). */
 
45395
  const char *NodeName () const { return NodeId (); }
 
45396
  /** Get the number of sons. */
 
45397
  int Sons () const { return 7; }
 
45398
  /** Get the n-th son.
 
45399
   *  \param n The index of the son.
 
45400
   *  \return The n-th son or NULL. */
 
45401
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
45402
  CTree *Condition () const { return sons[2]; }
 
45403
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
45404
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
45405
  /** Replace a son.
 
45406
   *  \param old_son The son to replace.
 
45407
   *  \param new_son The new son. */
 
45408
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45409
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
45410
  }
 
45411
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
45412
};
 
45413
 
 
45414
 
 
45415
#line 45416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45416
} // closed Puma
 
45417
class CCExprResolve;
 
45418
class CExprResolve;
 
45419
class WinIfExists;
 
45420
class WinImportHandler;
 
45421
class WinMacros;
 
45422
class WinAsm;
 
45423
class WinDeclSpecs;
 
45424
class WinMemberExplSpec;
 
45425
class WinTypeKeywords;
 
45426
class WinFriend;
 
45427
class ExtAC;
 
45428
class ExtACBuilderCoupling;
 
45429
class ExtACSyntaxCoupling;
 
45430
class ExtACTree;
 
45431
class ExtACKeywords;
 
45432
class ExtGnu;
 
45433
class PragmaOnceUnitState;
 
45434
class PragmaOnce;
 
45435
class CMatchSyntax;
 
45436
namespace Puma {
 
45437
 
 
45438
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45439
class CT_BreakStmt : public CT_Statement {
 
45440
#line 45441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45441
  friend class ::CCExprResolve;
 
45442
  friend class ::CExprResolve;
 
45443
  friend class ::WinIfExists;
 
45444
  friend class ::WinImportHandler;
 
45445
  friend class ::WinMacros;
 
45446
  friend class ::WinAsm;
 
45447
  friend class ::WinDeclSpecs;
 
45448
  friend class ::WinMemberExplSpec;
 
45449
  friend class ::WinTypeKeywords;
 
45450
  friend class ::WinFriend;
 
45451
  friend class ::ExtAC;
 
45452
  friend class ::ExtACBuilderCoupling;
 
45453
  friend class ::ExtACSyntaxCoupling;
 
45454
  friend class ::ExtACTree;
 
45455
  friend class ::ExtACKeywords;
 
45456
  friend class ::ExtGnu;
 
45457
  friend class ::PragmaOnceUnitState;
 
45458
  friend class ::PragmaOnce;
 
45459
  friend class ::CMatchSyntax;
 
45460
 
 
45461
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45462
 
 
45463
  CTree *sons[2]; // key, semi_colon
 
45464
 
 
45465
public:
 
45466
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
45467
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45468
  static const char *NodeId ();
 
45469
  /** Get the name of the node. Can be compared with NodeId(). */
 
45470
  const char *NodeName () const { return NodeId (); }
 
45471
  /** Get the number of sons. */
 
45472
  int Sons () const { return 2; }
 
45473
  /** Get the n-th son.
 
45474
   *  \param n The index of the son.
 
45475
   *  \return The n-th son or NULL. */
 
45476
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
45477
  /** Replace a son.
 
45478
   *  \param old_son The son to replace.
 
45479
   *  \param new_son The new son. */
 
45480
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45481
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
45482
  }
 
45483
};
 
45484
 
 
45485
 
 
45486
#line 45487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45487
} // closed Puma
 
45488
class CCExprResolve;
 
45489
class CExprResolve;
 
45490
class WinIfExists;
 
45491
class WinImportHandler;
 
45492
class WinMacros;
 
45493
class WinAsm;
 
45494
class WinDeclSpecs;
 
45495
class WinMemberExplSpec;
 
45496
class WinTypeKeywords;
 
45497
class WinFriend;
 
45498
class ExtAC;
 
45499
class ExtACBuilderCoupling;
 
45500
class ExtACSyntaxCoupling;
 
45501
class ExtACTree;
 
45502
class ExtACKeywords;
 
45503
class ExtGnu;
 
45504
class PragmaOnceUnitState;
 
45505
class PragmaOnce;
 
45506
class CMatchSyntax;
 
45507
namespace Puma {
 
45508
 
 
45509
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45510
class CT_ContinueStmt : public CT_Statement {
 
45511
#line 45512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45512
  friend class ::CCExprResolve;
 
45513
  friend class ::CExprResolve;
 
45514
  friend class ::WinIfExists;
 
45515
  friend class ::WinImportHandler;
 
45516
  friend class ::WinMacros;
 
45517
  friend class ::WinAsm;
 
45518
  friend class ::WinDeclSpecs;
 
45519
  friend class ::WinMemberExplSpec;
 
45520
  friend class ::WinTypeKeywords;
 
45521
  friend class ::WinFriend;
 
45522
  friend class ::ExtAC;
 
45523
  friend class ::ExtACBuilderCoupling;
 
45524
  friend class ::ExtACSyntaxCoupling;
 
45525
  friend class ::ExtACTree;
 
45526
  friend class ::ExtACKeywords;
 
45527
  friend class ::ExtGnu;
 
45528
  friend class ::PragmaOnceUnitState;
 
45529
  friend class ::PragmaOnce;
 
45530
  friend class ::CMatchSyntax;
 
45531
 
 
45532
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45533
 
 
45534
  CTree *sons[2]; // key, semi_colon
 
45535
 
 
45536
public:
 
45537
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
45538
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45539
  static const char *NodeId ();
 
45540
  /** Get the name of the node. Can be compared with NodeId(). */
 
45541
  const char *NodeName () const { return NodeId (); }
 
45542
  /** Get the number of sons. */
 
45543
  int Sons () const { return 2; }
 
45544
  /** Get the n-th son.
 
45545
   *  \param n The index of the son.
 
45546
   *  \return The n-th son or NULL. */
 
45547
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
45548
  /** Replace a son.
 
45549
   *  \param old_son The son to replace.
 
45550
   *  \param new_son The new son. */
 
45551
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45552
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
45553
  }
 
45554
};
 
45555
 
 
45556
 
 
45557
#line 45558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45558
} // closed Puma
 
45559
class CCExprResolve;
 
45560
class CExprResolve;
 
45561
class WinIfExists;
 
45562
class WinImportHandler;
 
45563
class WinMacros;
 
45564
class WinAsm;
 
45565
class WinDeclSpecs;
 
45566
class WinMemberExplSpec;
 
45567
class WinTypeKeywords;
 
45568
class WinFriend;
 
45569
class ExtAC;
 
45570
class ExtACBuilderCoupling;
 
45571
class ExtACSyntaxCoupling;
 
45572
class ExtACTree;
 
45573
class ExtACKeywords;
 
45574
class ExtGnu;
 
45575
class PragmaOnceUnitState;
 
45576
class PragmaOnce;
 
45577
class CMatchSyntax;
 
45578
namespace Puma {
 
45579
 
 
45580
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45581
class CT_GotoStmt : public CT_Statement {
 
45582
#line 45583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45583
  friend class ::CCExprResolve;
 
45584
  friend class ::CExprResolve;
 
45585
  friend class ::WinIfExists;
 
45586
  friend class ::WinImportHandler;
 
45587
  friend class ::WinMacros;
 
45588
  friend class ::WinAsm;
 
45589
  friend class ::WinDeclSpecs;
 
45590
  friend class ::WinMemberExplSpec;
 
45591
  friend class ::WinTypeKeywords;
 
45592
  friend class ::WinFriend;
 
45593
  friend class ::ExtAC;
 
45594
  friend class ::ExtACBuilderCoupling;
 
45595
  friend class ::ExtACSyntaxCoupling;
 
45596
  friend class ::ExtACTree;
 
45597
  friend class ::ExtACKeywords;
 
45598
  friend class ::ExtGnu;
 
45599
  friend class ::PragmaOnceUnitState;
 
45600
  friend class ::PragmaOnce;
 
45601
  friend class ::CMatchSyntax;
 
45602
 
 
45603
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45604
 
 
45605
  CTree *sons[3]; // key, label, semi_colon
 
45606
 
 
45607
public:
 
45608
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
45609
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
45610
  }
 
45611
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45612
  static const char *NodeId ();
 
45613
  /** Get the name of the node. Can be compared with NodeId(). */
 
45614
  const char *NodeName () const { return NodeId (); }
 
45615
  /** Get the number of sons. */
 
45616
  int Sons () const { return 3; }
 
45617
  /** Get the n-th son.
 
45618
   *  \param n The index of the son.
 
45619
   *  \return The n-th son or NULL. */
 
45620
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
45621
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
45622
  /** Replace a son.
 
45623
   *  \param old_son The son to replace.
 
45624
   *  \param new_son The new son. */
 
45625
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45626
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
45627
  }
 
45628
};
 
45629
 
 
45630
 
 
45631
#line 45632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45632
} // closed Puma
 
45633
class CCExprResolve;
 
45634
class CExprResolve;
 
45635
class WinIfExists;
 
45636
class WinImportHandler;
 
45637
class WinMacros;
 
45638
class WinAsm;
 
45639
class WinDeclSpecs;
 
45640
class WinMemberExplSpec;
 
45641
class WinTypeKeywords;
 
45642
class WinFriend;
 
45643
class ExtAC;
 
45644
class ExtACBuilderCoupling;
 
45645
class ExtACSyntaxCoupling;
 
45646
class ExtACTree;
 
45647
class ExtACKeywords;
 
45648
class ExtGnu;
 
45649
class PragmaOnceUnitState;
 
45650
class PragmaOnce;
 
45651
class CMatchSyntax;
 
45652
namespace Puma {
 
45653
 
 
45654
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45655
class CT_ReturnStmt : public CT_Statement {
 
45656
#line 45657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45657
  friend class ::CCExprResolve;
 
45658
  friend class ::CExprResolve;
 
45659
  friend class ::WinIfExists;
 
45660
  friend class ::WinImportHandler;
 
45661
  friend class ::WinMacros;
 
45662
  friend class ::WinAsm;
 
45663
  friend class ::WinDeclSpecs;
 
45664
  friend class ::WinMemberExplSpec;
 
45665
  friend class ::WinTypeKeywords;
 
45666
  friend class ::WinFriend;
 
45667
  friend class ::ExtAC;
 
45668
  friend class ::ExtACBuilderCoupling;
 
45669
  friend class ::ExtACSyntaxCoupling;
 
45670
  friend class ::ExtACTree;
 
45671
  friend class ::ExtACKeywords;
 
45672
  friend class ::ExtGnu;
 
45673
  friend class ::PragmaOnceUnitState;
 
45674
  friend class ::PragmaOnce;
 
45675
  friend class ::CMatchSyntax;
 
45676
 
 
45677
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45678
 
 
45679
  CTree *sons[3]; // key, expr, semi_colon
 
45680
 
 
45681
public:
 
45682
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
45683
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
45684
  }
 
45685
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45686
  static const char *NodeId ();
 
45687
  /** Get the name of the node. Can be compared with NodeId(). */
 
45688
  const char *NodeName () const { return NodeId (); }
 
45689
  /** Get the number of sons. */
 
45690
  int Sons () const { return CTree::Sons (sons, 3); }
 
45691
  /** Get the n-th son.
 
45692
   *  \param n The index of the son.
 
45693
   *  \return The n-th son or NULL. */
 
45694
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
45695
  CTree *Expr () const { return sons[1]; }
 
45696
  /** Replace a son.
 
45697
   *  \param old_son The son to replace.
 
45698
   *  \param new_son The new son. */
 
45699
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45700
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
45701
  }
 
45702
};
 
45703
 
 
45704
 
 
45705
#line 45706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45706
} // closed Puma
 
45707
class CCExprResolve;
 
45708
class CExprResolve;
 
45709
class WinIfExists;
 
45710
class WinImportHandler;
 
45711
class WinMacros;
 
45712
class WinAsm;
 
45713
class WinDeclSpecs;
 
45714
class WinMemberExplSpec;
 
45715
class WinTypeKeywords;
 
45716
class WinFriend;
 
45717
class ExtAC;
 
45718
class ExtACBuilderCoupling;
 
45719
class ExtACSyntaxCoupling;
 
45720
class ExtACTree;
 
45721
class ExtACKeywords;
 
45722
class ExtGnu;
 
45723
class PragmaOnceUnitState;
 
45724
class PragmaOnce;
 
45725
class CMatchSyntax;
 
45726
namespace Puma {
 
45727
 
 
45728
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45729
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
45730
#line 45731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45731
  friend class ::CCExprResolve;
 
45732
  friend class ::CExprResolve;
 
45733
  friend class ::WinIfExists;
 
45734
  friend class ::WinImportHandler;
 
45735
  friend class ::WinMacros;
 
45736
  friend class ::WinAsm;
 
45737
  friend class ::WinDeclSpecs;
 
45738
  friend class ::WinMemberExplSpec;
 
45739
  friend class ::WinTypeKeywords;
 
45740
  friend class ::WinFriend;
 
45741
  friend class ::ExtAC;
 
45742
  friend class ::ExtACBuilderCoupling;
 
45743
  friend class ::ExtACSyntaxCoupling;
 
45744
  friend class ::ExtACTree;
 
45745
  friend class ::ExtACKeywords;
 
45746
  friend class ::ExtGnu;
 
45747
  friend class ::PragmaOnceUnitState;
 
45748
  friend class ::PragmaOnce;
 
45749
  friend class ::CMatchSyntax;
 
45750
 
 
45751
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45752
 
 
45753
  CTree *sons[5]; // key, open, cond, close, stmt
 
45754
 
 
45755
public:
 
45756
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
45757
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
45758
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
45759
  }
 
45760
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45761
  static const char *NodeId ();
 
45762
  /** Get the name of the node. Can be compared with NodeId(). */
 
45763
  const char *NodeName () const { return NodeId (); }
 
45764
  /** Get the number of sons. */
 
45765
  int Sons () const { return 5; }
 
45766
  /** Get the n-th son.
 
45767
   *  \param n The index of the son.
 
45768
   *  \return The n-th son or NULL. */
 
45769
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
45770
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
45771
  CTree *Condition () const { return sons[2]; }
 
45772
  /** Replace a son.
 
45773
   *  \param old_son The son to replace.
 
45774
   *  \param new_son The new son. */
 
45775
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45776
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
45777
  }
 
45778
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
45779
};
 
45780
 
 
45781
 
 
45782
#line 45783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45783
} // closed Puma
 
45784
class CCExprResolve;
 
45785
class CExprResolve;
 
45786
class WinIfExists;
 
45787
class WinImportHandler;
 
45788
class WinMacros;
 
45789
class WinAsm;
 
45790
class WinDeclSpecs;
 
45791
class WinMemberExplSpec;
 
45792
class WinTypeKeywords;
 
45793
class WinFriend;
 
45794
class ExtAC;
 
45795
class ExtACBuilderCoupling;
 
45796
class ExtACSyntaxCoupling;
 
45797
class ExtACTree;
 
45798
class ExtACKeywords;
 
45799
class ExtGnu;
 
45800
class PragmaOnceUnitState;
 
45801
class PragmaOnce;
 
45802
class CMatchSyntax;
 
45803
namespace Puma {
 
45804
 
 
45805
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45806
class CT_DoStmt : public CT_Statement {
 
45807
#line 45808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45808
  friend class ::CCExprResolve;
 
45809
  friend class ::CExprResolve;
 
45810
  friend class ::WinIfExists;
 
45811
  friend class ::WinImportHandler;
 
45812
  friend class ::WinMacros;
 
45813
  friend class ::WinAsm;
 
45814
  friend class ::WinDeclSpecs;
 
45815
  friend class ::WinMemberExplSpec;
 
45816
  friend class ::WinTypeKeywords;
 
45817
  friend class ::WinFriend;
 
45818
  friend class ::ExtAC;
 
45819
  friend class ::ExtACBuilderCoupling;
 
45820
  friend class ::ExtACSyntaxCoupling;
 
45821
  friend class ::ExtACTree;
 
45822
  friend class ::ExtACKeywords;
 
45823
  friend class ::ExtGnu;
 
45824
  friend class ::PragmaOnceUnitState;
 
45825
  friend class ::PragmaOnce;
 
45826
  friend class ::CMatchSyntax;
 
45827
 
 
45828
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45829
 
 
45830
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
45831
 
 
45832
public:
 
45833
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
45834
             CTree *c, CTree *sc) {
 
45835
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
45836
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
45837
    AddSon (sons[6], sc); 
 
45838
  }
 
45839
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45840
  static const char *NodeId ();
 
45841
  /** Get the name of the node. Can be compared with NodeId(). */
 
45842
  const char *NodeName () const { return NodeId (); }
 
45843
  /** Get the number of sons. */
 
45844
  int Sons () const { return 7; }
 
45845
  /** Get the n-th son.
 
45846
   *  \param n The index of the son.
 
45847
   *  \return The n-th son or NULL. */
 
45848
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
45849
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
45850
  CTree *Expr () const { return sons[4]; }
 
45851
  /** Replace a son.
 
45852
   *  \param old_son The son to replace.
 
45853
   *  \param new_son The new son. */
 
45854
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45855
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
45856
  }
 
45857
};
 
45858
 
 
45859
 
 
45860
#line 45861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45861
} // closed Puma
 
45862
class CCExprResolve;
 
45863
class CExprResolve;
 
45864
class WinIfExists;
 
45865
class WinImportHandler;
 
45866
class WinMacros;
 
45867
class WinAsm;
 
45868
class WinDeclSpecs;
 
45869
class WinMemberExplSpec;
 
45870
class WinTypeKeywords;
 
45871
class WinFriend;
 
45872
class ExtAC;
 
45873
class ExtACBuilderCoupling;
 
45874
class ExtACSyntaxCoupling;
 
45875
class ExtACTree;
 
45876
class ExtACKeywords;
 
45877
class ExtGnu;
 
45878
class PragmaOnceUnitState;
 
45879
class PragmaOnce;
 
45880
class CMatchSyntax;
 
45881
namespace Puma {
 
45882
 
 
45883
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45884
class CT_ForStmt : public CT_Statement, public CSemScope {
 
45885
#line 45886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45886
  friend class ::CCExprResolve;
 
45887
  friend class ::CExprResolve;
 
45888
  friend class ::WinIfExists;
 
45889
  friend class ::WinImportHandler;
 
45890
  friend class ::WinMacros;
 
45891
  friend class ::WinAsm;
 
45892
  friend class ::WinDeclSpecs;
 
45893
  friend class ::WinMemberExplSpec;
 
45894
  friend class ::WinTypeKeywords;
 
45895
  friend class ::WinFriend;
 
45896
  friend class ::ExtAC;
 
45897
  friend class ::ExtACBuilderCoupling;
 
45898
  friend class ::ExtACSyntaxCoupling;
 
45899
  friend class ::ExtACTree;
 
45900
  friend class ::ExtACKeywords;
 
45901
  friend class ::ExtGnu;
 
45902
  friend class ::PragmaOnceUnitState;
 
45903
  friend class ::PragmaOnce;
 
45904
  friend class ::CMatchSyntax;
 
45905
 
 
45906
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45907
 
 
45908
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
45909
 
 
45910
public:
 
45911
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
45912
              CTree *e, CTree *c, CTree *stmt) {
 
45913
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
45914
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
45915
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
45916
  }
 
45917
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45918
  static const char *NodeId ();
 
45919
  /** Get the name of the node. Can be compared with NodeId(). */
 
45920
  const char *NodeName () const { return NodeId (); }
 
45921
  /** Get the number of sons. */
 
45922
  int Sons () const { return CTree::Sons (sons, 8); }
 
45923
  /** Get the n-th son.
 
45924
   *  \param n The index of the son.
 
45925
   *  \return The n-th son or NULL. */
 
45926
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
45927
  CTree *InitStmt () const { return sons[2]; }
 
45928
  CTree *Condition () const { return sons[3]; }
 
45929
  CTree *Expr () const { return sons[5]; }
 
45930
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
45931
  /** Replace a son.
 
45932
   *  \param old_son The son to replace.
 
45933
   *  \param new_son The new son. */
 
45934
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
45935
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
45936
  }
 
45937
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
45938
};
 
45939
 
 
45940
 
 
45941
#line 45942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45942
} // closed Puma
 
45943
class CCExprResolve;
 
45944
class CExprResolve;
 
45945
class WinIfExists;
 
45946
class WinImportHandler;
 
45947
class WinMacros;
 
45948
class WinAsm;
 
45949
class WinDeclSpecs;
 
45950
class WinMemberExplSpec;
 
45951
class WinTypeKeywords;
 
45952
class WinFriend;
 
45953
class ExtAC;
 
45954
class ExtACBuilderCoupling;
 
45955
class ExtACSyntaxCoupling;
 
45956
class ExtACTree;
 
45957
class ExtACKeywords;
 
45958
class ExtGnu;
 
45959
class PragmaOnceUnitState;
 
45960
class PragmaOnce;
 
45961
class CMatchSyntax;
 
45962
namespace Puma {
 
45963
 
 
45964
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45965
class CT_Condition : public CT_Decl, public CSemObject {
 
45966
#line 45967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
45967
  friend class ::CCExprResolve;
 
45968
  friend class ::CExprResolve;
 
45969
  friend class ::WinIfExists;
 
45970
  friend class ::WinImportHandler;
 
45971
  friend class ::WinMacros;
 
45972
  friend class ::WinAsm;
 
45973
  friend class ::WinDeclSpecs;
 
45974
  friend class ::WinMemberExplSpec;
 
45975
  friend class ::WinTypeKeywords;
 
45976
  friend class ::WinFriend;
 
45977
  friend class ::ExtAC;
 
45978
  friend class ::ExtACBuilderCoupling;
 
45979
  friend class ::ExtACSyntaxCoupling;
 
45980
  friend class ::ExtACTree;
 
45981
  friend class ::ExtACKeywords;
 
45982
  friend class ::ExtGnu;
 
45983
  friend class ::PragmaOnceUnitState;
 
45984
  friend class ::PragmaOnce;
 
45985
  friend class ::CMatchSyntax;
 
45986
 
 
45987
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45988
 
 
45989
  CTree *sons[3]; // declspecs, declarator, init
 
45990
 
 
45991
public:
 
45992
  CT_Condition (CTree *dsl, CTree *d) {
 
45993
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
45994
  }
 
45995
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45996
  static const char *NodeId ();
 
45997
  /** Get the name of the node. Can be compared with NodeId(). */
 
45998
  const char *NodeName () const { return NodeId (); }
 
45999
  /** Get the number of sons. */
 
46000
  int Sons () const { return CTree::Sons (sons, 3); }
 
46001
  /** Get the n-th son.
 
46002
   *  \param n The index of the son.
 
46003
   *  \return The n-th son or NULL. */
 
46004
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
46005
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
46006
  CTree *Declarator () const { return sons[1]; }
 
46007
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
46008
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
46009
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
46010
  /** Replace a son.
 
46011
   *  \param old_son The son to replace.
 
46012
   *  \param new_son The new son. */
 
46013
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
46014
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
46015
  }
 
46016
};
 
46017
 
 
46018
/*****************************************************************************/
 
46019
/*                                                                           */
 
46020
/*                              Classes                                      */
 
46021
/*                                                                           */
 
46022
/*****************************************************************************/
 
46023
 
 
46024
 
 
46025
#line 46026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46026
} // closed Puma
 
46027
class CCExprResolve;
 
46028
class CExprResolve;
 
46029
class WinIfExists;
 
46030
class WinImportHandler;
 
46031
class WinMacros;
 
46032
class WinAsm;
 
46033
class WinDeclSpecs;
 
46034
class WinMemberExplSpec;
 
46035
class WinTypeKeywords;
 
46036
class WinFriend;
 
46037
class ExtAC;
 
46038
class ExtACBuilderCoupling;
 
46039
class ExtACSyntaxCoupling;
 
46040
class ExtACTree;
 
46041
class ExtACKeywords;
 
46042
class ExtGnu;
 
46043
class PragmaOnceUnitState;
 
46044
class PragmaOnce;
 
46045
class CMatchSyntax;
 
46046
namespace Puma {
 
46047
 
 
46048
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46049
 
 
46050
#line 46051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46051
} // closed Puma
 
46052
 
 
46053
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
46054
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
46055
#include "ExtACTree.ah"
 
46056
#endif
 
46057
namespace Puma {
 
46058
 
 
46059
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46060
class CT_ClassDef : public CT_Decl, public CSemObject {
 
46061
#line 46062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46062
  friend class ::CCExprResolve;
 
46063
  friend class ::CExprResolve;
 
46064
  friend class ::WinIfExists;
 
46065
  friend class ::WinImportHandler;
 
46066
  friend class ::WinMacros;
 
46067
  friend class ::WinAsm;
 
46068
  friend class ::WinDeclSpecs;
 
46069
  friend class ::WinMemberExplSpec;
 
46070
  friend class ::WinTypeKeywords;
 
46071
  friend class ::WinFriend;
 
46072
  friend class ::ExtAC;
 
46073
  friend class ::ExtACBuilderCoupling;
 
46074
  friend class ::ExtACSyntaxCoupling;
 
46075
  friend class ::ExtACTree;
 
46076
  friend class ::ExtACKeywords;
 
46077
  friend class ::ExtGnu;
 
46078
  friend class ::PragmaOnceUnitState;
 
46079
  friend class ::PragmaOnce;
 
46080
  friend class ::CMatchSyntax;
 
46081
 
 
46082
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46083
 
 
46084
   
 
46085
#line 46086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46086
 
 
46087
  struct __ac_wrapper_sons {
 
46088
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
46089
    operator A& () { return _data; }
 
46090
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
46091
    operator const A& () { return _data; }
 
46092
    operator const A& () const { return _data; }
 
46093
    operator void* () { return _data; }
 
46094
    operator void* () const { return (void*)_data; }
 
46095
    operator const void* () { return _data; }
 
46096
    operator const void* () const { return _data; }
 
46097
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
46098
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
46099
  } sons
 
46100
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46101
 
 
46102
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46103
; // key, name, bases, members
 
46104
  CTree *obj_decl;
 
46105
 
 
46106
public:
 
46107
  
 
46108
#line 46109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46109
 
 
46110
 
 
46111
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
46112
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
46113
  typedef TResult Result;
 
46114
  typedef TThat   That;
 
46115
  typedef TTarget Target;
 
46116
  enum { ARGS = TArgs::ARGS };
 
46117
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
46118
  static const int JPID = 55;
 
46119
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
46120
  struct Res {
 
46121
    typedef void Type;
 
46122
    typedef void ReferredType;
 
46123
  };
 
46124
 
 
46125
  That *_that;
 
46126
 
 
46127
  inline That *that() {return (That*)_that;}
 
46128
 
 
46129
};
 
46130
 
 
46131
 
 
46132
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46133
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
46134
#line 46135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46135
{
 
46136
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TLE > > > > __TJP;
 
46137
    __TJP tjp;
 
46138
  tjp._that =  (__TJP::That*)this;
 
46139
    this->__exec_old_C1(arg0, arg1, arg2);
 
46140
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
46141
  
 
46142
}
 
46143
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
46144
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46145
{
 
46146
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
46147
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
46148
  }
 
46149
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46150
  static const char *NodeId ();
 
46151
  /** Get the name of the node. Can be compared with NodeId(). */
 
46152
  const char *NodeName () const { return NodeId (); }
 
46153
  /** Get the number of sons. */
 
46154
  int Sons () const { return CTree::Sons (sons, 4); }
 
46155
  /** Get the n-th son.
 
46156
   *  \param n The index of the son.
 
46157
   *  \return The n-th son or NULL. */
 
46158
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
46159
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
46160
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
46161
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
46162
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
46163
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
46164
  void Members (CTree *m) { AddSon (sons[3], m); }
 
46165
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
46166
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
46167
  /** Replace a son.
 
46168
   *  \param old_son The son to replace.
 
46169
   *  \param new_son The new son. */
 
46170
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
46171
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
46172
  }
 
46173
   private:
 
46174
 
 
46175
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
46176
 Puma :: CTree * _intro_members ;
 
46177
Puma :: CTree * _base_intros ;
 
46178
public :
 
46179
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
46180
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
46181
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
46182
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
46183
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46184
 
 
46185
#line 46186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46186
 
 
46187
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
46188
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
46189
  typedef TResult Result;
 
46190
  typedef TThat   That;
 
46191
  typedef TTarget Target;
 
46192
  enum { ARGS = TArgs::ARGS };
 
46193
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
46194
  static const int JPID = 6315;
 
46195
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
46196
  struct Res {
 
46197
    typedef void Type;
 
46198
    typedef void ReferredType;
 
46199
  };
 
46200
 
 
46201
  That *_that;
 
46202
 
 
46203
  inline That *that() {return (That*)_that;}
 
46204
 
 
46205
};
 
46206
 
 
46207
 
 
46208
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46209
 
 
46210
#line 46211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46211
 
 
46212
public:
 
46213
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members), _base_intros (arg0._base_intros) {
 
46214
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
46215
  __TJP tjp;
 
46216
  tjp._that =  (__TJP::That*)this;
 
46217
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
46218
 
 
46219
}
 
46220
 
 
46221
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46222
 
 
46223
#line 46224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46224
 
 
46225
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
46226
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
46227
  typedef TResult Result;
 
46228
  typedef TThat   That;
 
46229
  typedef TTarget Target;
 
46230
  enum { ARGS = TArgs::ARGS };
 
46231
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
46232
  static const int JPID = 6313;
 
46233
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
46234
  struct Res {
 
46235
    typedef void Type;
 
46236
    typedef void ReferredType;
 
46237
  };
 
46238
 
 
46239
  That *_that;
 
46240
 
 
46241
  inline That *that() {return (That*)_that;}
 
46242
 
 
46243
};
 
46244
 
 
46245
 
 
46246
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46247
 
 
46248
#line 46249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46249
 
 
46250
public:
 
46251
inline ~CT_ClassDef () {
 
46252
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
46253
  __TJP tjp;
 
46254
  tjp._that =  (__TJP::That*)this;
 
46255
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
46256
 
 
46257
}
 
46258
 
 
46259
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46260
};
 
46261
      
 
46262
 
 
46263
#line 46264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46264
} // closed Puma
 
46265
class CCExprResolve;
 
46266
class CExprResolve;
 
46267
class WinIfExists;
 
46268
class WinImportHandler;
 
46269
class WinMacros;
 
46270
class WinAsm;
 
46271
class WinDeclSpecs;
 
46272
class WinMemberExplSpec;
 
46273
class WinTypeKeywords;
 
46274
class WinFriend;
 
46275
class ExtAC;
 
46276
class ExtACBuilderCoupling;
 
46277
class ExtACSyntaxCoupling;
 
46278
class ExtACTree;
 
46279
class ExtACKeywords;
 
46280
class ExtGnu;
 
46281
class PragmaOnceUnitState;
 
46282
class PragmaOnce;
 
46283
class CMatchSyntax;
 
46284
namespace Puma {
 
46285
 
 
46286
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46287
class CT_UnionDef : public CT_ClassDef {
 
46288
#line 46289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46289
  friend class ::CCExprResolve;
 
46290
  friend class ::CExprResolve;
 
46291
  friend class ::WinIfExists;
 
46292
  friend class ::WinImportHandler;
 
46293
  friend class ::WinMacros;
 
46294
  friend class ::WinAsm;
 
46295
  friend class ::WinDeclSpecs;
 
46296
  friend class ::WinMemberExplSpec;
 
46297
  friend class ::WinTypeKeywords;
 
46298
  friend class ::WinFriend;
 
46299
  friend class ::ExtAC;
 
46300
  friend class ::ExtACBuilderCoupling;
 
46301
  friend class ::ExtACSyntaxCoupling;
 
46302
  friend class ::ExtACTree;
 
46303
  friend class ::ExtACKeywords;
 
46304
  friend class ::ExtGnu;
 
46305
  friend class ::PragmaOnceUnitState;
 
46306
  friend class ::PragmaOnce;
 
46307
  friend class ::CMatchSyntax;
 
46308
 
 
46309
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46310
 
 
46311
public:
 
46312
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
46313
  static const char *NodeId ();
 
46314
  /** Get the name of the node. Can be compared with NodeId(). */
 
46315
  const char *NodeName () const { return NodeId (); }
 
46316
};
 
46317
      
 
46318
 
 
46319
#line 46320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46320
} // closed Puma
 
46321
class CCExprResolve;
 
46322
class CExprResolve;
 
46323
class WinIfExists;
 
46324
class WinImportHandler;
 
46325
class WinMacros;
 
46326
class WinAsm;
 
46327
class WinDeclSpecs;
 
46328
class WinMemberExplSpec;
 
46329
class WinTypeKeywords;
 
46330
class WinFriend;
 
46331
class ExtAC;
 
46332
class ExtACBuilderCoupling;
 
46333
class ExtACSyntaxCoupling;
 
46334
class ExtACTree;
 
46335
class ExtACKeywords;
 
46336
class ExtGnu;
 
46337
class PragmaOnceUnitState;
 
46338
class PragmaOnce;
 
46339
class CMatchSyntax;
 
46340
namespace Puma {
 
46341
 
 
46342
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46343
class CT_MembList : public CT_DeclList, public CSemScope {
 
46344
#line 46345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46345
  friend class ::CCExprResolve;
 
46346
  friend class ::CExprResolve;
 
46347
  friend class ::WinIfExists;
 
46348
  friend class ::WinImportHandler;
 
46349
  friend class ::WinMacros;
 
46350
  friend class ::WinAsm;
 
46351
  friend class ::WinDeclSpecs;
 
46352
  friend class ::WinMemberExplSpec;
 
46353
  friend class ::WinTypeKeywords;
 
46354
  friend class ::WinFriend;
 
46355
  friend class ::ExtAC;
 
46356
  friend class ::ExtACBuilderCoupling;
 
46357
  friend class ::ExtACSyntaxCoupling;
 
46358
  friend class ::ExtACTree;
 
46359
  friend class ::ExtACKeywords;
 
46360
  friend class ::ExtGnu;
 
46361
  friend class ::PragmaOnceUnitState;
 
46362
  friend class ::PragmaOnce;
 
46363
  friend class ::CMatchSyntax;
 
46364
 
 
46365
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46366
 
 
46367
public:
 
46368
  CT_MembList (int size = 10, int incr = 10) : 
 
46369
    CT_DeclList (size, incr) {}
 
46370
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46371
  static const char *NodeId ();
 
46372
  /** Get the name of the node. Can be compared with NodeId(). */
 
46373
  const char *NodeName () const { return NodeId (); }
 
46374
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
46375
};
 
46376
 
 
46377
 
 
46378
#line 46379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46379
} // closed Puma
 
46380
class CCExprResolve;
 
46381
class CExprResolve;
 
46382
class WinIfExists;
 
46383
class WinImportHandler;
 
46384
class WinMacros;
 
46385
class WinAsm;
 
46386
class WinDeclSpecs;
 
46387
class WinMemberExplSpec;
 
46388
class WinTypeKeywords;
 
46389
class WinFriend;
 
46390
class ExtAC;
 
46391
class ExtACBuilderCoupling;
 
46392
class ExtACSyntaxCoupling;
 
46393
class ExtACTree;
 
46394
class ExtACKeywords;
 
46395
class ExtGnu;
 
46396
class PragmaOnceUnitState;
 
46397
class PragmaOnce;
 
46398
class CMatchSyntax;
 
46399
namespace Puma {
 
46400
 
 
46401
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46402
class CT_MembInitList : public CT_List, public CSemScope {
 
46403
#line 46404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46404
  friend class ::CCExprResolve;
 
46405
  friend class ::CExprResolve;
 
46406
  friend class ::WinIfExists;
 
46407
  friend class ::WinImportHandler;
 
46408
  friend class ::WinMacros;
 
46409
  friend class ::WinAsm;
 
46410
  friend class ::WinDeclSpecs;
 
46411
  friend class ::WinMemberExplSpec;
 
46412
  friend class ::WinTypeKeywords;
 
46413
  friend class ::WinFriend;
 
46414
  friend class ::ExtAC;
 
46415
  friend class ::ExtACBuilderCoupling;
 
46416
  friend class ::ExtACSyntaxCoupling;
 
46417
  friend class ::ExtACTree;
 
46418
  friend class ::ExtACKeywords;
 
46419
  friend class ::ExtGnu;
 
46420
  friend class ::PragmaOnceUnitState;
 
46421
  friend class ::PragmaOnce;
 
46422
  friend class ::CMatchSyntax;
 
46423
 
 
46424
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46425
 
 
46426
public:
 
46427
  CT_MembInitList (int size = 2) : 
 
46428
    CT_List (size, 2, CT_List::OPEN) {}
 
46429
  static const char *NodeId ();
 
46430
  /** Get the name of the node. Can be compared with NodeId(). */
 
46431
  const char *NodeName () const { return NodeId (); }
 
46432
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
46433
};
 
46434
 
 
46435
 
 
46436
#line 46437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46437
} // closed Puma
 
46438
class CCExprResolve;
 
46439
class CExprResolve;
 
46440
class WinIfExists;
 
46441
class WinImportHandler;
 
46442
class WinMacros;
 
46443
class WinAsm;
 
46444
class WinDeclSpecs;
 
46445
class WinMemberExplSpec;
 
46446
class WinTypeKeywords;
 
46447
class WinFriend;
 
46448
class ExtAC;
 
46449
class ExtACBuilderCoupling;
 
46450
class ExtACSyntaxCoupling;
 
46451
class ExtACTree;
 
46452
class ExtACKeywords;
 
46453
class ExtGnu;
 
46454
class PragmaOnceUnitState;
 
46455
class PragmaOnce;
 
46456
class CMatchSyntax;
 
46457
namespace Puma {
 
46458
 
 
46459
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46460
 
 
46461
#line 46462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46462
} // closed Puma
 
46463
 
 
46464
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46465
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46466
#include "CCExprResolveH.ah"
 
46467
#endif
 
46468
namespace Puma {
 
46469
 
 
46470
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46471
 
 
46472
#line 46473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46473
} // closed Puma
 
46474
 
 
46475
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46476
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46477
#include "CExprResolveH.ah"
 
46478
#endif
 
46479
namespace Puma {
 
46480
 
 
46481
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46482
class CT_MembInit : public CT_Expression, public CSemObject {
 
46483
#line 46484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46484
  friend class ::CCExprResolve;
 
46485
  friend class ::CExprResolve;
 
46486
  friend class ::WinIfExists;
 
46487
  friend class ::WinImportHandler;
 
46488
  friend class ::WinMacros;
 
46489
  friend class ::WinAsm;
 
46490
  friend class ::WinDeclSpecs;
 
46491
  friend class ::WinMemberExplSpec;
 
46492
  friend class ::WinTypeKeywords;
 
46493
  friend class ::WinFriend;
 
46494
  friend class ::ExtAC;
 
46495
  friend class ::ExtACBuilderCoupling;
 
46496
  friend class ::ExtACSyntaxCoupling;
 
46497
  friend class ::ExtACTree;
 
46498
  friend class ::ExtACKeywords;
 
46499
  friend class ::ExtGnu;
 
46500
  friend class ::PragmaOnceUnitState;
 
46501
  friend class ::PragmaOnce;
 
46502
  friend class ::CMatchSyntax;
 
46503
 
 
46504
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46505
 
 
46506
  CTree *sons[2]; // name, init
 
46507
 
 
46508
public:
 
46509
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
46510
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46511
  static const char *NodeId ();
 
46512
  /** Get the name of the node. Can be compared with NodeId(). */
 
46513
  const char *NodeName () const { return NodeId (); }
 
46514
  /** Get the number of sons. */
 
46515
  int Sons () const { return 2; }
 
46516
  /** Get the n-th son.
 
46517
   *  \param n The index of the son.
 
46518
   *  \return The n-th son or NULL. */
 
46519
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
46520
  /** Replace a son.
 
46521
   *  \param old_son The son to replace.
 
46522
   *  \param new_son The new son. */
 
46523
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
46524
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
46525
  }
 
46526
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
46527
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
46528
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
46529
   private:
 
46530
  typedef CT_MembInit CCExprResolveExpr;
 
46531
 
 
46532
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46533
 public :
 
46534
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46535
  typedef CT_MembInit CExprResolveExpr;
 
46536
 
 
46537
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46538
 public :
 
46539
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46540
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46541
};
 
46542
 
 
46543
 
 
46544
#line 46545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46545
} // closed Puma
 
46546
class CCExprResolve;
 
46547
class CExprResolve;
 
46548
class WinIfExists;
 
46549
class WinImportHandler;
 
46550
class WinMacros;
 
46551
class WinAsm;
 
46552
class WinDeclSpecs;
 
46553
class WinMemberExplSpec;
 
46554
class WinTypeKeywords;
 
46555
class WinFriend;
 
46556
class ExtAC;
 
46557
class ExtACBuilderCoupling;
 
46558
class ExtACSyntaxCoupling;
 
46559
class ExtACTree;
 
46560
class ExtACKeywords;
 
46561
class ExtGnu;
 
46562
class PragmaOnceUnitState;
 
46563
class PragmaOnce;
 
46564
class CMatchSyntax;
 
46565
namespace Puma {
 
46566
 
 
46567
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46568
class CT_BaseSpecList : public CT_List {
 
46569
#line 46570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46570
  friend class ::CCExprResolve;
 
46571
  friend class ::CExprResolve;
 
46572
  friend class ::WinIfExists;
 
46573
  friend class ::WinImportHandler;
 
46574
  friend class ::WinMacros;
 
46575
  friend class ::WinAsm;
 
46576
  friend class ::WinDeclSpecs;
 
46577
  friend class ::WinMemberExplSpec;
 
46578
  friend class ::WinTypeKeywords;
 
46579
  friend class ::WinFriend;
 
46580
  friend class ::ExtAC;
 
46581
  friend class ::ExtACBuilderCoupling;
 
46582
  friend class ::ExtACSyntaxCoupling;
 
46583
  friend class ::ExtACTree;
 
46584
  friend class ::ExtACKeywords;
 
46585
  friend class ::ExtGnu;
 
46586
  friend class ::PragmaOnceUnitState;
 
46587
  friend class ::PragmaOnce;
 
46588
  friend class ::CMatchSyntax;
 
46589
 
 
46590
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46591
 
 
46592
public:
 
46593
  CT_BaseSpecList (int size = 2) : 
 
46594
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
46595
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46596
  static const char *NodeId ();
 
46597
  /** Get the name of the node. Can be compared with NodeId(). */
 
46598
  const char *NodeName () const { return NodeId (); }
 
46599
};
 
46600
 
 
46601
 
 
46602
#line 46603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46603
} // closed Puma
 
46604
class CCExprResolve;
 
46605
class CExprResolve;
 
46606
class WinIfExists;
 
46607
class WinImportHandler;
 
46608
class WinMacros;
 
46609
class WinAsm;
 
46610
class WinDeclSpecs;
 
46611
class WinMemberExplSpec;
 
46612
class WinTypeKeywords;
 
46613
class WinFriend;
 
46614
class ExtAC;
 
46615
class ExtACBuilderCoupling;
 
46616
class ExtACSyntaxCoupling;
 
46617
class ExtACTree;
 
46618
class ExtACKeywords;
 
46619
class ExtGnu;
 
46620
class PragmaOnceUnitState;
 
46621
class PragmaOnce;
 
46622
class CMatchSyntax;
 
46623
namespace Puma {
 
46624
 
 
46625
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46626
class CT_AccessSpec : public CTree {
 
46627
#line 46628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46628
  friend class ::CCExprResolve;
 
46629
  friend class ::CExprResolve;
 
46630
  friend class ::WinIfExists;
 
46631
  friend class ::WinImportHandler;
 
46632
  friend class ::WinMacros;
 
46633
  friend class ::WinAsm;
 
46634
  friend class ::WinDeclSpecs;
 
46635
  friend class ::WinMemberExplSpec;
 
46636
  friend class ::WinTypeKeywords;
 
46637
  friend class ::WinFriend;
 
46638
  friend class ::ExtAC;
 
46639
  friend class ::ExtACBuilderCoupling;
 
46640
  friend class ::ExtACSyntaxCoupling;
 
46641
  friend class ::ExtACTree;
 
46642
  friend class ::ExtACKeywords;
 
46643
  friend class ::ExtGnu;
 
46644
  friend class ::PragmaOnceUnitState;
 
46645
  friend class ::PragmaOnce;
 
46646
  friend class ::CMatchSyntax;
 
46647
 
 
46648
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46649
 
 
46650
  CTree *sons[2]; // access, colon
 
46651
 
 
46652
public:
 
46653
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
46654
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46655
  static const char *NodeId ();
 
46656
  /** Get the name of the node. Can be compared with NodeId(). */
 
46657
  const char *NodeName () const { return NodeId (); }
 
46658
  /** Get the number of sons. */
 
46659
  int Sons () const { return 2; }
 
46660
  /** Get the n-th son.
 
46661
   *  \param n The index of the son.
 
46662
   *  \return The n-th son or NULL. */
 
46663
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
46664
  int Access () const { return sons[0]->token ()->type (); }
 
46665
  /** Replace a son.
 
46666
   *  \param old_son The son to replace.
 
46667
   *  \param new_son The new son. */
 
46668
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
46669
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
46670
  }
 
46671
};
 
46672
 
 
46673
 
 
46674
#line 46675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46675
} // closed Puma
 
46676
class CCExprResolve;
 
46677
class CExprResolve;
 
46678
class WinIfExists;
 
46679
class WinImportHandler;
 
46680
class WinMacros;
 
46681
class WinAsm;
 
46682
class WinDeclSpecs;
 
46683
class WinMemberExplSpec;
 
46684
class WinTypeKeywords;
 
46685
class WinFriend;
 
46686
class ExtAC;
 
46687
class ExtACBuilderCoupling;
 
46688
class ExtACSyntaxCoupling;
 
46689
class ExtACTree;
 
46690
class ExtACKeywords;
 
46691
class ExtGnu;
 
46692
class PragmaOnceUnitState;
 
46693
class PragmaOnce;
 
46694
class CMatchSyntax;
 
46695
namespace Puma {
 
46696
 
 
46697
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46698
class CT_BaseSpec : public CTree {
 
46699
#line 46700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46700
  friend class ::CCExprResolve;
 
46701
  friend class ::CExprResolve;
 
46702
  friend class ::WinIfExists;
 
46703
  friend class ::WinImportHandler;
 
46704
  friend class ::WinMacros;
 
46705
  friend class ::WinAsm;
 
46706
  friend class ::WinDeclSpecs;
 
46707
  friend class ::WinMemberExplSpec;
 
46708
  friend class ::WinTypeKeywords;
 
46709
  friend class ::WinFriend;
 
46710
  friend class ::ExtAC;
 
46711
  friend class ::ExtACBuilderCoupling;
 
46712
  friend class ::ExtACSyntaxCoupling;
 
46713
  friend class ::ExtACTree;
 
46714
  friend class ::ExtACKeywords;
 
46715
  friend class ::ExtGnu;
 
46716
  friend class ::PragmaOnceUnitState;
 
46717
  friend class ::PragmaOnce;
 
46718
  friend class ::CMatchSyntax;
 
46719
 
 
46720
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46721
 
 
46722
  CTree *sons[3]; // virtual, access, name
 
46723
 
 
46724
public:
 
46725
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
46726
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
46727
  }
 
46728
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46729
  static const char *NodeId ();
 
46730
  /** Get the name of the node. Can be compared with NodeId(). */
 
46731
  const char *NodeName () const { return NodeId (); }
 
46732
  /** Get the number of sons. */
 
46733
  int Sons () const { return CTree::Sons (sons, 3); }
 
46734
  /** Get the n-th son.
 
46735
   *  \param n The index of the son.
 
46736
   *  \return The n-th son or NULL. */
 
46737
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
46738
  int Access () const { return sons[1]->token ()->type (); }
 
46739
  CTree *AccessSpec () const { return sons[1]; }
 
46740
  CTree *Virtual () const { return sons[0]; }
 
46741
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
46742
  /** Replace a son.
 
46743
   *  \param old_son The son to replace.
 
46744
   *  \param new_son The new son. */
 
46745
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
46746
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
46747
  }
 
46748
};
 
46749
 
 
46750
 
 
46751
#line 46752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46752
} // closed Puma
 
46753
class CCExprResolve;
 
46754
class CExprResolve;
 
46755
class WinIfExists;
 
46756
class WinImportHandler;
 
46757
class WinMacros;
 
46758
class WinAsm;
 
46759
class WinDeclSpecs;
 
46760
class WinMemberExplSpec;
 
46761
class WinTypeKeywords;
 
46762
class WinFriend;
 
46763
class ExtAC;
 
46764
class ExtACBuilderCoupling;
 
46765
class ExtACSyntaxCoupling;
 
46766
class ExtACTree;
 
46767
class ExtACKeywords;
 
46768
class ExtGnu;
 
46769
class PragmaOnceUnitState;
 
46770
class PragmaOnce;
 
46771
class CMatchSyntax;
 
46772
namespace Puma {
 
46773
 
 
46774
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46775
class CT_AccessDecl : public CT_Decl {
 
46776
#line 46777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46777
  friend class ::CCExprResolve;
 
46778
  friend class ::CExprResolve;
 
46779
  friend class ::WinIfExists;
 
46780
  friend class ::WinImportHandler;
 
46781
  friend class ::WinMacros;
 
46782
  friend class ::WinAsm;
 
46783
  friend class ::WinDeclSpecs;
 
46784
  friend class ::WinMemberExplSpec;
 
46785
  friend class ::WinTypeKeywords;
 
46786
  friend class ::WinFriend;
 
46787
  friend class ::ExtAC;
 
46788
  friend class ::ExtACBuilderCoupling;
 
46789
  friend class ::ExtACSyntaxCoupling;
 
46790
  friend class ::ExtACTree;
 
46791
  friend class ::ExtACKeywords;
 
46792
  friend class ::ExtGnu;
 
46793
  friend class ::PragmaOnceUnitState;
 
46794
  friend class ::PragmaOnce;
 
46795
  friend class ::CMatchSyntax;
 
46796
 
 
46797
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46798
 
 
46799
  CTree *sons[2]; // name, semi_colon
 
46800
 
 
46801
public:
 
46802
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
46803
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46804
  static const char *NodeId ();
 
46805
  /** Get the name of the node. Can be compared with NodeId(). */
 
46806
  const char *NodeName () const { return NodeId (); }
 
46807
  /** Get the number of sons. */
 
46808
  int Sons () const { return 2; }
 
46809
  /** Get the n-th son.
 
46810
   *  \param n The index of the son.
 
46811
   *  \return The n-th son or NULL. */
 
46812
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
46813
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
46814
  /** Replace a son.
 
46815
   *  \param old_son The son to replace.
 
46816
   *  \param new_son The new son. */
 
46817
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
46818
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
46819
  }
 
46820
};
 
46821
 
 
46822
 
 
46823
#line 46824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46824
} // closed Puma
 
46825
class CCExprResolve;
 
46826
class CExprResolve;
 
46827
class WinIfExists;
 
46828
class WinImportHandler;
 
46829
class WinMacros;
 
46830
class WinAsm;
 
46831
class WinDeclSpecs;
 
46832
class WinMemberExplSpec;
 
46833
class WinTypeKeywords;
 
46834
class WinFriend;
 
46835
class ExtAC;
 
46836
class ExtACBuilderCoupling;
 
46837
class ExtACSyntaxCoupling;
 
46838
class ExtACTree;
 
46839
class ExtACKeywords;
 
46840
class ExtGnu;
 
46841
class PragmaOnceUnitState;
 
46842
class PragmaOnce;
 
46843
class CMatchSyntax;
 
46844
namespace Puma {
 
46845
 
 
46846
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46847
class CT_UsingDecl : public CT_AccessDecl {
 
46848
#line 46849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46849
  friend class ::CCExprResolve;
 
46850
  friend class ::CExprResolve;
 
46851
  friend class ::WinIfExists;
 
46852
  friend class ::WinImportHandler;
 
46853
  friend class ::WinMacros;
 
46854
  friend class ::WinAsm;
 
46855
  friend class ::WinDeclSpecs;
 
46856
  friend class ::WinMemberExplSpec;
 
46857
  friend class ::WinTypeKeywords;
 
46858
  friend class ::WinFriend;
 
46859
  friend class ::ExtAC;
 
46860
  friend class ::ExtACBuilderCoupling;
 
46861
  friend class ::ExtACSyntaxCoupling;
 
46862
  friend class ::ExtACTree;
 
46863
  friend class ::ExtACKeywords;
 
46864
  friend class ::ExtGnu;
 
46865
  friend class ::PragmaOnceUnitState;
 
46866
  friend class ::PragmaOnce;
 
46867
  friend class ::CMatchSyntax;
 
46868
 
 
46869
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46870
 
 
46871
  CTree *sons[2]; // using, typename
 
46872
 
 
46873
public:
 
46874
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
46875
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
46876
  }
 
46877
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
46878
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
46879
  }
 
46880
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46881
  static const char *NodeId ();
 
46882
  /** Get the name of the node. Can be compared with NodeId(). */
 
46883
  const char *NodeName () const { return NodeId (); }
 
46884
  /** Get the number of sons. */
 
46885
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
46886
  /** Get the n-th son.
 
46887
   *  \param n The index of the son.
 
46888
   *  \return The n-th son or NULL. */
 
46889
  CTree *Son (int n) const {
 
46890
    int num = CTree::Sons (sons, 2);
 
46891
    CTree *result = CTree::Son (sons, 2, n);
 
46892
    return result ? result : CT_AccessDecl::Son (n-num);
 
46893
  }
 
46894
  CTree *Typename () const { return sons[1]; }
 
46895
  /** Replace a son.
 
46896
   *  \param old_son The son to replace.
 
46897
   *  \param new_son The new son. */
 
46898
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
46899
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
46900
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
46901
  }
 
46902
};
 
46903
 
 
46904
/*****************************************************************************/
 
46905
/*                                                                           */
 
46906
/*                              Wildcards                                    */
 
46907
/*                                                                           */
 
46908
/*****************************************************************************/
 
46909
 
 
46910
 
 
46911
#line 46912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46912
} // closed Puma
 
46913
class CCExprResolve;
 
46914
class CExprResolve;
 
46915
class WinIfExists;
 
46916
class WinImportHandler;
 
46917
class WinMacros;
 
46918
class WinAsm;
 
46919
class WinDeclSpecs;
 
46920
class WinMemberExplSpec;
 
46921
class WinTypeKeywords;
 
46922
class WinFriend;
 
46923
class ExtAC;
 
46924
class ExtACBuilderCoupling;
 
46925
class ExtACSyntaxCoupling;
 
46926
class ExtACTree;
 
46927
class ExtACKeywords;
 
46928
class ExtGnu;
 
46929
class PragmaOnceUnitState;
 
46930
class PragmaOnce;
 
46931
class CMatchSyntax;
 
46932
namespace Puma {
 
46933
 
 
46934
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46935
class CT_Any : public CTree {
 
46936
#line 46937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46937
  friend class ::CCExprResolve;
 
46938
  friend class ::CExprResolve;
 
46939
  friend class ::WinIfExists;
 
46940
  friend class ::WinImportHandler;
 
46941
  friend class ::WinMacros;
 
46942
  friend class ::WinAsm;
 
46943
  friend class ::WinDeclSpecs;
 
46944
  friend class ::WinMemberExplSpec;
 
46945
  friend class ::WinTypeKeywords;
 
46946
  friend class ::WinFriend;
 
46947
  friend class ::ExtAC;
 
46948
  friend class ::ExtACBuilderCoupling;
 
46949
  friend class ::ExtACSyntaxCoupling;
 
46950
  friend class ::ExtACTree;
 
46951
  friend class ::ExtACKeywords;
 
46952
  friend class ::ExtGnu;
 
46953
  friend class ::PragmaOnceUnitState;
 
46954
  friend class ::PragmaOnce;
 
46955
  friend class ::CMatchSyntax;
 
46956
 
 
46957
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46958
 
 
46959
  CTree *sons[2]; // keyword, extension
 
46960
 
 
46961
public:
 
46962
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
46963
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46964
  static const char *NodeId ();
 
46965
  /** Get the name of the node. Can be compared with NodeId(). */
 
46966
  const char *NodeName () const { return NodeId (); }
 
46967
  /** Get the number of sons. */
 
46968
  int Sons () const { return CTree::Sons (sons, 2); }
 
46969
  /** Get the n-th son.
 
46970
   *  \param n The index of the son.
 
46971
   *  \return The n-th son or NULL. */
 
46972
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
46973
  /** Replace a son.
 
46974
   *  \param old_son The son to replace.
 
46975
   *  \param new_son The new son. */
 
46976
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
46977
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
46978
  }
 
46979
  int AnyType () const { return sons[0]->token ()->type (); }
 
46980
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
46981
};
 
46982
 
 
46983
 
 
46984
#line 46985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
46985
} // closed Puma
 
46986
class CCExprResolve;
 
46987
class CExprResolve;
 
46988
class WinIfExists;
 
46989
class WinImportHandler;
 
46990
class WinMacros;
 
46991
class WinAsm;
 
46992
class WinDeclSpecs;
 
46993
class WinMemberExplSpec;
 
46994
class WinTypeKeywords;
 
46995
class WinFriend;
 
46996
class ExtAC;
 
46997
class ExtACBuilderCoupling;
 
46998
class ExtACSyntaxCoupling;
 
46999
class ExtACTree;
 
47000
class ExtACKeywords;
 
47001
class ExtGnu;
 
47002
class PragmaOnceUnitState;
 
47003
class PragmaOnce;
 
47004
class CMatchSyntax;
 
47005
namespace Puma {
 
47006
 
 
47007
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47008
class CT_AnyList : public CT_Any {
 
47009
#line 47010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47010
  friend class ::CCExprResolve;
 
47011
  friend class ::CExprResolve;
 
47012
  friend class ::WinIfExists;
 
47013
  friend class ::WinImportHandler;
 
47014
  friend class ::WinMacros;
 
47015
  friend class ::WinAsm;
 
47016
  friend class ::WinDeclSpecs;
 
47017
  friend class ::WinMemberExplSpec;
 
47018
  friend class ::WinTypeKeywords;
 
47019
  friend class ::WinFriend;
 
47020
  friend class ::ExtAC;
 
47021
  friend class ::ExtACBuilderCoupling;
 
47022
  friend class ::ExtACSyntaxCoupling;
 
47023
  friend class ::ExtACTree;
 
47024
  friend class ::ExtACKeywords;
 
47025
  friend class ::ExtGnu;
 
47026
  friend class ::PragmaOnceUnitState;
 
47027
  friend class ::PragmaOnce;
 
47028
  friend class ::CMatchSyntax;
 
47029
 
 
47030
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47031
 
 
47032
public:
 
47033
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
47034
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47035
  static const char *NodeId ();
 
47036
  /** Get the name of the node. Can be compared with NodeId(). */
 
47037
  const char *NodeName () const { return NodeId (); }
 
47038
};
 
47039
 
 
47040
 
 
47041
#line 47042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47042
} // closed Puma
 
47043
class CCExprResolve;
 
47044
class CExprResolve;
 
47045
class WinIfExists;
 
47046
class WinImportHandler;
 
47047
class WinMacros;
 
47048
class WinAsm;
 
47049
class WinDeclSpecs;
 
47050
class WinMemberExplSpec;
 
47051
class WinTypeKeywords;
 
47052
class WinFriend;
 
47053
class ExtAC;
 
47054
class ExtACBuilderCoupling;
 
47055
class ExtACSyntaxCoupling;
 
47056
class ExtACTree;
 
47057
class ExtACKeywords;
 
47058
class ExtGnu;
 
47059
class PragmaOnceUnitState;
 
47060
class PragmaOnce;
 
47061
class CMatchSyntax;
 
47062
namespace Puma {
 
47063
 
 
47064
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47065
class CT_AnyExtension : public CTree, public CSemValue {
 
47066
#line 47067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47067
  friend class ::CCExprResolve;
 
47068
  friend class ::CExprResolve;
 
47069
  friend class ::WinIfExists;
 
47070
  friend class ::WinImportHandler;
 
47071
  friend class ::WinMacros;
 
47072
  friend class ::WinAsm;
 
47073
  friend class ::WinDeclSpecs;
 
47074
  friend class ::WinMemberExplSpec;
 
47075
  friend class ::WinTypeKeywords;
 
47076
  friend class ::WinFriend;
 
47077
  friend class ::ExtAC;
 
47078
  friend class ::ExtACBuilderCoupling;
 
47079
  friend class ::ExtACSyntaxCoupling;
 
47080
  friend class ::ExtACTree;
 
47081
  friend class ::ExtACKeywords;
 
47082
  friend class ::ExtGnu;
 
47083
  friend class ::PragmaOnceUnitState;
 
47084
  friend class ::PragmaOnce;
 
47085
  friend class ::CMatchSyntax;
 
47086
 
 
47087
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47088
 
 
47089
  CTree *sons[5]; // open, string, comma, cond, close
 
47090
 
 
47091
public:
 
47092
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
47093
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
47094
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
47095
  }
 
47096
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47097
  static const char *NodeId ();
 
47098
  /** Get the name of the node. Can be compared with NodeId(). */
 
47099
  const char *NodeName () const { return NodeId (); }
 
47100
  /** Get the number of sons. */
 
47101
  int Sons () const { return CTree::Sons (sons, 5); }
 
47102
  /** Get the n-th son.
 
47103
   *  \param n The index of the son.
 
47104
   *  \return The n-th son or NULL. */
 
47105
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
47106
  /** Replace a son.
 
47107
   *  \param old_son The son to replace.
 
47108
   *  \param new_son The new son. */
 
47109
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47110
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
47111
  }
 
47112
  CTree *Condition () const { return sons[3]; }
 
47113
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
47114
  const char *Name () const { 
 
47115
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
47116
 
 
47117
  CExprValue *Value () const { return value; }
 
47118
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
47119
};
 
47120
 
 
47121
 
 
47122
#line 47123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47123
} // closed Puma
 
47124
class CCExprResolve;
 
47125
class CExprResolve;
 
47126
class WinIfExists;
 
47127
class WinImportHandler;
 
47128
class WinMacros;
 
47129
class WinAsm;
 
47130
class WinDeclSpecs;
 
47131
class WinMemberExplSpec;
 
47132
class WinTypeKeywords;
 
47133
class WinFriend;
 
47134
class ExtAC;
 
47135
class ExtACBuilderCoupling;
 
47136
class ExtACSyntaxCoupling;
 
47137
class ExtACTree;
 
47138
class ExtACKeywords;
 
47139
class ExtGnu;
 
47140
class PragmaOnceUnitState;
 
47141
class PragmaOnce;
 
47142
class CMatchSyntax;
 
47143
namespace Puma {
 
47144
 
 
47145
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47146
class CT_AnyCondition : public CTree {
 
47147
#line 47148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47148
  friend class ::CCExprResolve;
 
47149
  friend class ::CExprResolve;
 
47150
  friend class ::WinIfExists;
 
47151
  friend class ::WinImportHandler;
 
47152
  friend class ::WinMacros;
 
47153
  friend class ::WinAsm;
 
47154
  friend class ::WinDeclSpecs;
 
47155
  friend class ::WinMemberExplSpec;
 
47156
  friend class ::WinTypeKeywords;
 
47157
  friend class ::WinFriend;
 
47158
  friend class ::ExtAC;
 
47159
  friend class ::ExtACBuilderCoupling;
 
47160
  friend class ::ExtACSyntaxCoupling;
 
47161
  friend class ::ExtACTree;
 
47162
  friend class ::ExtACKeywords;
 
47163
  friend class ::ExtGnu;
 
47164
  friend class ::PragmaOnceUnitState;
 
47165
  friend class ::PragmaOnce;
 
47166
  friend class ::CMatchSyntax;
 
47167
 
 
47168
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47169
 
 
47170
  CTree *sons[3]; // arg1, arg2, arg3
 
47171
 
 
47172
public:
 
47173
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
47174
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
47175
  }
 
47176
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47177
  static const char *NodeId ();
 
47178
  /** Get the name of the node. Can be compared with NodeId(). */
 
47179
  const char *NodeName () const { return NodeId (); }
 
47180
  /** Get the number of sons. */
 
47181
  int Sons () const { return CTree::Sons (sons, 3); }
 
47182
  /** Get the n-th son.
 
47183
   *  \param n The index of the son.
 
47184
   *  \return The n-th son or NULL. */
 
47185
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
47186
  /** Replace a son.
 
47187
   *  \param old_son The son to replace.
 
47188
   *  \param new_son The new son. */
 
47189
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47190
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
47191
  }
 
47192
};
 
47193
 
 
47194
 
 
47195
} // namespace Puma
 
47196
 
 
47197
#endif /* __CTree_h__ */
 
47198
 
 
47199
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47200
namespace Puma {
 
47201
 
 
47202
 
 
47203
 
 
47204
#line 47205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47205
} // closed Puma
 
47206
class CCExprResolve;
 
47207
class CExprResolve;
 
47208
class WinIfExists;
 
47209
class WinImportHandler;
 
47210
class WinMacros;
 
47211
class WinAsm;
 
47212
class WinDeclSpecs;
 
47213
class WinMemberExplSpec;
 
47214
class WinTypeKeywords;
 
47215
class WinFriend;
 
47216
class ExtAC;
 
47217
class ExtACBuilderCoupling;
 
47218
class ExtACSyntaxCoupling;
 
47219
class ExtACTree;
 
47220
class ExtACKeywords;
 
47221
class ExtGnu;
 
47222
class PragmaOnceUnitState;
 
47223
class PragmaOnce;
 
47224
class CMatchSyntax;
 
47225
namespace Puma {
 
47226
 
 
47227
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47228
class CT_AdviceDecl : public CT_Decl {
 
47229
#line 47230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47230
  friend class ::CCExprResolve;
 
47231
  friend class ::CExprResolve;
 
47232
  friend class ::WinIfExists;
 
47233
  friend class ::WinImportHandler;
 
47234
  friend class ::WinMacros;
 
47235
  friend class ::WinAsm;
 
47236
  friend class ::WinDeclSpecs;
 
47237
  friend class ::WinMemberExplSpec;
 
47238
  friend class ::WinTypeKeywords;
 
47239
  friend class ::WinFriend;
 
47240
  friend class ::ExtAC;
 
47241
  friend class ::ExtACBuilderCoupling;
 
47242
  friend class ::ExtACSyntaxCoupling;
 
47243
  friend class ::ExtACTree;
 
47244
  friend class ::ExtACKeywords;
 
47245
  friend class ::ExtGnu;
 
47246
  friend class ::PragmaOnceUnitState;
 
47247
  friend class ::PragmaOnce;
 
47248
  friend class ::CMatchSyntax;
 
47249
 
 
47250
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47251
 
 
47252
  CTree *_advice;    // CT_Token
 
47253
  CTree *_pointcut;
 
47254
  CTree *_colon;     // CT_Token
 
47255
  CTree *_decl;
 
47256
 
 
47257
public:
 
47258
  CT_AdviceDecl (CTree *a, CTree *p, CTree *c, CTree *d) : 
 
47259
    _advice (a), _pointcut (p), _colon (c), _decl (d) {}
 
47260
  static const char *NodeId ();
 
47261
  const char *NodeName () const { return NodeId (); }
 
47262
  int Sons () const { return 4; }
 
47263
  CTree *Son (int n) const { 
 
47264
    switch (n) { 
 
47265
      case 0: return _advice;
 
47266
      case 1: return _pointcut;
 
47267
      case 2: return _colon;
 
47268
      case 3: return _decl;
 
47269
      default: return (CTree*)0;
 
47270
    }
 
47271
  }
 
47272
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47273
    if (old_son == _decl) _decl = new_son; 
 
47274
    else if (old_son == _pointcut) _pointcut = new_son; 
 
47275
    else if (old_son == _advice) _advice = new_son; 
 
47276
    else if (old_son == _colon) _colon = new_son; 
 
47277
  }
 
47278
  CTree *Pointcut () const { return _pointcut; }
 
47279
  CTree *Decl () const { return _decl; }
 
47280
};
 
47281
 
 
47282
 
 
47283
#line 47284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47284
} // closed Puma
 
47285
class CCExprResolve;
 
47286
class CExprResolve;
 
47287
class WinIfExists;
 
47288
class WinImportHandler;
 
47289
class WinMacros;
 
47290
class WinAsm;
 
47291
class WinDeclSpecs;
 
47292
class WinMemberExplSpec;
 
47293
class WinTypeKeywords;
 
47294
class WinFriend;
 
47295
class ExtAC;
 
47296
class ExtACBuilderCoupling;
 
47297
class ExtACSyntaxCoupling;
 
47298
class ExtACTree;
 
47299
class ExtACKeywords;
 
47300
class ExtGnu;
 
47301
class PragmaOnceUnitState;
 
47302
class PragmaOnce;
 
47303
class CMatchSyntax;
 
47304
namespace Puma {
 
47305
 
 
47306
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47307
class CT_OrderList : public CT_List {
 
47308
#line 47309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47309
  friend class ::CCExprResolve;
 
47310
  friend class ::CExprResolve;
 
47311
  friend class ::WinIfExists;
 
47312
  friend class ::WinImportHandler;
 
47313
  friend class ::WinMacros;
 
47314
  friend class ::WinAsm;
 
47315
  friend class ::WinDeclSpecs;
 
47316
  friend class ::WinMemberExplSpec;
 
47317
  friend class ::WinTypeKeywords;
 
47318
  friend class ::WinFriend;
 
47319
  friend class ::ExtAC;
 
47320
  friend class ::ExtACBuilderCoupling;
 
47321
  friend class ::ExtACSyntaxCoupling;
 
47322
  friend class ::ExtACTree;
 
47323
  friend class ::ExtACKeywords;
 
47324
  friend class ::ExtGnu;
 
47325
  friend class ::PragmaOnceUnitState;
 
47326
  friend class ::PragmaOnce;
 
47327
  friend class ::CMatchSyntax;
 
47328
 
 
47329
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47330
 
 
47331
public:
 
47332
  CT_OrderList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
47333
  static const char *NodeId ();
 
47334
  const char *NodeName () const { return NodeId (); }
 
47335
};
 
47336
 
 
47337
 
 
47338
#line 47339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47339
} // closed Puma
 
47340
class CCExprResolve;
 
47341
class CExprResolve;
 
47342
class WinIfExists;
 
47343
class WinImportHandler;
 
47344
class WinMacros;
 
47345
class WinAsm;
 
47346
class WinDeclSpecs;
 
47347
class WinMemberExplSpec;
 
47348
class WinTypeKeywords;
 
47349
class WinFriend;
 
47350
class ExtAC;
 
47351
class ExtACBuilderCoupling;
 
47352
class ExtACSyntaxCoupling;
 
47353
class ExtACTree;
 
47354
class ExtACKeywords;
 
47355
class ExtGnu;
 
47356
class PragmaOnceUnitState;
 
47357
class PragmaOnce;
 
47358
class CMatchSyntax;
 
47359
namespace Puma {
 
47360
 
 
47361
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47362
class CT_OrderDecl : public CTree {
 
47363
#line 47364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47364
  friend class ::CCExprResolve;
 
47365
  friend class ::CExprResolve;
 
47366
  friend class ::WinIfExists;
 
47367
  friend class ::WinImportHandler;
 
47368
  friend class ::WinMacros;
 
47369
  friend class ::WinAsm;
 
47370
  friend class ::WinDeclSpecs;
 
47371
  friend class ::WinMemberExplSpec;
 
47372
  friend class ::WinTypeKeywords;
 
47373
  friend class ::WinFriend;
 
47374
  friend class ::ExtAC;
 
47375
  friend class ::ExtACBuilderCoupling;
 
47376
  friend class ::ExtACSyntaxCoupling;
 
47377
  friend class ::ExtACTree;
 
47378
  friend class ::ExtACKeywords;
 
47379
  friend class ::ExtGnu;
 
47380
  friend class ::PragmaOnceUnitState;
 
47381
  friend class ::PragmaOnce;
 
47382
  friend class ::CMatchSyntax;
 
47383
 
 
47384
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47385
 
 
47386
  CTree *_order;
 
47387
  CTree *_order_list;
 
47388
  CTree *_semi_colon;
 
47389
public:
 
47390
  CT_OrderDecl (CTree *o, CTree *ol, CTree *s) :
 
47391
    _order (o), _order_list (ol), _semi_colon (s) {}
 
47392
  static const char *NodeId ();
 
47393
  const char *NodeName () const { return NodeId (); }
 
47394
  int Sons () const { return 3; }
 
47395
  CTree *Son (int n) const { 
 
47396
    switch (n) { 
 
47397
      case 0: return _order;
 
47398
      case 1: return _order_list;
 
47399
      case 2: return _semi_colon;
 
47400
      default: return (CTree*)0;
 
47401
    }
 
47402
  }
 
47403
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47404
    if (old_son == _order) _order = new_son; 
 
47405
    else if (old_son == _order_list) _order_list = new_son; 
 
47406
    else if (old_son == _semi_colon) _semi_colon = new_son; 
 
47407
  }
 
47408
  CT_OrderList *OrderList () const { return (CT_OrderList*)_order_list; }
 
47409
};
 
47410
 
 
47411
 
 
47412
#line 47413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47413
} // closed Puma
 
47414
class CCExprResolve;
 
47415
class CExprResolve;
 
47416
class WinIfExists;
 
47417
class WinImportHandler;
 
47418
class WinMacros;
 
47419
class WinAsm;
 
47420
class WinDeclSpecs;
 
47421
class WinMemberExplSpec;
 
47422
class WinTypeKeywords;
 
47423
class WinFriend;
 
47424
class ExtAC;
 
47425
class ExtACBuilderCoupling;
 
47426
class ExtACSyntaxCoupling;
 
47427
class ExtACTree;
 
47428
class ExtACKeywords;
 
47429
class ExtGnu;
 
47430
class PragmaOnceUnitState;
 
47431
class PragmaOnce;
 
47432
class CMatchSyntax;
 
47433
namespace Puma {
 
47434
 
 
47435
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47436
class CT_PointcutDecl : public CT_Decl {
 
47437
#line 47438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47438
  friend class ::CCExprResolve;
 
47439
  friend class ::CExprResolve;
 
47440
  friend class ::WinIfExists;
 
47441
  friend class ::WinImportHandler;
 
47442
  friend class ::WinMacros;
 
47443
  friend class ::WinAsm;
 
47444
  friend class ::WinDeclSpecs;
 
47445
  friend class ::WinMemberExplSpec;
 
47446
  friend class ::WinTypeKeywords;
 
47447
  friend class ::WinFriend;
 
47448
  friend class ::ExtAC;
 
47449
  friend class ::ExtACBuilderCoupling;
 
47450
  friend class ::ExtACSyntaxCoupling;
 
47451
  friend class ::ExtACTree;
 
47452
  friend class ::ExtACKeywords;
 
47453
  friend class ::ExtGnu;
 
47454
  friend class ::PragmaOnceUnitState;
 
47455
  friend class ::PragmaOnce;
 
47456
  friend class ::CMatchSyntax;
 
47457
 
 
47458
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47459
 
 
47460
  CTree *_pointcut;    // CT_Token
 
47461
  CTree *_decl;
 
47462
 
 
47463
public:
 
47464
  CT_PointcutDecl (CTree *p, CTree *d) : _pointcut (p), _decl (d) {}
 
47465
  static const char *NodeId ();
 
47466
  const char *NodeName () const { return NodeId (); }
 
47467
  int Sons () const { return 2; }
 
47468
  CTree *Son (int n) const { 
 
47469
    switch (n) { 
 
47470
      case 0: return _pointcut;
 
47471
      case 1: return _decl;
 
47472
      default: return (CTree*)0;
 
47473
    }
 
47474
  }
 
47475
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47476
    if (old_son == _decl) _decl = new_son; 
 
47477
    else if (old_son == _pointcut) _pointcut = new_son; 
 
47478
  }
 
47479
  CTree *Decl () const { return _decl; }
 
47480
};
 
47481
 
 
47482
 
 
47483
#line 47484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47484
} // closed Puma
 
47485
class CCExprResolve;
 
47486
class CExprResolve;
 
47487
class WinIfExists;
 
47488
class WinImportHandler;
 
47489
class WinMacros;
 
47490
class WinAsm;
 
47491
class WinDeclSpecs;
 
47492
class WinMemberExplSpec;
 
47493
class WinTypeKeywords;
 
47494
class WinFriend;
 
47495
class ExtAC;
 
47496
class ExtACBuilderCoupling;
 
47497
class ExtACSyntaxCoupling;
 
47498
class ExtACTree;
 
47499
class ExtACKeywords;
 
47500
class ExtGnu;
 
47501
class PragmaOnceUnitState;
 
47502
class PragmaOnce;
 
47503
class CMatchSyntax;
 
47504
namespace Puma {
 
47505
 
 
47506
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47507
class CT_Intro : public CT_List, public CSemScope {
 
47508
#line 47509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47509
  friend class ::CCExprResolve;
 
47510
  friend class ::CExprResolve;
 
47511
  friend class ::WinIfExists;
 
47512
  friend class ::WinImportHandler;
 
47513
  friend class ::WinMacros;
 
47514
  friend class ::WinAsm;
 
47515
  friend class ::WinDeclSpecs;
 
47516
  friend class ::WinMemberExplSpec;
 
47517
  friend class ::WinTypeKeywords;
 
47518
  friend class ::WinFriend;
 
47519
  friend class ::ExtAC;
 
47520
  friend class ::ExtACBuilderCoupling;
 
47521
  friend class ::ExtACSyntaxCoupling;
 
47522
  friend class ::ExtACTree;
 
47523
  friend class ::ExtACKeywords;
 
47524
  friend class ::ExtGnu;
 
47525
  friend class ::PragmaOnceUnitState;
 
47526
  friend class ::PragmaOnce;
 
47527
  friend class ::CMatchSyntax;
 
47528
 
 
47529
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47530
 
 
47531
  // indices of aspect or slice names in introduction
 
47532
  Array<int> _name_indices;    // start index
 
47533
  Array<int> _name_to_indices; // end index
 
47534
  Array<bool> _name_qual;      // true if the token should be replaced by a
 
47535
                               // qualified name
 
47536
public:
 
47537
  static const char *NodeId ();
 
47538
  const char *NodeName () const { return NodeId (); }
 
47539
  void AddNameIndex (int index) {
 
47540
    _name_indices.append (index);
 
47541
    _name_to_indices.append (index);
 
47542
    _name_qual.append (false);
 
47543
  }
 
47544
  void AddNameIndex (int index_from, int index_to) {
 
47545
    _name_indices.append (index_from);
 
47546
    _name_to_indices.append (index_to);
 
47547
    _name_qual.append (true);
 
47548
  }
 
47549
  void RollbackNameIndex (int pos) {
 
47550
    for (int i = NameIndices () - 1; i >= 0; i--) {
 
47551
      if (NameIndex (i) >= pos) {
 
47552
        _name_indices.remove (i);
 
47553
        _name_to_indices.remove (i);
 
47554
        _name_qual.remove (i);
 
47555
      }
 
47556
      else
 
47557
        break;
 
47558
    }
 
47559
  }
 
47560
  int NameIndices () const { return _name_indices.length (); }
 
47561
  int NameIndex (int i) const { return _name_indices.lookup (i); }
 
47562
  int NameToIndex (int i) const { return _name_to_indices.lookup (i); }
 
47563
  bool NameQual (int i) const { return _name_qual.lookup (i); }
 
47564
};
 
47565
 
 
47566
 
 
47567
#line 47568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47568
} // closed Puma
 
47569
class CCExprResolve;
 
47570
class CExprResolve;
 
47571
class WinIfExists;
 
47572
class WinImportHandler;
 
47573
class WinMacros;
 
47574
class WinAsm;
 
47575
class WinDeclSpecs;
 
47576
class WinMemberExplSpec;
 
47577
class WinTypeKeywords;
 
47578
class WinFriend;
 
47579
class ExtAC;
 
47580
class ExtACBuilderCoupling;
 
47581
class ExtACSyntaxCoupling;
 
47582
class ExtACTree;
 
47583
class ExtACKeywords;
 
47584
class ExtGnu;
 
47585
class PragmaOnceUnitState;
 
47586
class PragmaOnce;
 
47587
class CMatchSyntax;
 
47588
namespace Puma {
 
47589
 
 
47590
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47591
class CT_ClassSliceDecl : public CTree, public CSemObject {
 
47592
#line 47593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47593
  friend class ::CCExprResolve;
 
47594
  friend class ::CExprResolve;
 
47595
  friend class ::WinIfExists;
 
47596
  friend class ::WinImportHandler;
 
47597
  friend class ::WinMacros;
 
47598
  friend class ::WinAsm;
 
47599
  friend class ::WinDeclSpecs;
 
47600
  friend class ::WinMemberExplSpec;
 
47601
  friend class ::WinTypeKeywords;
 
47602
  friend class ::WinFriend;
 
47603
  friend class ::ExtAC;
 
47604
  friend class ::ExtACBuilderCoupling;
 
47605
  friend class ::ExtACSyntaxCoupling;
 
47606
  friend class ::ExtACTree;
 
47607
  friend class ::ExtACKeywords;
 
47608
  friend class ::ExtGnu;
 
47609
  friend class ::PragmaOnceUnitState;
 
47610
  friend class ::PragmaOnce;
 
47611
  friend class ::CMatchSyntax;
 
47612
 
 
47613
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47614
 
 
47615
  CTree *sons[6]; // SLICE? <key>? <name>? <baseclasses>? <members> ;
 
47616
public:
 
47617
  CT_ClassSliceDecl (CTree *sl, CTree *k, CTree *n, CTree *b, CTree *m, CTree *se) {
 
47618
    sons[0] = sl; sons[1] = k; sons[2] = n; sons[3] = b; sons[4] = m; sons[5] = se;
 
47619
  }
 
47620
  static const char *NodeId ();
 
47621
  const char *NodeName () const { return NodeId (); }
 
47622
  int Sons () const { return CTree::Sons (sons, 6); }
 
47623
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
47624
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47625
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
47626
  }
 
47627
  CT_Token *key () const { return (CT_Token*)sons[1]; }
 
47628
  CT_SimpleName *name () const { return (CT_SimpleName*)sons[2]; }
 
47629
  CT_Intro *base_clause () const { return (CT_Intro*)sons[3]; }
 
47630
  CT_Intro *members () const { return (CT_Intro*)sons[4]; }
 
47631
};
 
47632
 
 
47633
 
 
47634
#line 47635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47635
} // closed Puma
 
47636
class CCExprResolve;
 
47637
class CExprResolve;
 
47638
class WinIfExists;
 
47639
class WinImportHandler;
 
47640
class WinMacros;
 
47641
class WinAsm;
 
47642
class WinDeclSpecs;
 
47643
class WinMemberExplSpec;
 
47644
class WinTypeKeywords;
 
47645
class WinFriend;
 
47646
class ExtAC;
 
47647
class ExtACBuilderCoupling;
 
47648
class ExtACSyntaxCoupling;
 
47649
class ExtACTree;
 
47650
class ExtACKeywords;
 
47651
class ExtGnu;
 
47652
class PragmaOnceUnitState;
 
47653
class PragmaOnce;
 
47654
class CMatchSyntax;
 
47655
namespace Puma {
 
47656
 
 
47657
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47658
class CT_SliceRef : public CTree {
 
47659
#line 47660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47660
  friend class ::CCExprResolve;
 
47661
  friend class ::CExprResolve;
 
47662
  friend class ::WinIfExists;
 
47663
  friend class ::WinImportHandler;
 
47664
  friend class ::WinMacros;
 
47665
  friend class ::WinAsm;
 
47666
  friend class ::WinDeclSpecs;
 
47667
  friend class ::WinMemberExplSpec;
 
47668
  friend class ::WinTypeKeywords;
 
47669
  friend class ::WinFriend;
 
47670
  friend class ::ExtAC;
 
47671
  friend class ::ExtACBuilderCoupling;
 
47672
  friend class ::ExtACSyntaxCoupling;
 
47673
  friend class ::ExtACTree;
 
47674
  friend class ::ExtACKeywords;
 
47675
  friend class ::ExtGnu;
 
47676
  friend class ::PragmaOnceUnitState;
 
47677
  friend class ::PragmaOnce;
 
47678
  friend class ::CMatchSyntax;
 
47679
 
 
47680
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
47681
 
 
47682
  CTree *sons[3];
 
47683
public:
 
47684
  CT_SliceRef (CTree *sl, CTree *n, CTree *se) {
 
47685
    sons[0] = sl; sons[1] = n; sons[2] = se;
 
47686
  }
 
47687
  static const char *NodeId ();
 
47688
  const char *NodeName () const { return NodeId (); }
 
47689
  int Sons () const { return 3; }
 
47690
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
47691
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47692
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
47693
  }
 
47694
  CT_SimpleName *name () const { return (CT_SimpleName*)sons[1]; }
 
47695
};
 
47696
 
 
47697
 
 
47698
} // namespace Puma
 
47699
 
 
47700
#endif /* __ACTree_h__ */
 
47701
 
 
47702
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
47703
// This file is part of PUMA.
 
47704
// Copyright (C) 1999-2003  The PUMA developer team.
 
47705
//                                                                
 
47706
// This program is free software;  you can redistribute it and/or 
 
47707
// modify it under the terms of the GNU General Public License as 
 
47708
// published by the Free Software Foundation; either version 2 of 
 
47709
// the License, or (at your option) any later version.            
 
47710
//                                                                
 
47711
// This program is distributed in the hope that it will be useful,
 
47712
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
47713
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
47714
// GNU General Public License for more details.                   
 
47715
//                                                                
 
47716
// You should have received a copy of the GNU General Public      
 
47717
// License along with this program; if not, write to the Free     
 
47718
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
47719
// MA  02111-1307  USA                                            
 
47720
 
 
47721
#ifndef __ACClassDatabase_h__
 
47722
#define __ACClassDatabase_h__
 
47723
 
 
47724
// #include "Puma/CClassDatabase.h"
 
47725
 
 
47726
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
47727
using std::ostream;
 
47728
using std::endl;
 
47729
 
 
47730
namespace Puma {
 
47731
 
 
47732
 
 
47733
class ACAspectInfo;
 
47734
class ACPointcutInfo;
 
47735
class ACSliceInfo;
 
47736
class CObjectInfo;
 
47737
class CFunctionInfo;
 
47738
class CClassInfo;
 
47739
 
 
47740
/** \file 
 
47741
 *  AspectC++ specific class database. This is a database of all
 
47742
 *  aspect and pointcut info objects.
 
47743
 *  \see Puma::ACClassDatabase */
 
47744
 
 
47745
/** \class ACClassDatabase ACClassDatabase.h Puma/infos/acinfos/ACClassDatabase.h
 
47746
 *  An ACClassDatabase object is an AspectC++ specific database of all  
 
47747
 *  aspect, slice, and pointcut info objects. */
 
47748
 
 
47749
#line 47750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47750
} // closed Puma
 
47751
class CCExprResolve;
 
47752
class CExprResolve;
 
47753
class WinIfExists;
 
47754
class WinImportHandler;
 
47755
class WinMacros;
 
47756
class WinAsm;
 
47757
class WinDeclSpecs;
 
47758
class WinMemberExplSpec;
 
47759
class WinTypeKeywords;
 
47760
class WinFriend;
 
47761
class ExtAC;
 
47762
class ExtACBuilderCoupling;
 
47763
class ExtACSyntaxCoupling;
 
47764
class ExtACTree;
 
47765
class ExtACKeywords;
 
47766
class ExtGnu;
 
47767
class PragmaOnceUnitState;
 
47768
class PragmaOnce;
 
47769
class CMatchSyntax;
 
47770
namespace Puma {
 
47771
 
 
47772
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
47773
class ACClassDatabase {
 
47774
#line 47775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
47775
  friend class ::CCExprResolve;
 
47776
  friend class ::CExprResolve;
 
47777
  friend class ::WinIfExists;
 
47778
  friend class ::WinImportHandler;
 
47779
  friend class ::WinMacros;
 
47780
  friend class ::WinAsm;
 
47781
  friend class ::WinDeclSpecs;
 
47782
  friend class ::WinMemberExplSpec;
 
47783
  friend class ::WinTypeKeywords;
 
47784
  friend class ::WinFriend;
 
47785
  friend class ::ExtAC;
 
47786
  friend class ::ExtACBuilderCoupling;
 
47787
  friend class ::ExtACSyntaxCoupling;
 
47788
  friend class ::ExtACTree;
 
47789
  friend class ::ExtACKeywords;
 
47790
  friend class ::ExtGnu;
 
47791
  friend class ::PragmaOnceUnitState;
 
47792
  friend class ::PragmaOnce;
 
47793
  friend class ::CMatchSyntax;
 
47794
 
 
47795
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
47796
 
 
47797
  Array<ACAspectInfo*>   _aspect;   // index of aspects
 
47798
  Array<ACPointcutInfo*> _pointcut; // index of pointcuts
 
47799
  Array<ACSliceInfo*>    _slice;    // index of slices
 
47800
 
 
47801
  void clear (); // release all allocated heap objects
 
47802
  
 
47803
public:
 
47804
  /** Destruct the database. Destroys all aspect and pointcut infos
 
47805
   *  in the database. */
 
47806
  virtual ~ACClassDatabase ();
 
47807
 
 
47808
  // access to the database entries /////////////////////////////
 
47809
  
 
47810
  /** Get the number of aspect infos in the database. */
 
47811
  int AspectInfos () const { return _aspect.length (); }
 
47812
  /** Get the n-th aspect info. 
 
47813
   *  \param n The number of the aspect info.
 
47814
   *  \return The aspect info or \c NULL if \e n is invalid. */
 
47815
  ACAspectInfo *AspectInfo (int n) const { return _aspect.lookup (n); }
 
47816
  /** Get the info of the aspect with the given name.
 
47817
   *  \param n The name of the aspect. 
 
47818
   *  \return The aspect info or \c NULL if there is no aspect with that name. */
 
47819
  ACAspectInfo *AspectInfo (const char *n) const;
 
47820
  /** Get the aspect info according to the given class info. 
 
47821
   *  \param ci The class info of the aspect. 
 
47822
   *  \return The aspect info or \c NULL if no matching aspect was found. */
 
47823
  ACAspectInfo *AspectInfo (CClassInfo *ci) const;
 
47824
  /** Get the number of pointcut infos in the database. */
 
47825
  int PointcutInfos () const { return _pointcut.length (); }
 
47826
  /** Get the n-th pointcut info. 
 
47827
   *  \param n The number of the pointcut info.
 
47828
   *  \return The pointcut info or \c NULL if \e n is invalid. */
 
47829
  ACPointcutInfo *PointcutInfo (int n) const { return _pointcut.lookup (n); }
 
47830
  /** Get the pointcut info according to the given function info. 
 
47831
   *  \param fi The function info of the pointcut. 
 
47832
   *  \return The pointcut info or \c NULL if no matching pointcut was found. */
 
47833
  ACPointcutInfo *PointcutInfo (CFunctionInfo* fi) const;
 
47834
  /** Get the number of slice infos in the database. */
 
47835
  int SliceInfos () const { return _slice.length (); }
 
47836
  /** Get the n-th slice info. 
 
47837
   *  \param n The number of the slice info.
 
47838
   *  \return The slice info or \c NULL if \e n is invalid. */
 
47839
  ACSliceInfo *SliceInfo (int n) const { return _slice.lookup (n); }
 
47840
  /** Get the slice info that is represented by the given object info.
 
47841
   *  \param oi The object info of the slice. 
 
47842
   *  \return The slice info or \c NULL if no matching slice was found. */
 
47843
  ACSliceInfo *SliceInfo (CObjectInfo* oi) const;
 
47844
  
 
47845
public:
 
47846
  // Administration /////////////////////////////////////////////
 
47847
 
 
47848
  /** Create a new aspect info from the given class info.
 
47849
   *  The info is added to the database.
 
47850
   *  \param ci The class info. */
 
47851
  ACAspectInfo *new_aspect (CClassInfo *ci);
 
47852
  /** Create a new pointcut info from the given function info.
 
47853
   *  The info is added to the database.
 
47854
   *  \param ci The function info. */
 
47855
  ACPointcutInfo *new_pointcut (CFunctionInfo *fi);
 
47856
  /** Create a new slice info from the given object info.
 
47857
   *  The info is added to the database.
 
47858
   *  \param oi The object info. */
 
47859
  ACSliceInfo *new_slice (CObjectInfo *oi);
 
47860
 
 
47861
  /** Dump the contents of the database. 
 
47862
   *  \param out The output stream to dump to. 
 
47863
   *  \param level The output level (not yet used). */
 
47864
  void Dump (ostream &out, int level = 0) const;
 
47865
};
 
47866
 
 
47867
inline ACClassDatabase::~ACClassDatabase () {
 
47868
  clear ();
 
47869
}
 
47870
 
 
47871
} // namespace Puma
 
47872
 
 
47873
#endif /* __ACClassDatabase_h__ */
 
47874
 
 
47875
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
47876
// This file is part of PUMA.
 
47877
// Copyright (C) 1999-2003  The PUMA developer team.
 
47878
//                                                                
 
47879
// This program is free software;  you can redistribute it and/or 
 
47880
// modify it under the terms of the GNU General Public License as 
 
47881
// published by the Free Software Foundation; either version 2 of 
 
47882
// the License, or (at your option) any later version.            
 
47883
//                                                                
 
47884
// This program is distributed in the hope that it will be useful,
 
47885
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
47886
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
47887
// GNU General Public License for more details.                   
 
47888
//                                                                
 
47889
// You should have received a copy of the GNU General Public      
 
47890
// License along with this program; if not, write to the Free     
 
47891
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
47892
// MA  02111-1307  USA                                            
 
47893
 
 
47894
#ifndef __ACAspectInfo_h__
 
47895
#define __ACAspectInfo_h__
 
47896
 
 
47897
#include <set>
 
47898
using std::set;
 
47899
 
 
47900
 
 
47901
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
47902
// This file is part of PUMA.
 
47903
// Copyright (C) 1999-2003  The PUMA developer team.
 
47904
//                                                                
 
47905
// This program is free software;  you can redistribute it and/or 
 
47906
// modify it under the terms of the GNU General Public License as 
 
47907
// published by the Free Software Foundation; either version 2 of 
 
47908
// the License, or (at your option) any later version.            
 
47909
//                                                                
 
47910
// This program is distributed in the hope that it will be useful,
 
47911
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
47912
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
47913
// GNU General Public License for more details.                   
 
47914
//                                                                
 
47915
// You should have received a copy of the GNU General Public      
 
47916
// License along with this program; if not, write to the Free     
 
47917
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
47918
// MA  02111-1307  USA                                            
 
47919
 
 
47920
#ifndef __CClassInfo_h__
 
47921
#define __CClassInfo_h__
 
47922
 
 
47923
// class/struct info 
 
47924
// knows its base and derived classes
 
47925
 
 
47926
 
 
47927
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
47928
// This file is part of PUMA.
 
47929
// Copyright (C) 1999-2003  The PUMA developer team.
 
47930
//                                                                
 
47931
// This program is free software;  you can redistribute it and/or 
 
47932
// modify it under the terms of the GNU General Public License as 
 
47933
// published by the Free Software Foundation; either version 2 of 
 
47934
// the License, or (at your option) any later version.            
 
47935
//                                                                
 
47936
// This program is distributed in the hope that it will be useful,
 
47937
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
47938
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
47939
// GNU General Public License for more details.                   
 
47940
//                                                                
 
47941
// You should have received a copy of the GNU General Public      
 
47942
// License along with this program; if not, write to the Free     
 
47943
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
47944
// MA  02111-1307  USA                                            
 
47945
 
 
47946
#ifndef __CRecord_h__
 
47947
#define __CRecord_h__
 
47948
 
 
47949
// base class of class and union infos
 
47950
 
 
47951
 
 
47952
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
47953
// This file is part of PUMA.
 
47954
// Copyright (C) 1999-2003  The PUMA developer team.
 
47955
//                                                                
 
47956
// This program is free software;  you can redistribute it and/or 
 
47957
// modify it under the terms of the GNU General Public License as 
 
47958
// published by the Free Software Foundation; either version 2 of 
 
47959
// the License, or (at your option) any later version.            
 
47960
//                                                                
 
47961
// This program is distributed in the hope that it will be useful,
 
47962
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
47963
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
47964
// GNU General Public License for more details.                   
 
47965
//                                                                
 
47966
// You should have received a copy of the GNU General Public      
 
47967
// License along with this program; if not, write to the Free     
 
47968
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
47969
// MA  02111-1307  USA                                            
 
47970
 
 
47971
#ifndef __CStructure_h__
 
47972
#define __CStructure_h__
 
47973
 
 
47974
// base class of everything that also is a scope
 
47975
// (function, class, union, namespace...)
 
47976
// stores semantic info objects for variables, 
 
47977
// enumerators, function and template parameters,
 
47978
// typedefs, classes, unions, enumerations, 
 
47979
// namespaces, using-directives, friend function 
 
47980
// declarations, functions, class methods, class 
 
47981
// data members, function and class templates,
 
47982
// function and class template instances, member 
 
47983
// aliases
 
47984
 
 
47985
 
 
47986
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
35711
47987
#ifndef __puma
35712
47988
 
35713
47989
#include <map>
35734
48010
class CMemberAliasInfo;
35735
48011
 
35736
48012
 
35737
 
#line 35738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48013
#line 48014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
35738
48014
} // closed Puma
 
48015
class CCExprResolve;
 
48016
class CExprResolve;
35739
48017
class WinIfExists;
35740
48018
class WinImportHandler;
35741
48019
class WinMacros;
35742
 
class CMatchSyntax;
35743
 
class ExtGnu;
 
48020
class WinAsm;
 
48021
class WinDeclSpecs;
 
48022
class WinMemberExplSpec;
 
48023
class WinTypeKeywords;
 
48024
class WinFriend;
35744
48025
class ExtAC;
35745
48026
class ExtACBuilderCoupling;
35746
48027
class ExtACSyntaxCoupling;
35747
48028
class ExtACTree;
35748
48029
class ExtACKeywords;
35749
 
class WinAsm;
35750
 
class WinDeclSpecs;
35751
 
class WinMemberExplSpec;
35752
 
class WinTypeKeywords;
 
48030
class ExtGnu;
35753
48031
class PragmaOnceUnitState;
35754
48032
class PragmaOnce;
35755
 
class CCExprResolve;
35756
 
class CExprResolve;
 
48033
class CMatchSyntax;
35757
48034
namespace Puma {
35758
48035
 
35759
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
48036
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
35760
48037
class CStructure : public CScopeInfo {
35761
 
#line 35762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48038
#line 48039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
48039
  friend class ::CCExprResolve;
 
48040
  friend class ::CExprResolve;
35762
48041
  friend class ::WinIfExists;
35763
48042
  friend class ::WinImportHandler;
35764
48043
  friend class ::WinMacros;
35765
 
  friend class ::CMatchSyntax;
35766
 
  friend class ::ExtGnu;
 
48044
  friend class ::WinAsm;
 
48045
  friend class ::WinDeclSpecs;
 
48046
  friend class ::WinMemberExplSpec;
 
48047
  friend class ::WinTypeKeywords;
 
48048
  friend class ::WinFriend;
35767
48049
  friend class ::ExtAC;
35768
48050
  friend class ::ExtACBuilderCoupling;
35769
48051
  friend class ::ExtACSyntaxCoupling;
35770
48052
  friend class ::ExtACTree;
35771
48053
  friend class ::ExtACKeywords;
35772
 
  friend class ::WinAsm;
35773
 
  friend class ::WinDeclSpecs;
35774
 
  friend class ::WinMemberExplSpec;
35775
 
  friend class ::WinTypeKeywords;
 
48054
  friend class ::ExtGnu;
35776
48055
  friend class ::PragmaOnceUnitState;
35777
48056
  friend class ::PragmaOnce;
35778
 
  friend class ::CCExprResolve;
35779
 
  friend class ::CExprResolve;
 
48057
  friend class ::CMatchSyntax;
35780
48058
 
35781
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
48059
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
35782
48060
 
35783
48061
public:
35784
48062
#ifndef __puma
35947
48225
 
35948
48226
#endif /* __CStructure_h__ */
35949
48227
 
35950
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
48228
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
35951
48229
namespace Puma {
35952
48230
 
35953
48231
 
35954
48232
class CTemplateInfo;
35955
48233
 
35956
48234
 
35957
 
#line 35958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48235
#line 48236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
35958
48236
} // closed Puma
 
48237
class CCExprResolve;
 
48238
class CExprResolve;
35959
48239
class WinIfExists;
35960
48240
class WinImportHandler;
35961
48241
class WinMacros;
35962
 
class CMatchSyntax;
35963
 
class ExtGnu;
 
48242
class WinAsm;
 
48243
class WinDeclSpecs;
 
48244
class WinMemberExplSpec;
 
48245
class WinTypeKeywords;
 
48246
class WinFriend;
35964
48247
class ExtAC;
35965
48248
class ExtACBuilderCoupling;
35966
48249
class ExtACSyntaxCoupling;
35967
48250
class ExtACTree;
35968
48251
class ExtACKeywords;
35969
 
class WinAsm;
35970
 
class WinDeclSpecs;
35971
 
class WinMemberExplSpec;
35972
 
class WinTypeKeywords;
 
48252
class ExtGnu;
35973
48253
class PragmaOnceUnitState;
35974
48254
class PragmaOnce;
35975
 
class CCExprResolve;
35976
 
class CExprResolve;
 
48255
class CMatchSyntax;
35977
48256
namespace Puma {
35978
48257
 
35979
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
48258
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
35980
48259
class CRecord : public CStructure {
35981
 
#line 35982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48260
#line 48261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
48261
  friend class ::CCExprResolve;
 
48262
  friend class ::CExprResolve;
35982
48263
  friend class ::WinIfExists;
35983
48264
  friend class ::WinImportHandler;
35984
48265
  friend class ::WinMacros;
35985
 
  friend class ::CMatchSyntax;
35986
 
  friend class ::ExtGnu;
 
48266
  friend class ::WinAsm;
 
48267
  friend class ::WinDeclSpecs;
 
48268
  friend class ::WinMemberExplSpec;
 
48269
  friend class ::WinTypeKeywords;
 
48270
  friend class ::WinFriend;
35987
48271
  friend class ::ExtAC;
35988
48272
  friend class ::ExtACBuilderCoupling;
35989
48273
  friend class ::ExtACSyntaxCoupling;
35990
48274
  friend class ::ExtACTree;
35991
48275
  friend class ::ExtACKeywords;
35992
 
  friend class ::WinAsm;
35993
 
  friend class ::WinDeclSpecs;
35994
 
  friend class ::WinMemberExplSpec;
35995
 
  friend class ::WinTypeKeywords;
 
48276
  friend class ::ExtGnu;
35996
48277
  friend class ::PragmaOnceUnitState;
35997
48278
  friend class ::PragmaOnce;
35998
 
  friend class ::CCExprResolve;
35999
 
  friend class ::CExprResolve;
 
48279
  friend class ::CMatchSyntax;
36000
48280
 
36001
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
48281
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
36002
48282
 
36003
48283
//  // classes/unions using this as/in an attribute.
36004
48284
//  Array<CObjectInfo*> _Referer;     
36111
48391
 
36112
48392
#endif /* __CRecord_h__ */
36113
48393
 
36114
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
48394
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
36115
48395
// This file is part of PUMA.
36116
48396
// Copyright (C) 1999-2003  The PUMA developer team.
36117
48397
//                                                                
36136
48416
// base class info (used by CClassInfo)
36137
48417
 
36138
48418
 
36139
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
48419
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
36140
48420
// This file is part of PUMA.
36141
48421
// Copyright (C) 1999-2003  The PUMA developer team.
36142
48422
//                                                                
36162
48442
// an entity was declared (if it's not a scope itself)
36163
48443
 
36164
48444
 
36165
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
48445
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
36166
48446
namespace Puma {
36167
48447
 
36168
48448
 
36169
48449
class CScopeInfo;
36170
48450
 
36171
48451
 
36172
 
#line 36173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48452
#line 48453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
36173
48453
} // closed Puma
 
48454
class CCExprResolve;
 
48455
class CExprResolve;
36174
48456
class WinIfExists;
36175
48457
class WinImportHandler;
36176
48458
class WinMacros;
36177
 
class CMatchSyntax;
36178
 
class ExtGnu;
 
48459
class WinAsm;
 
48460
class WinDeclSpecs;
 
48461
class WinMemberExplSpec;
 
48462
class WinTypeKeywords;
 
48463
class WinFriend;
36179
48464
class ExtAC;
36180
48465
class ExtACBuilderCoupling;
36181
48466
class ExtACSyntaxCoupling;
36182
48467
class ExtACTree;
36183
48468
class ExtACKeywords;
36184
 
class WinAsm;
36185
 
class WinDeclSpecs;
36186
 
class WinMemberExplSpec;
36187
 
class WinTypeKeywords;
 
48469
class ExtGnu;
36188
48470
class PragmaOnceUnitState;
36189
48471
class PragmaOnce;
36190
 
class CCExprResolve;
36191
 
class CExprResolve;
 
48472
class CMatchSyntax;
36192
48473
namespace Puma {
36193
48474
 
36194
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
48475
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
36195
48476
class CScopeRequest : public CObjectInfo {
36196
 
#line 36197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48477
#line 48478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
48478
  friend class ::CCExprResolve;
 
48479
  friend class ::CExprResolve;
36197
48480
  friend class ::WinIfExists;
36198
48481
  friend class ::WinImportHandler;
36199
48482
  friend class ::WinMacros;
36200
 
  friend class ::CMatchSyntax;
36201
 
  friend class ::ExtGnu;
 
48483
  friend class ::WinAsm;
 
48484
  friend class ::WinDeclSpecs;
 
48485
  friend class ::WinMemberExplSpec;
 
48486
  friend class ::WinTypeKeywords;
 
48487
  friend class ::WinFriend;
36202
48488
  friend class ::ExtAC;
36203
48489
  friend class ::ExtACBuilderCoupling;
36204
48490
  friend class ::ExtACSyntaxCoupling;
36205
48491
  friend class ::ExtACTree;
36206
48492
  friend class ::ExtACKeywords;
36207
 
  friend class ::WinAsm;
36208
 
  friend class ::WinDeclSpecs;
36209
 
  friend class ::WinMemberExplSpec;
36210
 
  friend class ::WinTypeKeywords;
 
48493
  friend class ::ExtGnu;
36211
48494
  friend class ::PragmaOnceUnitState;
36212
48495
  friend class ::PragmaOnce;
36213
 
  friend class ::CCExprResolve;
36214
 
  friend class ::CExprResolve;
 
48496
  friend class ::CMatchSyntax;
36215
48497
 
36216
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
48498
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
36217
48499
 
36218
48500
  CScopeInfo *_Scope;
36219
48501
 
36244
48526
 
36245
48527
#endif /* __CScopeRequest_h__ */
36246
48528
 
36247
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
48529
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
36248
48530
namespace Puma {
36249
48531
 
36250
48532
class CClassInfo;
36257
48539
/** \class CBaseClassInfo CBaseClassInfo.h Puma/infos/CBaseClassInfo.h
36258
48540
 *  A CBaseClassInfo object represents a base class of a class. */
36259
48541
 
36260
 
#line 36261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48542
#line 48543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
36261
48543
} // closed Puma
 
48544
class CCExprResolve;
 
48545
class CExprResolve;
36262
48546
class WinIfExists;
36263
48547
class WinImportHandler;
36264
48548
class WinMacros;
36265
 
class CMatchSyntax;
36266
 
class ExtGnu;
 
48549
class WinAsm;
 
48550
class WinDeclSpecs;
 
48551
class WinMemberExplSpec;
 
48552
class WinTypeKeywords;
 
48553
class WinFriend;
36267
48554
class ExtAC;
36268
48555
class ExtACBuilderCoupling;
36269
48556
class ExtACSyntaxCoupling;
36270
48557
class ExtACTree;
36271
48558
class ExtACKeywords;
36272
 
class WinAsm;
36273
 
class WinDeclSpecs;
36274
 
class WinMemberExplSpec;
36275
 
class WinTypeKeywords;
 
48559
class ExtGnu;
36276
48560
class PragmaOnceUnitState;
36277
48561
class PragmaOnce;
36278
 
class CCExprResolve;
36279
 
class CExprResolve;
 
48562
class CMatchSyntax;
36280
48563
namespace Puma {
36281
48564
 
36282
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
48565
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
36283
48566
class CBaseClassInfo : public CScopeRequest {
36284
 
#line 36285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48567
#line 48568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
48568
  friend class ::CCExprResolve;
 
48569
  friend class ::CExprResolve;
36285
48570
  friend class ::WinIfExists;
36286
48571
  friend class ::WinImportHandler;
36287
48572
  friend class ::WinMacros;
36288
 
  friend class ::CMatchSyntax;
36289
 
  friend class ::ExtGnu;
 
48573
  friend class ::WinAsm;
 
48574
  friend class ::WinDeclSpecs;
 
48575
  friend class ::WinMemberExplSpec;
 
48576
  friend class ::WinTypeKeywords;
 
48577
  friend class ::WinFriend;
36290
48578
  friend class ::ExtAC;
36291
48579
  friend class ::ExtACBuilderCoupling;
36292
48580
  friend class ::ExtACSyntaxCoupling;
36293
48581
  friend class ::ExtACTree;
36294
48582
  friend class ::ExtACKeywords;
36295
 
  friend class ::WinAsm;
36296
 
  friend class ::WinDeclSpecs;
36297
 
  friend class ::WinMemberExplSpec;
36298
 
  friend class ::WinTypeKeywords;
 
48583
  friend class ::ExtGnu;
36299
48584
  friend class ::PragmaOnceUnitState;
36300
48585
  friend class ::PragmaOnce;
36301
 
  friend class ::CCExprResolve;
36302
 
  friend class ::CExprResolve;
 
48586
  friend class ::CMatchSyntax;
36303
48587
 
36304
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
48588
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
36305
48589
 
36306
48590
  /** the info object of the base class */
36307
48591
  CClassInfo        *_Class;
36344
48628
 
36345
48629
#endif /* __CBaseClassInfo_h__ */
36346
48630
 
36347
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
48631
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
36348
48632
namespace Puma {
36349
48633
 
36350
48634
/** \file 
36358
48642
 *  classes. Note that a 'union', although syntactically very similar,
36359
48643
 *  is not represented by a CClassInfo object. */
36360
48644
 
36361
 
#line 36362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48645
#line 48646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
36362
48646
} // closed Puma
 
48647
class CCExprResolve;
 
48648
class CExprResolve;
36363
48649
class WinIfExists;
36364
48650
class WinImportHandler;
36365
48651
class WinMacros;
36366
 
class CMatchSyntax;
36367
 
class ExtGnu;
 
48652
class WinAsm;
 
48653
class WinDeclSpecs;
 
48654
class WinMemberExplSpec;
 
48655
class WinTypeKeywords;
 
48656
class WinFriend;
36368
48657
class ExtAC;
36369
48658
class ExtACBuilderCoupling;
36370
48659
class ExtACSyntaxCoupling;
36371
48660
class ExtACTree;
36372
48661
class ExtACKeywords;
36373
 
class WinAsm;
36374
 
class WinDeclSpecs;
36375
 
class WinMemberExplSpec;
36376
 
class WinTypeKeywords;
 
48662
class ExtGnu;
36377
48663
class PragmaOnceUnitState;
36378
48664
class PragmaOnce;
36379
 
class CCExprResolve;
36380
 
class CExprResolve;
 
48665
class CMatchSyntax;
36381
48666
namespace Puma {
36382
48667
 
36383
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
48668
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
36384
48669
class CClassInfo : public CRecord {
36385
 
#line 36386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48670
#line 48671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
48671
  friend class ::CCExprResolve;
 
48672
  friend class ::CExprResolve;
36386
48673
  friend class ::WinIfExists;
36387
48674
  friend class ::WinImportHandler;
36388
48675
  friend class ::WinMacros;
36389
 
  friend class ::CMatchSyntax;
36390
 
  friend class ::ExtGnu;
 
48676
  friend class ::WinAsm;
 
48677
  friend class ::WinDeclSpecs;
 
48678
  friend class ::WinMemberExplSpec;
 
48679
  friend class ::WinTypeKeywords;
 
48680
  friend class ::WinFriend;
36391
48681
  friend class ::ExtAC;
36392
48682
  friend class ::ExtACBuilderCoupling;
36393
48683
  friend class ::ExtACSyntaxCoupling;
36394
48684
  friend class ::ExtACTree;
36395
48685
  friend class ::ExtACKeywords;
36396
 
  friend class ::WinAsm;
36397
 
  friend class ::WinDeclSpecs;
36398
 
  friend class ::WinMemberExplSpec;
36399
 
  friend class ::WinTypeKeywords;
 
48686
  friend class ::ExtGnu;
36400
48687
  friend class ::PragmaOnceUnitState;
36401
48688
  friend class ::PragmaOnce;
36402
 
  friend class ::CCExprResolve;
36403
 
  friend class ::CExprResolve;
 
48689
  friend class ::CMatchSyntax;
36404
48690
 
36405
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
48691
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
36406
48692
 
36407
48693
  Array<CBaseClassInfo*> _BaseClasses;
36408
48694
  Array<CClassInfo*> _Derived;
36512
48798
  /** Returns true if the argument function overrides any virtual function
36513
48799
   *  defined in this class or any of its base classes.
36514
48800
   *  \param fi function info object of the checked function. */
36515
 
   bool overridesVirtual (const CFunctionInfo *fi) const;
 
48801
  bool overridesVirtual (const CFunctionInfo *fi) const;
36516
48802
   
36517
48803
  /** Returns true if this class is an aggregate according to 8.5.1-1. */
36518
 
   bool isAggregate () const;
36519
 
 
 
48804
  bool isAggregate () const;
36520
48805
};
36521
48806
 
36522
48807
inline CClassInfo::CClassInfo (ObjectId id) :
36552
48837
 
36553
48838
#endif /* __CClassInfo_h__ */
36554
48839
 
36555
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
48840
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
36556
48841
// This file is part of PUMA.
36557
48842
// Copyright (C) 1999-2003  The PUMA developer team.
36558
48843
//                                                                
36575
48860
#define __ACIntroductionInfo_h__
36576
48861
 
36577
48862
 
36578
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
48863
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
36579
48864
namespace Puma {
36580
48865
 
36581
48866
 
36590
48875
 *  An ACIntroductionInfo object represents an AspectC++ introduction 
36591
48876
 *  'advice' declaration. */
36592
48877
 
36593
 
#line 36594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48878
#line 48879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
36594
48879
} // closed Puma
 
48880
class CCExprResolve;
 
48881
class CExprResolve;
36595
48882
class WinIfExists;
36596
48883
class WinImportHandler;
36597
48884
class WinMacros;
36598
 
class CMatchSyntax;
36599
 
class ExtGnu;
 
48885
class WinAsm;
 
48886
class WinDeclSpecs;
 
48887
class WinMemberExplSpec;
 
48888
class WinTypeKeywords;
 
48889
class WinFriend;
36600
48890
class ExtAC;
36601
48891
class ExtACBuilderCoupling;
36602
48892
class ExtACSyntaxCoupling;
36603
48893
class ExtACTree;
36604
48894
class ExtACKeywords;
36605
 
class WinAsm;
36606
 
class WinDeclSpecs;
36607
 
class WinMemberExplSpec;
36608
 
class WinTypeKeywords;
 
48895
class ExtGnu;
36609
48896
class PragmaOnceUnitState;
36610
48897
class PragmaOnce;
36611
 
class CCExprResolve;
36612
 
class CExprResolve;
 
48898
class CMatchSyntax;
36613
48899
namespace Puma {
36614
48900
 
36615
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
48901
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
36616
48902
class ACIntroductionInfo {
36617
 
#line 36618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48903
#line 48904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
48904
  friend class ::CCExprResolve;
 
48905
  friend class ::CExprResolve;
36618
48906
  friend class ::WinIfExists;
36619
48907
  friend class ::WinImportHandler;
36620
48908
  friend class ::WinMacros;
36621
 
  friend class ::CMatchSyntax;
36622
 
  friend class ::ExtGnu;
 
48909
  friend class ::WinAsm;
 
48910
  friend class ::WinDeclSpecs;
 
48911
  friend class ::WinMemberExplSpec;
 
48912
  friend class ::WinTypeKeywords;
 
48913
  friend class ::WinFriend;
36623
48914
  friend class ::ExtAC;
36624
48915
  friend class ::ExtACBuilderCoupling;
36625
48916
  friend class ::ExtACSyntaxCoupling;
36626
48917
  friend class ::ExtACTree;
36627
48918
  friend class ::ExtACKeywords;
36628
 
  friend class ::WinAsm;
36629
 
  friend class ::WinDeclSpecs;
36630
 
  friend class ::WinMemberExplSpec;
36631
 
  friend class ::WinTypeKeywords;
 
48919
  friend class ::ExtGnu;
36632
48920
  friend class ::PragmaOnceUnitState;
36633
48921
  friend class ::PragmaOnce;
36634
 
  friend class ::CCExprResolve;
36635
 
  friend class ::CExprResolve;
 
48922
  friend class ::CMatchSyntax;
36636
48923
 
36637
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
48924
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
36638
48925
 
36639
48926
  CT_AdviceDecl *_def_node;
36640
48927
  CProtection::Type _prot;
36667
48954
 
36668
48955
#endif /* __ACIntroductionInfo_h__ */
36669
48956
 
36670
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
48957
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
36671
48958
namespace Puma {
36672
48959
 
36673
48960
 
36685
48972
 *  declaration and also parsed like a C++ class. Additionally it
36686
48973
 *  contains pointcut and advice declarations. */
36687
48974
 
36688
 
#line 36689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
48975
#line 48976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
36689
48976
} // closed Puma
 
48977
class CCExprResolve;
 
48978
class CExprResolve;
36690
48979
class WinIfExists;
36691
48980
class WinImportHandler;
36692
48981
class WinMacros;
36693
 
class CMatchSyntax;
36694
 
class ExtGnu;
 
48982
class WinAsm;
 
48983
class WinDeclSpecs;
 
48984
class WinMemberExplSpec;
 
48985
class WinTypeKeywords;
 
48986
class WinFriend;
36695
48987
class ExtAC;
36696
48988
class ExtACBuilderCoupling;
36697
48989
class ExtACSyntaxCoupling;
36698
48990
class ExtACTree;
36699
48991
class ExtACKeywords;
36700
 
class WinAsm;
36701
 
class WinDeclSpecs;
36702
 
class WinMemberExplSpec;
36703
 
class WinTypeKeywords;
 
48992
class ExtGnu;
36704
48993
class PragmaOnceUnitState;
36705
48994
class PragmaOnce;
36706
 
class CCExprResolve;
36707
 
class CExprResolve;
 
48995
class CMatchSyntax;
36708
48996
namespace Puma {
36709
48997
 
36710
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
48998
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
36711
48999
class ACAspectInfo {
36712
 
#line 36713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49000
#line 49001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
49001
  friend class ::CCExprResolve;
 
49002
  friend class ::CExprResolve;
36713
49003
  friend class ::WinIfExists;
36714
49004
  friend class ::WinImportHandler;
36715
49005
  friend class ::WinMacros;
36716
 
  friend class ::CMatchSyntax;
36717
 
  friend class ::ExtGnu;
 
49006
  friend class ::WinAsm;
 
49007
  friend class ::WinDeclSpecs;
 
49008
  friend class ::WinMemberExplSpec;
 
49009
  friend class ::WinTypeKeywords;
 
49010
  friend class ::WinFriend;
36718
49011
  friend class ::ExtAC;
36719
49012
  friend class ::ExtACBuilderCoupling;
36720
49013
  friend class ::ExtACSyntaxCoupling;
36721
49014
  friend class ::ExtACTree;
36722
49015
  friend class ::ExtACKeywords;
36723
 
  friend class ::WinAsm;
36724
 
  friend class ::WinDeclSpecs;
36725
 
  friend class ::WinMemberExplSpec;
36726
 
  friend class ::WinTypeKeywords;
 
49016
  friend class ::ExtGnu;
36727
49017
  friend class ::PragmaOnceUnitState;
36728
49018
  friend class ::PragmaOnce;
36729
 
  friend class ::CCExprResolve;
36730
 
  friend class ::CExprResolve;
 
49019
  friend class ::CMatchSyntax;
36731
49020
 
36732
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
49021
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
36733
49022
 
36734
49023
  CClassInfo *_class;
36735
49024
  Array<ACPointcutInfo*> _pointcuts;
36840
49129
 
36841
49130
#endif /* __ACAspectInfo_h__ */
36842
49131
 
36843
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
49132
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
36844
49133
// This file is part of PUMA.
36845
49134
// Copyright (C) 1999-2003  The PUMA developer team.
36846
49135
//                                                                
36863
49152
#define __ACAdviceInfo_h__
36864
49153
 
36865
49154
 
36866
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
49155
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
36867
49156
// This file is part of PUMA.
36868
49157
// Copyright (C) 1999-2003  The PUMA developer team.
36869
49158
//                                                                
36888
49177
// function info (standard functions and methods)
36889
49178
 
36890
49179
 
36891
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
49180
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
36892
49181
namespace Puma {
36893
49182
 
36894
49183
 
36905
49194
/** \class CFunctionInfo CFunctionInfo.h Puma/infos/CFunctionInfo.h
36906
49195
 *  A CFunctionInfo object represents a function declaration. */
36907
49196
 
36908
 
#line 36909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49197
#line 49198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
36909
49198
} // closed Puma
 
49199
class CCExprResolve;
 
49200
class CExprResolve;
36910
49201
class WinIfExists;
36911
49202
class WinImportHandler;
36912
49203
class WinMacros;
36913
 
class CMatchSyntax;
36914
 
class ExtGnu;
 
49204
class WinAsm;
 
49205
class WinDeclSpecs;
 
49206
class WinMemberExplSpec;
 
49207
class WinTypeKeywords;
 
49208
class WinFriend;
36915
49209
class ExtAC;
36916
49210
class ExtACBuilderCoupling;
36917
49211
class ExtACSyntaxCoupling;
36918
49212
class ExtACTree;
36919
49213
class ExtACKeywords;
36920
 
class WinAsm;
36921
 
class WinDeclSpecs;
36922
 
class WinMemberExplSpec;
36923
 
class WinTypeKeywords;
 
49214
class ExtGnu;
36924
49215
class PragmaOnceUnitState;
36925
49216
class PragmaOnce;
36926
 
class CCExprResolve;
36927
 
class CExprResolve;
 
49217
class CMatchSyntax;
36928
49218
namespace Puma {
36929
49219
 
36930
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
49220
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
36931
49221
class CFunctionInfo : public CStructure {
36932
 
#line 36933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49222
#line 49223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
49223
  friend class ::CCExprResolve;
 
49224
  friend class ::CExprResolve;
36933
49225
  friend class ::WinIfExists;
36934
49226
  friend class ::WinImportHandler;
36935
49227
  friend class ::WinMacros;
36936
 
  friend class ::CMatchSyntax;
36937
 
  friend class ::ExtGnu;
 
49228
  friend class ::WinAsm;
 
49229
  friend class ::WinDeclSpecs;
 
49230
  friend class ::WinMemberExplSpec;
 
49231
  friend class ::WinTypeKeywords;
 
49232
  friend class ::WinFriend;
36938
49233
  friend class ::ExtAC;
36939
49234
  friend class ::ExtACBuilderCoupling;
36940
49235
  friend class ::ExtACSyntaxCoupling;
36941
49236
  friend class ::ExtACTree;
36942
49237
  friend class ::ExtACKeywords;
36943
 
  friend class ::WinAsm;
36944
 
  friend class ::WinDeclSpecs;
36945
 
  friend class ::WinMemberExplSpec;
36946
 
  friend class ::WinTypeKeywords;
 
49238
  friend class ::ExtGnu;
36947
49239
  friend class ::PragmaOnceUnitState;
36948
49240
  friend class ::PragmaOnce;
36949
 
  friend class ::CCExprResolve;
36950
 
  friend class ::CExprResolve;
 
49241
  friend class ::CMatchSyntax;
36951
49242
 
36952
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
49243
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
36953
49244
 
36954
49245
  Array<CArgumentInfo*> _Arguments;
36955
49246
  Array<CLabelInfo*> _Labels;
37215
49506
 
37216
49507
#endif /* __CFunctionInfo_h__ */
37217
49508
 
37218
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
49509
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
37219
49510
using namespace std;
37220
49511
 
37221
49512
namespace Puma {
37231
49522
 *  An ACAdviceInfo object represents an AspectC++ 'advice' declaration. 
37232
49523
 *  An advice is part of an aspect declaration. */
37233
49524
 
37234
 
#line 37235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49525
#line 49526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
37235
49526
} // closed Puma
 
49527
class CCExprResolve;
 
49528
class CExprResolve;
37236
49529
class WinIfExists;
37237
49530
class WinImportHandler;
37238
49531
class WinMacros;
37239
 
class CMatchSyntax;
37240
 
class ExtGnu;
 
49532
class WinAsm;
 
49533
class WinDeclSpecs;
 
49534
class WinMemberExplSpec;
 
49535
class WinTypeKeywords;
 
49536
class WinFriend;
37241
49537
class ExtAC;
37242
49538
class ExtACBuilderCoupling;
37243
49539
class ExtACSyntaxCoupling;
37244
49540
class ExtACTree;
37245
49541
class ExtACKeywords;
37246
 
class WinAsm;
37247
 
class WinDeclSpecs;
37248
 
class WinMemberExplSpec;
37249
 
class WinTypeKeywords;
 
49542
class ExtGnu;
37250
49543
class PragmaOnceUnitState;
37251
49544
class PragmaOnce;
37252
 
class CCExprResolve;
37253
 
class CExprResolve;
 
49545
class CMatchSyntax;
37254
49546
namespace Puma {
37255
49547
 
37256
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
49548
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
37257
49549
class ACAdviceInfo {
37258
 
#line 37259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49550
#line 49551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
49551
  friend class ::CCExprResolve;
 
49552
  friend class ::CExprResolve;
37259
49553
  friend class ::WinIfExists;
37260
49554
  friend class ::WinImportHandler;
37261
49555
  friend class ::WinMacros;
37262
 
  friend class ::CMatchSyntax;
37263
 
  friend class ::ExtGnu;
 
49556
  friend class ::WinAsm;
 
49557
  friend class ::WinDeclSpecs;
 
49558
  friend class ::WinMemberExplSpec;
 
49559
  friend class ::WinTypeKeywords;
 
49560
  friend class ::WinFriend;
37264
49561
  friend class ::ExtAC;
37265
49562
  friend class ::ExtACBuilderCoupling;
37266
49563
  friend class ::ExtACSyntaxCoupling;
37267
49564
  friend class ::ExtACTree;
37268
49565
  friend class ::ExtACKeywords;
37269
 
  friend class ::WinAsm;
37270
 
  friend class ::WinDeclSpecs;
37271
 
  friend class ::WinMemberExplSpec;
37272
 
  friend class ::WinTypeKeywords;
 
49566
  friend class ::ExtGnu;
37273
49567
  friend class ::PragmaOnceUnitState;
37274
49568
  friend class ::PragmaOnce;
37275
 
  friend class ::CCExprResolve;
37276
 
  friend class ::CExprResolve;
 
49569
  friend class ::CMatchSyntax;
37277
49570
 
37278
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
49571
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
37279
49572
 
37280
49573
public:
37281
49574
  /** The three advice types: before, around, and after advice. */
37300
49593
   *           name of the advice. */
37301
49594
  ACAdviceInfo (int n) : _def_node (0), _decl_node (0), _aspect (0), 
37302
49595
   _inherited (false), _parent (0), _uses_aspectOf (false), 
37303
 
   _have_advice_func (false) { _name << "__advice_" << n << ends; }
 
49596
   _have_advice_func (false) { _name << "__advice_" << n; }
37304
49597
 
37305
49598
  /** Get the internal name of the advice. */
37306
49599
  const char *name () { return _name.str ().c_str (); }
37361
49654
 
37362
49655
#endif /* __ACAdviceInfo_h__ */
37363
49656
 
37364
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
49657
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
37365
49658
// This file is part of PUMA.
37366
49659
// Copyright (C) 1999-2003  The PUMA developer team.
37367
49660
//                                                                
37384
49677
#define __ACPointCutInfo_h__
37385
49678
 
37386
49679
 
37387
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
49680
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
37388
49681
namespace Puma {
37389
49682
 
37390
49683
 
37400
49693
 *  A pointcut declaration is syntactically equal to a function 
37401
49694
 *  declaration and also parsed like a function. */
37402
49695
 
37403
 
#line 37404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49696
#line 49697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
37404
49697
} // closed Puma
 
49698
class CCExprResolve;
 
49699
class CExprResolve;
37405
49700
class WinIfExists;
37406
49701
class WinImportHandler;
37407
49702
class WinMacros;
37408
 
class CMatchSyntax;
37409
 
class ExtGnu;
 
49703
class WinAsm;
 
49704
class WinDeclSpecs;
 
49705
class WinMemberExplSpec;
 
49706
class WinTypeKeywords;
 
49707
class WinFriend;
37410
49708
class ExtAC;
37411
49709
class ExtACBuilderCoupling;
37412
49710
class ExtACSyntaxCoupling;
37413
49711
class ExtACTree;
37414
49712
class ExtACKeywords;
37415
 
class WinAsm;
37416
 
class WinDeclSpecs;
37417
 
class WinMemberExplSpec;
37418
 
class WinTypeKeywords;
 
49713
class ExtGnu;
37419
49714
class PragmaOnceUnitState;
37420
49715
class PragmaOnce;
37421
 
class CCExprResolve;
37422
 
class CExprResolve;
 
49716
class CMatchSyntax;
37423
49717
namespace Puma {
37424
49718
 
37425
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
49719
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
37426
49720
class ACPointcutInfo {
37427
 
#line 37428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49721
#line 49722 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
49722
  friend class ::CCExprResolve;
 
49723
  friend class ::CExprResolve;
37428
49724
  friend class ::WinIfExists;
37429
49725
  friend class ::WinImportHandler;
37430
49726
  friend class ::WinMacros;
37431
 
  friend class ::CMatchSyntax;
37432
 
  friend class ::ExtGnu;
 
49727
  friend class ::WinAsm;
 
49728
  friend class ::WinDeclSpecs;
 
49729
  friend class ::WinMemberExplSpec;
 
49730
  friend class ::WinTypeKeywords;
 
49731
  friend class ::WinFriend;
37433
49732
  friend class ::ExtAC;
37434
49733
  friend class ::ExtACBuilderCoupling;
37435
49734
  friend class ::ExtACSyntaxCoupling;
37436
49735
  friend class ::ExtACTree;
37437
49736
  friend class ::ExtACKeywords;
37438
 
  friend class ::WinAsm;
37439
 
  friend class ::WinDeclSpecs;
37440
 
  friend class ::WinMemberExplSpec;
37441
 
  friend class ::WinTypeKeywords;
 
49737
  friend class ::ExtGnu;
37442
49738
  friend class ::PragmaOnceUnitState;
37443
49739
  friend class ::PragmaOnce;
37444
 
  friend class ::CCExprResolve;
37445
 
  friend class ::CExprResolve;
 
49740
  friend class ::CMatchSyntax;
37446
49741
 
37447
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
49742
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
37448
49743
 
37449
49744
  CFunctionInfo   *_function;
37450
49745
  ACAspectInfo    *_aspect;
37483
49778
 
37484
49779
#endif /* __PointCutInfo_h__ */
37485
49780
 
37486
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
49781
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
37487
49782
// This file is part of PUMA.
37488
49783
// Copyright (C) 1999-2003  The PUMA developer team.
37489
49784
//                                                                
37506
49801
#define __ACSliceInfo_h__
37507
49802
 
37508
49803
 
37509
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
49804
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
37510
49805
namespace Puma {
37511
49806
 
37512
49807
 
37513
49808
class ACAspectInfo;
37514
49809
class CT_ClassSliceDecl;
37515
49810
class CT_Intro;
 
49811
class Unit;
37516
49812
 
37517
49813
/** \file 
37518
49814
 *  Representation of an AspectC++ 'slice'.
37524
49820
 *  example a 'class slice' is a fragment (possibly incomplete) part
37525
49821
 *  of a class. */
37526
49822
 
37527
 
#line 37528 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49823
#line 49824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
37528
49824
} // closed Puma
 
49825
class CCExprResolve;
 
49826
class CExprResolve;
37529
49827
class WinIfExists;
37530
49828
class WinImportHandler;
37531
49829
class WinMacros;
37532
 
class CMatchSyntax;
37533
 
class ExtGnu;
 
49830
class WinAsm;
 
49831
class WinDeclSpecs;
 
49832
class WinMemberExplSpec;
 
49833
class WinTypeKeywords;
 
49834
class WinFriend;
37534
49835
class ExtAC;
37535
49836
class ExtACBuilderCoupling;
37536
49837
class ExtACSyntaxCoupling;
37537
49838
class ExtACTree;
37538
49839
class ExtACKeywords;
37539
 
class WinAsm;
37540
 
class WinDeclSpecs;
37541
 
class WinMemberExplSpec;
37542
 
class WinTypeKeywords;
 
49840
class ExtGnu;
37543
49841
class PragmaOnceUnitState;
37544
49842
class PragmaOnce;
37545
 
class CCExprResolve;
37546
 
class CExprResolve;
 
49843
class CMatchSyntax;
37547
49844
namespace Puma {
37548
49845
 
37549
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
49846
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
37550
49847
class ACSliceInfo {
37551
 
#line 37552 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49848
#line 49849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
49849
  friend class ::CCExprResolve;
 
49850
  friend class ::CExprResolve;
37552
49851
  friend class ::WinIfExists;
37553
49852
  friend class ::WinImportHandler;
37554
49853
  friend class ::WinMacros;
37555
 
  friend class ::CMatchSyntax;
37556
 
  friend class ::ExtGnu;
 
49854
  friend class ::WinAsm;
 
49855
  friend class ::WinDeclSpecs;
 
49856
  friend class ::WinMemberExplSpec;
 
49857
  friend class ::WinTypeKeywords;
 
49858
  friend class ::WinFriend;
37557
49859
  friend class ::ExtAC;
37558
49860
  friend class ::ExtACBuilderCoupling;
37559
49861
  friend class ::ExtACSyntaxCoupling;
37560
49862
  friend class ::ExtACTree;
37561
49863
  friend class ::ExtACKeywords;
37562
 
  friend class ::WinAsm;
37563
 
  friend class ::WinDeclSpecs;
37564
 
  friend class ::WinMemberExplSpec;
37565
 
  friend class ::WinTypeKeywords;
 
49864
  friend class ::ExtGnu;
37566
49865
  friend class ::PragmaOnceUnitState;
37567
49866
  friend class ::PragmaOnce;
37568
 
  friend class ::CCExprResolve;
37569
 
  friend class ::CExprResolve;
 
49867
  friend class ::CMatchSyntax;
37570
49868
 
37571
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
49869
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
37572
49870
 
37573
49871
  CObjectInfo       *_object;
37574
49872
  CT_ClassSliceDecl *_def_node;
37575
 
  Array<CT_Intro*>  _members; // non-inline slice members
 
49873
  Unit              *_pattern;        // inline member patterns (in 1 unit)
 
49874
  Unit              *_base_pattern;   // base class intro part
 
49875
  Array<CT_Intro*>  _members;         // non-inline slice members
 
49876
  Array<Unit*>      _member_patterns; // non-inline member patterns
 
49877
  Array<Unit*>      _member_units;    // non-inline member units (ah files)
37576
49878
  bool              _in_advice;
37577
49879
      
37578
49880
public:
37582
49884
  /** Construct a slice info object.
37583
49885
   *  \param oi The object info of the slice declaration, e.g. class info. */
37584
49886
  ACSliceInfo (CObjectInfo *oi) :
37585
 
    _object (oi), _def_node ((CT_ClassSliceDecl *)0) {}
 
49887
    _object (oi), _def_node ((CT_ClassSliceDecl *)0),
 
49888
    _pattern (0), _base_pattern (0) {}
37586
49889
 
 
49890
  /** Desctructor: delete all pattern units */
 
49891
  ~ACSliceInfo ();
 
49892
  
37587
49893
  /** Get the name of the slice. */
37588
49894
  const char *name () { return _object->Name (); }
37589
49895
  /** Get the object info of the slice declaration. */
37591
49897
 
37592
49898
  /** Set the slice definition syntax tree node.
37593
49899
   *  \param node The slice syntax tree node. */
37594
 
  void def_node (CT_ClassSliceDecl *node) { _def_node = node; }
 
49900
  void def_node (CT_ClassSliceDecl *node);
37595
49901
  /** Get the syntax tree node of the slice definition. */
37596
49902
  CT_ClassSliceDecl *def_node () { return _def_node; }
37597
49903
  
37598
49904
  /** Add a non-inline slice member.
37599
49905
   *  \param node The new member. */
37600
 
  void add_member (CT_Intro *i) { _members.append (i); }
 
49906
  void add_member (CT_Intro *i);
37601
49907
  
37602
49908
  /** Get the number of non-inline slice members. */
37603
49909
  int members () const { return _members.length (); }
37605
49911
  /** Get the ith non-inline slice member. */
37606
49912
  CT_Intro *member (int i) const { return _members.lookup (i); }
37607
49913
  
 
49914
  /** Get the ith non-inline slice member code pattern. */
 
49915
  const Unit *member_pattern (int i) const { return _member_patterns.lookup (i); }
 
49916
  
 
49917
  /** Get the ith non-inline slice member unit. */
 
49918
  const Unit *member_unit (int i) const { return _member_units.lookup (i); }
 
49919
  
37608
49920
  /** Set a flag to determine if this definition is part of an advice decl
37609
49921
   *  \param a true, iff this definition is location within 'advice .. : ..'. */
37610
49922
  void in_advice (bool a) { _in_advice = a; }
37617
49929
  
37618
49930
  /** Get the definition of this slice or return 0 if there is no definition */
37619
49931
  ACSliceInfo *definition () const;
 
49932
  
 
49933
  /** Get the base class pattern of this slice as a unit */
 
49934
  const Unit *base_pattern () const { return _base_pattern; }
 
49935
 
 
49936
  /** Get the inline member pattern of this slice as a unit */
 
49937
  const Unit *pattern () const { return _pattern; }
37620
49938
};
37621
49939
 
37622
49940
 
37624
49942
 
37625
49943
#endif /* __ACSliceInfo_h__ */
37626
49944
 
37627
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
49945
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
37628
49946
 
37629
 
#line 37630 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
49947
#line 49948 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
37630
49948
 
37631
49949
#ifndef __ac_fwd_ExtGnu__
37632
49950
#define __ac_fwd_ExtGnu__
37633
49951
class ExtGnu;
37634
49952
namespace AC {
37635
 
  template <class JoinPoint, class Binding>
37636
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
37637
 
  template <class JoinPoint, class Binding>
37638
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
37639
 
  template <class JoinPoint>
37640
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
37641
 
  template <class JoinPoint>
37642
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
37643
 
  template <class JoinPoint>
37644
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
37645
 
  template <class JoinPoint>
37646
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
37647
 
  template <class JoinPoint>
37648
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
37649
 
  template <class JoinPoint, class Binding>
37650
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
37651
 
  template <class JoinPoint, class Binding>
37652
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
37653
 
  template <class JoinPoint, class Binding>
37654
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
37655
 
  template <class JoinPoint, class Binding>
37656
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
37657
 
  template <class JoinPoint, class Binding>
37658
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
37659
 
  template <class JoinPoint, class Binding>
37660
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
37661
 
  template <class JoinPoint>
37662
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
37663
 
  template <class JoinPoint>
37664
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
37665
 
  template <class JoinPoint, class Binding>
37666
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
49953
  template <class JoinPoint>
 
49954
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
49955
  template <class JoinPoint>
 
49956
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
49957
  template <class JoinPoint>
 
49958
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
49959
  template <class JoinPoint>
 
49960
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
49961
  template <class JoinPoint>
 
49962
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
49963
  template <class JoinPoint>
 
49964
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
49965
  template <class JoinPoint>
 
49966
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
49967
  template <class JoinPoint>
 
49968
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
49969
  template <class JoinPoint>
 
49970
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
49971
  template <class JoinPoint>
 
49972
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
49973
  template <class JoinPoint>
 
49974
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
49975
  template <class JoinPoint>
 
49976
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
49977
  template <class JoinPoint>
 
49978
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
49979
  template <class JoinPoint>
 
49980
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
49981
  template <class JoinPoint>
 
49982
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
49983
  template <class JoinPoint>
 
49984
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
49985
  template <class JoinPoint>
 
49986
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
37667
49987
}
37668
49988
#endif
37669
49989
 
37670
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
37671
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
49990
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
49991
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
37672
49992
#endif
37673
49993
 
37674
49994
#ifndef __ac_fwd_CMatchSyntax__
37676
49996
class CMatchSyntax;
37677
49997
namespace AC {
37678
49998
  template <class JoinPoint>
37679
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
37680
 
  template <class JoinPoint>
37681
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
37682
 
  template <class JoinPoint>
37683
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
37684
 
  template <class JoinPoint>
37685
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
37686
 
  template <class JoinPoint>
37687
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
37688
 
  template <class JoinPoint>
37689
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
37690
 
  template <class JoinPoint>
37691
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
37692
 
  template <class JoinPoint>
37693
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
37694
 
  template <class JoinPoint>
37695
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
37696
 
  template <class JoinPoint>
37697
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
37698
 
  template <class JoinPoint>
37699
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
37700
 
  template <class JoinPoint>
37701
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
37702
 
  template <class JoinPoint>
37703
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
37704
 
  template <class JoinPoint>
37705
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
37706
 
  template <class JoinPoint>
37707
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
37708
 
  template <class JoinPoint>
37709
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
37710
 
  template <class JoinPoint>
37711
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
37712
 
  template <class JoinPoint>
37713
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
37714
 
  template <class JoinPoint>
37715
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
37716
 
  template <class JoinPoint>
37717
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
37718
 
  template <class JoinPoint>
37719
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
37720
 
  template <class JoinPoint>
37721
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
37722
 
  template <class JoinPoint>
37723
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
37724
 
  template <class JoinPoint>
37725
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
37726
 
  template <class JoinPoint>
37727
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
37728
 
  template <class JoinPoint, class Binding>
37729
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
 
49999
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
 
50000
  template <class JoinPoint>
 
50001
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
 
50002
  template <class JoinPoint>
 
50003
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
 
50004
  template <class JoinPoint>
 
50005
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
 
50006
  template <class JoinPoint>
 
50007
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
 
50008
  template <class JoinPoint>
 
50009
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
 
50010
  template <class JoinPoint>
 
50011
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
 
50012
  template <class JoinPoint>
 
50013
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
 
50014
  template <class JoinPoint>
 
50015
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
 
50016
  template <class JoinPoint>
 
50017
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
 
50018
  template <class JoinPoint>
 
50019
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
 
50020
  template <class JoinPoint>
 
50021
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
 
50022
  template <class JoinPoint>
 
50023
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
 
50024
  template <class JoinPoint>
 
50025
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
 
50026
  template <class JoinPoint>
 
50027
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
 
50028
  template <class JoinPoint>
 
50029
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
 
50030
  template <class JoinPoint>
 
50031
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
 
50032
  template <class JoinPoint>
 
50033
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
 
50034
  template <class JoinPoint>
 
50035
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
 
50036
  template <class JoinPoint>
 
50037
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
 
50038
  template <class JoinPoint>
 
50039
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
 
50040
  template <class JoinPoint>
 
50041
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
 
50042
  template <class JoinPoint>
 
50043
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
 
50044
  template <class JoinPoint>
 
50045
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
 
50046
  template <class JoinPoint>
 
50047
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
 
50048
  template <class JoinPoint>
 
50049
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
37730
50050
}
37731
50051
#endif
37732
50052
 
37733
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
37734
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
50053
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
50054
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
37735
50055
#endif
37736
50056
 
37737
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
50057
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
37738
50058
// This file is part of PUMA.
37739
50059
// Copyright (C) 1999-2003  The PUMA developer team.
37740
50060
//                                                                
37761
50081
//#include "Puma/Semantic.h"
37762
50082
#include "Puma/ErrorSink.h"
37763
50083
#include "Puma/TokenProvider.h"
37764
 
#include "TraceSyntax.ah"
37765
50084
 
37766
50085
namespace Puma {
37767
50086
 
37770
50089
class CTree;
37771
50090
 
37772
50091
 
37773
 
#line 37774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50092
#line 50093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
37774
50093
} // closed Puma
 
50094
class CCExprResolve;
 
50095
class CExprResolve;
37775
50096
class WinIfExists;
37776
50097
class WinImportHandler;
37777
50098
class WinMacros;
37778
 
class CMatchSyntax;
37779
 
class ExtGnu;
 
50099
class WinAsm;
 
50100
class WinDeclSpecs;
 
50101
class WinMemberExplSpec;
 
50102
class WinTypeKeywords;
 
50103
class WinFriend;
37780
50104
class ExtAC;
37781
50105
class ExtACBuilderCoupling;
37782
50106
class ExtACSyntaxCoupling;
37783
50107
class ExtACTree;
37784
50108
class ExtACKeywords;
37785
 
class WinAsm;
37786
 
class WinDeclSpecs;
37787
 
class WinMemberExplSpec;
37788
 
class WinTypeKeywords;
 
50109
class ExtGnu;
37789
50110
class PragmaOnceUnitState;
37790
50111
class PragmaOnce;
37791
 
class CCExprResolve;
37792
 
class CExprResolve;
 
50112
class CMatchSyntax;
37793
50113
namespace Puma {
37794
50114
 
37795
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
50115
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
37796
50116
class Syntax {
37797
 
#line 37798 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50117
#line 50118 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
50118
  friend class ::CCExprResolve;
 
50119
  friend class ::CExprResolve;
37798
50120
  friend class ::WinIfExists;
37799
50121
  friend class ::WinImportHandler;
37800
50122
  friend class ::WinMacros;
37801
 
  friend class ::CMatchSyntax;
37802
 
  friend class ::ExtGnu;
 
50123
  friend class ::WinAsm;
 
50124
  friend class ::WinDeclSpecs;
 
50125
  friend class ::WinMemberExplSpec;
 
50126
  friend class ::WinTypeKeywords;
 
50127
  friend class ::WinFriend;
37803
50128
  friend class ::ExtAC;
37804
50129
  friend class ::ExtACBuilderCoupling;
37805
50130
  friend class ::ExtACSyntaxCoupling;
37806
50131
  friend class ::ExtACTree;
37807
50132
  friend class ::ExtACKeywords;
37808
 
  friend class ::WinAsm;
37809
 
  friend class ::WinDeclSpecs;
37810
 
  friend class ::WinMemberExplSpec;
37811
 
  friend class ::WinTypeKeywords;
 
50133
  friend class ::ExtGnu;
37812
50134
  friend class ::PragmaOnceUnitState;
37813
50135
  friend class ::PragmaOnce;
37814
 
  friend class ::CCExprResolve;
37815
 
  friend class ::CExprResolve;
 
50136
  friend class ::CMatchSyntax;
37816
50137
 
37817
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
50138
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
37818
50139
 
37819
50140
  Token *_problem_token;
37820
50141
  bool _have_error;
37827
50148
 
37828
50149
public: 
37829
50150
  struct State : public TokenProvider::State {
37830
 
#line 37831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50151
#line 50152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
50152
  friend class ::CCExprResolve;
 
50153
  friend class ::CExprResolve;
37831
50154
  friend class ::WinIfExists;
37832
50155
  friend class ::WinImportHandler;
37833
50156
  friend class ::WinMacros;
37834
 
  friend class ::CMatchSyntax;
37835
 
  friend class ::ExtGnu;
 
50157
  friend class ::WinAsm;
 
50158
  friend class ::WinDeclSpecs;
 
50159
  friend class ::WinMemberExplSpec;
 
50160
  friend class ::WinTypeKeywords;
 
50161
  friend class ::WinFriend;
37836
50162
  friend class ::ExtAC;
37837
50163
  friend class ::ExtACBuilderCoupling;
37838
50164
  friend class ::ExtACSyntaxCoupling;
37839
50165
  friend class ::ExtACTree;
37840
50166
  friend class ::ExtACKeywords;
37841
 
  friend class ::WinAsm;
37842
 
  friend class ::WinDeclSpecs;
37843
 
  friend class ::WinMemberExplSpec;
37844
 
  friend class ::WinTypeKeywords;
 
50167
  friend class ::ExtGnu;
37845
50168
  friend class ::PragmaOnceUnitState;
37846
50169
  friend class ::PragmaOnce;
37847
 
  friend class ::CCExprResolve;
37848
 
  friend class ::CExprResolve;
 
50170
  friend class ::CMatchSyntax;
37849
50171
 
37850
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
50172
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
37851
50173
 
37852
50174
    State () {}
37853
50175
    State (int) {}
37862
50184
  CTree *run (TokenProvider &);
37863
50185
  template <class T> CTree *run (TokenProvider &, CTree *(T::*)());
37864
50186
  
37865
 
#line 37866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
37866
 
 
37867
 
 
37868
 
struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
37869
 
  typedef void Result;
37870
 
  typedef ::Puma::Syntax That;
37871
 
  typedef ::Puma::Syntax Target;
 
50187
#line 50188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
50188
 
 
50189
 
 
50190
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
 
50191
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 __TJP;
 
50192
  typedef TResult Result;
 
50193
  typedef TThat   That;
 
50194
  typedef TTarget Target;
 
50195
  enum { ARGS = TArgs::ARGS };
 
50196
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
37872
50197
  static const int JPID = 54;
37873
50198
  static const AC::JPType JPTYPE = (AC::JPType)8;
37874
50199
  struct Res {
37875
 
    typedef void Type;
37876
 
    typedef void ReferredType;
37877
 
  };
37878
 
  enum { ARGS = 1 };
37879
 
  template <int I, int DUMMY = 0> struct Arg {
37880
 
    typedef void Type;
37881
 
    typedef void ReferredType;
37882
 
  };
37883
 
  template <int DUMMY> struct Arg<0, DUMMY> {
37884
 
    typedef ::Puma::Config & Type;
37885
 
    typedef ::Puma::Config ReferredType;
 
50200
    typedef TResult Type;
 
50201
    typedef TResult ReferredType;
37886
50202
  };
37887
50203
 
37888
 
  void **_args;
 
50204
  void *_args[ARGS];
37889
50205
 
37890
50206
  inline void *arg (int n) {return _args[n];}
37891
50207
  template <int I> typename Arg<I>::ReferredType *arg () {
37892
50208
    return (typename Arg<I>::ReferredType*)arg (I);
37893
50209
  }
37894
50210
 
37895
 
};
37896
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before {
37897
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
37898
 
  template <int I, int DUMMY = 0> struct Arg {
37899
 
    void val (TJP *tjp) {} // for VC7
37900
 
  };
37901
 
  template <int DUMMY> struct Arg<0, DUMMY> {
37902
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
37903
 
  };
37904
 
};
37905
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before {
37906
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
37907
 
  template <int I, int DUMMY = 0> struct Arg {
37908
 
    void val (TJP *tjp) {} // for VC7
37909
 
  };
37910
 
  template <int DUMMY> struct Arg<0, DUMMY> {
37911
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
37912
 
  };
37913
 
};
37914
 
 
37915
 
 
37916
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
50211
struct Binding_CMatchSyntax_CMatchSyntax_a25_before {
 
50212
  typedef __TJP TJP;
 
50213
  template <int I, int DUMMY = 0> struct Arg {
 
50214
    void val (TJP *tjp) {} // for VC7
 
50215
  };
 
50216
  template <int DUMMY> struct Arg<0, DUMMY> {
 
50217
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
50218
  };
 
50219
};
 
50220
struct Binding_ExtGnu_ExtGnu_a15_before {
 
50221
  typedef __TJP TJP;
 
50222
  template <int I, int DUMMY = 0> struct Arg {
 
50223
    void val (TJP *tjp) {} // for VC7
 
50224
  };
 
50225
  template <int DUMMY> struct Arg<0, DUMMY> {
 
50226
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
50227
  };
 
50228
};
 
50229
};
 
50230
 
 
50231
 
 
50232
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
37917
50233
virtual void configure (Config & arg0) 
37918
 
#line 37919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50234
#line 50235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
37919
50235
{
37920
 
  void *args__ZN4Puma6Syntax9configureERN4PumaE6Config[] = { (void*)&arg0 };
37921
 
  TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 tjp;
37922
 
  tjp._args = args__ZN4Puma6Syntax9configureERN4PumaE6Config;
37923
 
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before> (&tjp);
37924
 
  AC::invoke_ExtGnu_ExtGnu_a15_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before> (&tjp);
37925
 
this->__exec_old_configure(arg0);
37926
 
 
 
50236
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0< void, ::Puma::Syntax , ::Puma::Syntax ,  AC::TL< ::Puma::Config & , AC::TLE > > __TJP;
 
50237
    __TJP tjp;
 
50238
  tjp._args[0] = (void*)&arg0;
 
50239
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<__TJP> (&tjp);
 
50240
  AC::invoke_ExtGnu_ExtGnu_a15_before<__TJP> (&tjp);
 
50241
    this->__exec_old_configure(arg0);
 
50242
  
37927
50243
}
37928
 
inline void __exec_old_configure(::Puma::Config & )
37929
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
50244
__attribute__((always_inline)) inline void __exec_old_configure(::Puma::Config & )
 
50245
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
37930
50246
{}
37931
50247
  TokenProvider *provider () const { return token_provider; }
37932
50248
  Token *problem () const;
38136
50452
 
38137
50453
#endif /* __Syntax_h__ */
38138
50454
 
38139
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
50455
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
38140
50456
// This file is part of PUMA.
38141
50457
// Copyright (C) 1999-2003  The PUMA developer team.
38142
50458
//                                                                
38161
50477
// data object info (variables, class data members)
38162
50478
 
38163
50479
 
38164
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
50480
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
38165
50481
namespace Puma {
38166
50482
 
38167
50483
 
38179
50495
 *  A CAttributeInfo object represents a local or global variable 
38180
50496
 *  or a class data member. */
38181
50497
 
38182
 
#line 38183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50498
#line 50499 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
38183
50499
} // closed Puma
 
50500
class CCExprResolve;
 
50501
class CExprResolve;
38184
50502
class WinIfExists;
38185
50503
class WinImportHandler;
38186
50504
class WinMacros;
38187
 
class CMatchSyntax;
38188
 
class ExtGnu;
 
50505
class WinAsm;
 
50506
class WinDeclSpecs;
 
50507
class WinMemberExplSpec;
 
50508
class WinTypeKeywords;
 
50509
class WinFriend;
38189
50510
class ExtAC;
38190
50511
class ExtACBuilderCoupling;
38191
50512
class ExtACSyntaxCoupling;
38192
50513
class ExtACTree;
38193
50514
class ExtACKeywords;
38194
 
class WinAsm;
38195
 
class WinDeclSpecs;
38196
 
class WinMemberExplSpec;
38197
 
class WinTypeKeywords;
 
50515
class ExtGnu;
38198
50516
class PragmaOnceUnitState;
38199
50517
class PragmaOnce;
38200
 
class CCExprResolve;
38201
 
class CExprResolve;
 
50518
class CMatchSyntax;
38202
50519
namespace Puma {
38203
50520
 
38204
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
50521
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
38205
50522
class CAttributeInfo : public CScopeRequest {
38206
 
#line 38207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50523
#line 50524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
50524
  friend class ::CCExprResolve;
 
50525
  friend class ::CExprResolve;
38207
50526
  friend class ::WinIfExists;
38208
50527
  friend class ::WinImportHandler;
38209
50528
  friend class ::WinMacros;
38210
 
  friend class ::CMatchSyntax;
38211
 
  friend class ::ExtGnu;
 
50529
  friend class ::WinAsm;
 
50530
  friend class ::WinDeclSpecs;
 
50531
  friend class ::WinMemberExplSpec;
 
50532
  friend class ::WinTypeKeywords;
 
50533
  friend class ::WinFriend;
38212
50534
  friend class ::ExtAC;
38213
50535
  friend class ::ExtACBuilderCoupling;
38214
50536
  friend class ::ExtACSyntaxCoupling;
38215
50537
  friend class ::ExtACTree;
38216
50538
  friend class ::ExtACKeywords;
38217
 
  friend class ::WinAsm;
38218
 
  friend class ::WinDeclSpecs;
38219
 
  friend class ::WinMemberExplSpec;
38220
 
  friend class ::WinTypeKeywords;
 
50539
  friend class ::ExtGnu;
38221
50540
  friend class ::PragmaOnceUnitState;
38222
50541
  friend class ::PragmaOnce;
38223
 
  friend class ::CCExprResolve;
38224
 
  friend class ::CExprResolve;
 
50542
  friend class ::CMatchSyntax;
38225
50543
 
38226
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
50544
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
38227
50545
 
38228
50546
  CTemplateInfo *_TemplateInfo;
38229
50547
  
38305
50623
 
38306
50624
#endif /* __CAttributeInfo_h__ */
38307
50625
 
38308
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
50626
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
38309
50627
// This file is part of PUMA.
38310
50628
// Copyright (C) 1999-2003  The PUMA developer team.
38311
50629
//                                                                
38330
50648
// function parameter info
38331
50649
 
38332
50650
 
38333
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
50651
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
38334
50652
namespace Puma {
38335
50653
 
38336
50654
 
38341
50659
/** \class CArgumentInfo CArgumentInfo.h Puma/infos/CArgumentInfo.h
38342
50660
 *  A CArgumentInfo object represents a function parameter declaration. */
38343
50661
 
38344
 
#line 38345 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50662
#line 50663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
38345
50663
} // closed Puma
 
50664
class CCExprResolve;
 
50665
class CExprResolve;
38346
50666
class WinIfExists;
38347
50667
class WinImportHandler;
38348
50668
class WinMacros;
38349
 
class CMatchSyntax;
38350
 
class ExtGnu;
 
50669
class WinAsm;
 
50670
class WinDeclSpecs;
 
50671
class WinMemberExplSpec;
 
50672
class WinTypeKeywords;
 
50673
class WinFriend;
38351
50674
class ExtAC;
38352
50675
class ExtACBuilderCoupling;
38353
50676
class ExtACSyntaxCoupling;
38354
50677
class ExtACTree;
38355
50678
class ExtACKeywords;
38356
 
class WinAsm;
38357
 
class WinDeclSpecs;
38358
 
class WinMemberExplSpec;
38359
 
class WinTypeKeywords;
 
50679
class ExtGnu;
38360
50680
class PragmaOnceUnitState;
38361
50681
class PragmaOnce;
38362
 
class CCExprResolve;
38363
 
class CExprResolve;
 
50682
class CMatchSyntax;
38364
50683
namespace Puma {
38365
50684
 
38366
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
50685
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
38367
50686
class CArgumentInfo : public CScopeRequest {
38368
 
#line 38369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50687
#line 50688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
50688
  friend class ::CCExprResolve;
 
50689
  friend class ::CExprResolve;
38369
50690
  friend class ::WinIfExists;
38370
50691
  friend class ::WinImportHandler;
38371
50692
  friend class ::WinMacros;
38372
 
  friend class ::CMatchSyntax;
38373
 
  friend class ::ExtGnu;
 
50693
  friend class ::WinAsm;
 
50694
  friend class ::WinDeclSpecs;
 
50695
  friend class ::WinMemberExplSpec;
 
50696
  friend class ::WinTypeKeywords;
 
50697
  friend class ::WinFriend;
38374
50698
  friend class ::ExtAC;
38375
50699
  friend class ::ExtACBuilderCoupling;
38376
50700
  friend class ::ExtACSyntaxCoupling;
38377
50701
  friend class ::ExtACTree;
38378
50702
  friend class ::ExtACKeywords;
38379
 
  friend class ::WinAsm;
38380
 
  friend class ::WinDeclSpecs;
38381
 
  friend class ::WinMemberExplSpec;
38382
 
  friend class ::WinTypeKeywords;
 
50703
  friend class ::ExtGnu;
38383
50704
  friend class ::PragmaOnceUnitState;
38384
50705
  friend class ::PragmaOnce;
38385
 
  friend class ::CCExprResolve;
38386
 
  friend class ::CExprResolve;
 
50706
  friend class ::CMatchSyntax;
38387
50707
 
38388
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
50708
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
38389
50709
 
38390
50710
  bool _hasDefaultArg; // can be set to true even without an init tree
38391
50711
                       // (needed for inline member functions)
38420
50740
 
38421
50741
#endif /* __CArgumentInfo_h__ */
38422
50742
 
38423
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
50743
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
38424
50744
// This file is part of PUMA.
38425
50745
// Copyright (C) 1999-2003  The PUMA developer team.
38426
50746
//                                                                
38443
50763
#define __ACIntroAnalyzer_h__
38444
50764
 
38445
50765
 
38446
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
50766
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
38447
50767
namespace Puma {
38448
50768
  class ACAspectInfo;
38449
50769
  class CClassDatabase;
38454
50774
namespace Puma {
38455
50775
 
38456
50776
 
38457
 
#line 38458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50777
#line 50778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
38458
50778
} // closed Puma
 
50779
class CCExprResolve;
 
50780
class CExprResolve;
38459
50781
class WinIfExists;
38460
50782
class WinImportHandler;
38461
50783
class WinMacros;
38462
 
class CMatchSyntax;
38463
 
class ExtGnu;
 
50784
class WinAsm;
 
50785
class WinDeclSpecs;
 
50786
class WinMemberExplSpec;
 
50787
class WinTypeKeywords;
 
50788
class WinFriend;
38464
50789
class ExtAC;
38465
50790
class ExtACBuilderCoupling;
38466
50791
class ExtACSyntaxCoupling;
38467
50792
class ExtACTree;
38468
50793
class ExtACKeywords;
38469
 
class WinAsm;
38470
 
class WinDeclSpecs;
38471
 
class WinMemberExplSpec;
38472
 
class WinTypeKeywords;
 
50794
class ExtGnu;
38473
50795
class PragmaOnceUnitState;
38474
50796
class PragmaOnce;
38475
 
class CCExprResolve;
38476
 
class CExprResolve;
 
50797
class CMatchSyntax;
38477
50798
namespace Puma {
38478
50799
 
38479
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
50800
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
38480
50801
class ACIntroAnalyzer {
38481
 
#line 38482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50802
#line 50803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
50803
  friend class ::CCExprResolve;
 
50804
  friend class ::CExprResolve;
38482
50805
  friend class ::WinIfExists;
38483
50806
  friend class ::WinImportHandler;
38484
50807
  friend class ::WinMacros;
38485
 
  friend class ::CMatchSyntax;
38486
 
  friend class ::ExtGnu;
 
50808
  friend class ::WinAsm;
 
50809
  friend class ::WinDeclSpecs;
 
50810
  friend class ::WinMemberExplSpec;
 
50811
  friend class ::WinTypeKeywords;
 
50812
  friend class ::WinFriend;
38487
50813
  friend class ::ExtAC;
38488
50814
  friend class ::ExtACBuilderCoupling;
38489
50815
  friend class ::ExtACSyntaxCoupling;
38490
50816
  friend class ::ExtACTree;
38491
50817
  friend class ::ExtACKeywords;
38492
 
  friend class ::WinAsm;
38493
 
  friend class ::WinDeclSpecs;
38494
 
  friend class ::WinMemberExplSpec;
38495
 
  friend class ::WinTypeKeywords;
 
50818
  friend class ::ExtGnu;
38496
50819
  friend class ::PragmaOnceUnitState;
38497
50820
  friend class ::PragmaOnce;
38498
 
  friend class ::CCExprResolve;
38499
 
  friend class ::CExprResolve;
 
50821
  friend class ::CMatchSyntax;
38500
50822
 
38501
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
50823
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
38502
50824
 
38503
50825
  CClassDatabase *_db;
38504
50826
  CScopeInfo *_current_scope;
38538
50860
 
38539
50861
#endif /* __ACIntroAnalyzer_h__ */
38540
50862
 
38541
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
50863
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
38542
50864
// This file is part of PUMA.
38543
50865
// Copyright (C) 1999-2003  The PUMA developer team.
38544
50866
//                                                                
38566
50888
 
38567
50889
namespace Puma {
38568
50890
  class CT_ClassDef;
 
50891
  class CT_Program;
38569
50892
}
38570
50893
 
38571
50894
namespace Puma {
38572
50895
 
38573
50896
 
38574
 
#line 38575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50897
#line 50898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
38575
50898
} // closed Puma
 
50899
class CCExprResolve;
 
50900
class CExprResolve;
38576
50901
class WinIfExists;
38577
50902
class WinImportHandler;
38578
50903
class WinMacros;
38579
 
class CMatchSyntax;
38580
 
class ExtGnu;
 
50904
class WinAsm;
 
50905
class WinDeclSpecs;
 
50906
class WinMemberExplSpec;
 
50907
class WinTypeKeywords;
 
50908
class WinFriend;
38581
50909
class ExtAC;
38582
50910
class ExtACBuilderCoupling;
38583
50911
class ExtACSyntaxCoupling;
38584
50912
class ExtACTree;
38585
50913
class ExtACKeywords;
38586
 
class WinAsm;
38587
 
class WinDeclSpecs;
38588
 
class WinMemberExplSpec;
38589
 
class WinTypeKeywords;
 
50914
class ExtGnu;
38590
50915
class PragmaOnceUnitState;
38591
50916
class PragmaOnce;
38592
 
class CCExprResolve;
38593
 
class CExprResolve;
 
50917
class CMatchSyntax;
38594
50918
namespace Puma {
38595
50919
 
38596
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
50920
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
38597
50921
class ACIntroducer {
38598
 
#line 38599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50922
#line 50923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
50923
  friend class ::CCExprResolve;
 
50924
  friend class ::CExprResolve;
38599
50925
  friend class ::WinIfExists;
38600
50926
  friend class ::WinImportHandler;
38601
50927
  friend class ::WinMacros;
38602
 
  friend class ::CMatchSyntax;
38603
 
  friend class ::ExtGnu;
 
50928
  friend class ::WinAsm;
 
50929
  friend class ::WinDeclSpecs;
 
50930
  friend class ::WinMemberExplSpec;
 
50931
  friend class ::WinTypeKeywords;
 
50932
  friend class ::WinFriend;
38604
50933
  friend class ::ExtAC;
38605
50934
  friend class ::ExtACBuilderCoupling;
38606
50935
  friend class ::ExtACSyntaxCoupling;
38607
50936
  friend class ::ExtACTree;
38608
50937
  friend class ::ExtACKeywords;
38609
 
  friend class ::WinAsm;
38610
 
  friend class ::WinDeclSpecs;
38611
 
  friend class ::WinMemberExplSpec;
38612
 
  friend class ::WinTypeKeywords;
 
50938
  friend class ::ExtGnu;
38613
50939
  friend class ::PragmaOnceUnitState;
38614
50940
  friend class ::PragmaOnce;
38615
 
  friend class ::CCExprResolve;
38616
 
  friend class ::CExprResolve;
 
50941
  friend class ::CMatchSyntax;
38617
50942
 
38618
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
50943
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
38619
50944
 
38620
50945
public:
38621
50946
  virtual ~ACIntroducer () {}
38622
50947
  
38623
50948
  // called when a new class/union/struct/aspect is created, current scope
38624
50949
  // is the global scope
38625
 
  virtual void class_before (CT_ClassDef*) {};
 
50950
  virtual void class_before (CT_ClassDef*) {}
38626
50951
 
38627
50952
  // called when a new class/union/struct/aspect body is parsed
38628
 
  virtual void class_begin (CT_ClassDef*) {};
 
50953
  virtual void class_begin (CT_ClassDef*) {}
38629
50954
 
38630
50955
  // called when a new class/union/struct/aspect definition ends
38631
50956
  // (still in the class scope)
38632
 
  virtual void class_end (CT_ClassDef*, CTree*) {};
 
50957
  virtual void class_end (CT_ClassDef*) {}
 
50958
  
 
50959
  // called after the parser tried to parse a base clause
 
50960
  virtual void base_clause_end (CT_ClassDef*, Token*) {}
 
50961
  
 
50962
  // called after the program has been parsed completely
 
50963
  virtual void trans_unit_end (CT_Program*) {}
38633
50964
};
38634
50965
 
38635
50966
} // namespace Puma
38636
50967
 
38637
50968
#endif /* __ACIntroducer_h__ */
38638
50969
 
38639
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
50970
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
38640
50971
 
38641
 
#line 38642 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
50972
#line 50973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
38642
50973
 
38643
50974
#ifndef __ac_fwd_ExtGnu__
38644
50975
#define __ac_fwd_ExtGnu__
38645
50976
class ExtGnu;
38646
50977
namespace AC {
38647
 
  template <class JoinPoint, class Binding>
38648
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
38649
 
  template <class JoinPoint, class Binding>
38650
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
38651
 
  template <class JoinPoint>
38652
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
38653
 
  template <class JoinPoint>
38654
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
38655
 
  template <class JoinPoint>
38656
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
38657
 
  template <class JoinPoint>
38658
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
38659
 
  template <class JoinPoint>
38660
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
38661
 
  template <class JoinPoint, class Binding>
38662
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
38663
 
  template <class JoinPoint, class Binding>
38664
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
38665
 
  template <class JoinPoint, class Binding>
38666
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
38667
 
  template <class JoinPoint, class Binding>
38668
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
38669
 
  template <class JoinPoint, class Binding>
38670
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
38671
 
  template <class JoinPoint, class Binding>
38672
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
38673
 
  template <class JoinPoint>
38674
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
38675
 
  template <class JoinPoint>
38676
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
38677
 
  template <class JoinPoint, class Binding>
38678
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
50978
  template <class JoinPoint>
 
50979
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
50980
  template <class JoinPoint>
 
50981
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
50982
  template <class JoinPoint>
 
50983
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
50984
  template <class JoinPoint>
 
50985
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
50986
  template <class JoinPoint>
 
50987
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
50988
  template <class JoinPoint>
 
50989
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
50990
  template <class JoinPoint>
 
50991
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
50992
  template <class JoinPoint>
 
50993
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
50994
  template <class JoinPoint>
 
50995
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
50996
  template <class JoinPoint>
 
50997
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
50998
  template <class JoinPoint>
 
50999
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
51000
  template <class JoinPoint>
 
51001
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
51002
  template <class JoinPoint>
 
51003
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
51004
  template <class JoinPoint>
 
51005
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
51006
  template <class JoinPoint>
 
51007
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
51008
  template <class JoinPoint>
 
51009
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
51010
  template <class JoinPoint>
 
51011
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
38679
51012
}
38680
51013
#endif
38681
51014
 
38682
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
38683
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
51015
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
51016
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
38684
51017
#endif
38685
51018
 
38686
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
51019
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
38687
51020
// This file is part of PUMA.
38688
51021
// Copyright (C) 1999-2003  The PUMA developer team.
38689
51022
//                                                                
38706
51039
#define __CCNameLookup_h__
38707
51040
 
38708
51041
 
38709
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
38710
 
#include <vector>
38711
 
#include <map>
38712
 
 
 
51042
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
38713
51043
namespace Puma {
38714
51044
 
38715
51045
 
38717
51047
class CBaseClassInfo;
38718
51048
 
38719
51049
 
38720
 
#line 38721 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51050
#line 51051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
38721
51051
} // closed Puma
 
51052
class CCExprResolve;
 
51053
class CExprResolve;
38722
51054
class WinIfExists;
38723
51055
class WinImportHandler;
38724
51056
class WinMacros;
38725
 
class CMatchSyntax;
38726
 
class ExtGnu;
 
51057
class WinAsm;
 
51058
class WinDeclSpecs;
 
51059
class WinMemberExplSpec;
 
51060
class WinTypeKeywords;
 
51061
class WinFriend;
38727
51062
class ExtAC;
38728
51063
class ExtACBuilderCoupling;
38729
51064
class ExtACSyntaxCoupling;
38730
51065
class ExtACTree;
38731
51066
class ExtACKeywords;
38732
 
class WinAsm;
38733
 
class WinDeclSpecs;
38734
 
class WinMemberExplSpec;
38735
 
class WinTypeKeywords;
 
51067
class ExtGnu;
38736
51068
class PragmaOnceUnitState;
38737
51069
class PragmaOnce;
38738
 
class CCExprResolve;
38739
 
class CExprResolve;
 
51070
class CMatchSyntax;
38740
51071
namespace Puma {
38741
51072
 
38742
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
51073
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
38743
51074
class CCNameLookup {
38744
 
#line 38745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51075
#line 51076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51076
  friend class ::CCExprResolve;
 
51077
  friend class ::CExprResolve;
38745
51078
  friend class ::WinIfExists;
38746
51079
  friend class ::WinImportHandler;
38747
51080
  friend class ::WinMacros;
38748
 
  friend class ::CMatchSyntax;
38749
 
  friend class ::ExtGnu;
 
51081
  friend class ::WinAsm;
 
51082
  friend class ::WinDeclSpecs;
 
51083
  friend class ::WinMemberExplSpec;
 
51084
  friend class ::WinTypeKeywords;
 
51085
  friend class ::WinFriend;
38750
51086
  friend class ::ExtAC;
38751
51087
  friend class ::ExtACBuilderCoupling;
38752
51088
  friend class ::ExtACSyntaxCoupling;
38753
51089
  friend class ::ExtACTree;
38754
51090
  friend class ::ExtACKeywords;
38755
 
  friend class ::WinAsm;
38756
 
  friend class ::WinDeclSpecs;
38757
 
  friend class ::WinMemberExplSpec;
38758
 
  friend class ::WinTypeKeywords;
 
51091
  friend class ::ExtGnu;
38759
51092
  friend class ::PragmaOnceUnitState;
38760
51093
  friend class ::PragmaOnce;
38761
 
  friend class ::CCExprResolve;
38762
 
  friend class ::CExprResolve;
 
51094
  friend class ::CMatchSyntax;
38763
51095
 
38764
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
51096
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
38765
51097
 
38766
51098
  typedef std::map<CClassInfo*, bool> BaseClassMap;
38767
51099
  
38818
51150
 
38819
51151
private: 
38820
51152
  
38821
 
#line 38822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
38822
 
public: inline void __exec_old_lookup(::Puma::CStructure * ,bool ,bool );
 
51153
#line 51154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51154
public: __attribute__((always_inline)) inline void __exec_old_lookup(::Puma::CStructure * ,bool ,bool );
38823
51155
private:
38824
51156
 
38825
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
51157
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
38826
51158
void lookup (CStructure *, bool, bool);
38827
51159
  void unqualifiedLookup (CStructure *, bool);
38828
51160
  CObjectInfo *unqualLookup (CStructure *, bool);
38900
51232
 
38901
51233
#endif /* __CCNameLookup_h__ */
38902
51234
 
38903
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
51235
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
38904
51236
 
38905
 
#line 38906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51237
#line 51238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
38906
51238
 
38907
51239
#ifndef __ac_fwd_ExtACKeywords__
38908
51240
#define __ac_fwd_ExtACKeywords__
38909
51241
class ExtACKeywords;
38910
51242
namespace AC {
38911
 
  template <class JoinPoint, class Binding>
38912
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
38913
 
  template <class JoinPoint, class Binding>
38914
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
38915
 
  template <class JoinPoint>
38916
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
51243
  template <class JoinPoint>
 
51244
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
51245
  template <class JoinPoint>
 
51246
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
51247
  template <class JoinPoint>
 
51248
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
38917
51249
}
38918
51250
#endif
38919
51251
 
38920
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
38921
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
51252
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
51253
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
38922
51254
#endif
38923
51255
 
38924
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
51256
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
38925
51257
// This file is part of PUMA.
38926
51258
// Copyright (C) 1999-2003  The PUMA developer team.
38927
51259
//                                                                
38945
51277
 
38946
51278
// Special project derivation for C++ sources.
38947
51279
 
38948
 
 
38949
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
38950
 
// This file is part of PUMA.
38951
 
// Copyright (C) 1999-2003  The PUMA developer team.
38952
 
//                                                                
38953
 
// This program is free software;  you can redistribute it and/or 
38954
 
// modify it under the terms of the GNU General Public License as 
38955
 
// published by the Free Software Foundation; either version 2 of 
38956
 
// the License, or (at your option) any later version.            
38957
 
//                                                                
38958
 
// This program is distributed in the hope that it will be useful,
38959
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
38960
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
38961
 
// GNU General Public License for more details.                   
38962
 
//                                                                
38963
 
// You should have received a copy of the GNU General Public      
38964
 
// License along with this program; if not, write to the Free     
38965
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
38966
 
// MA  02111-1307  USA                                            
38967
 
 
38968
 
#ifndef __Config_h__
38969
 
#define __Config_h__
38970
 
 
38971
 
// Class Config provides evaluation of configuration 
38972
 
// information from file or command line.
38973
 
 
38974
 
 
38975
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
38976
 
// This file is part of PUMA.
38977
 
// Copyright (C) 1999-2003  The PUMA developer team.
38978
 
//                                                                
38979
 
// This program is free software;  you can redistribute it and/or 
38980
 
// modify it under the terms of the GNU General Public License as 
38981
 
// published by the Free Software Foundation; either version 2 of 
38982
 
// the License, or (at your option) any later version.            
38983
 
//                                                                
38984
 
// This program is distributed in the hope that it will be useful,
38985
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
38986
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
38987
 
// GNU General Public License for more details.                   
38988
 
//                                                                
38989
 
// You should have received a copy of the GNU General Public      
38990
 
// License along with this program; if not, write to the Free     
38991
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
38992
 
// MA  02111-1307  USA                                            
38993
 
 
38994
 
#ifndef __Flags_h__
38995
 
#define __Flags_h__
38996
 
 
38997
 
namespace Puma {
38998
 
 
38999
 
 
39000
 
 
39001
 
#line 39002 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39002
 
} // closed Puma
39003
 
class WinIfExists;
39004
 
class WinImportHandler;
39005
 
class WinMacros;
39006
 
class CMatchSyntax;
39007
 
class ExtGnu;
39008
 
class ExtAC;
39009
 
class ExtACBuilderCoupling;
39010
 
class ExtACSyntaxCoupling;
39011
 
class ExtACTree;
39012
 
class ExtACKeywords;
39013
 
class WinAsm;
39014
 
class WinDeclSpecs;
39015
 
class WinMemberExplSpec;
39016
 
class WinTypeKeywords;
39017
 
class PragmaOnceUnitState;
39018
 
class PragmaOnce;
39019
 
class CCExprResolve;
39020
 
class CExprResolve;
39021
 
namespace Puma {
39022
 
 
39023
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
39024
 
class Flags {
39025
 
#line 39026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39026
 
  friend class ::WinIfExists;
39027
 
  friend class ::WinImportHandler;
39028
 
  friend class ::WinMacros;
39029
 
  friend class ::CMatchSyntax;
39030
 
  friend class ::ExtGnu;
39031
 
  friend class ::ExtAC;
39032
 
  friend class ::ExtACBuilderCoupling;
39033
 
  friend class ::ExtACSyntaxCoupling;
39034
 
  friend class ::ExtACTree;
39035
 
  friend class ::ExtACKeywords;
39036
 
  friend class ::WinAsm;
39037
 
  friend class ::WinDeclSpecs;
39038
 
  friend class ::WinMemberExplSpec;
39039
 
  friend class ::WinTypeKeywords;
39040
 
  friend class ::PragmaOnceUnitState;
39041
 
  friend class ::PragmaOnce;
39042
 
  friend class ::CCExprResolve;
39043
 
  friend class ::CExprResolve;
39044
 
 
39045
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
39046
 
 
39047
 
public:
39048
 
  enum Flag {
39049
 
    NONE                       = 0x0,
39050
 
    
39051
 
    SKIP_FCT_BODY              = 0x1,
39052
 
    SKIP_INITS                 = 0x2,
39053
 
    
39054
 
    // GNU extensions
39055
 
    GNU_NESTED_FCT             = 0x4,
39056
 
    GNU_CONDITION_SCOPE        = 0x8,
39057
 
    GNU_PARAM_DECL             = 0x10,
39058
 
    GNU_FCT_DECL               = 0x20,
39059
 
    GNU_PARAM_SCOPE            = 0x40,
39060
 
    GNU_DEFAULT_ARGS           = 0x80,
39061
 
    GNU_EXTENDED_ASM           = 0x100,
39062
 
    GNU_EXTENDED_EXPR          = 0x200,
39063
 
    GNU_LONG_LONG              = 0x400,
39064
 
    GNU_NAME_SCOPE             = 0x800, 
39065
 
    GNU_IMPLICIT_INT           = 0x1000,
39066
 
    GNU_FCT_ATTRIBUTE          = 0x2000,
39067
 
    GNU_IF_THEN_EXPR           = 0x4000
39068
 
  };
39069
 
  
39070
 
private:
39071
 
  Flag _Flags;
39072
 
  
39073
 
public:
39074
 
  Flags ();
39075
 
  Flags (const Flags &);
39076
 
  Flags &operator =(const Flags &);
39077
 
 
39078
 
  // add/remove flag
39079
 
  Flags &operator +=(Flag);
39080
 
  Flags &operator -=(Flag);
39081
 
  
39082
 
  // test for flag
39083
 
  bool operator ==(Flag) const;
39084
 
  bool operator !=(Flag) const;
39085
 
};
39086
 
 
39087
 
inline Flags::Flags () : _Flags (NONE) 
39088
 
 {}
39089
 
inline Flags::Flags (const Flags &f)
39090
 
 { _Flags = f._Flags; }
39091
 
inline Flags &Flags::operator =(const Flags &f)
39092
 
 { _Flags = f._Flags; return *(Flags*)this; }
39093
 
 
39094
 
inline Flags &Flags::operator +=(Flags::Flag f)
39095
 
 { _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
39096
 
inline Flags &Flags::operator -=(Flags::Flag f)
39097
 
 { _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
39098
 
 
39099
 
inline bool Flags::operator ==(Flags::Flag f) const
39100
 
 { return _Flags & f; }
39101
 
inline bool Flags::operator !=(Flags::Flag f) const
39102
 
 { return ! (_Flags & f); }
39103
 
 
39104
 
 
39105
 
} // namespace Puma
39106
 
 
39107
 
#endif /* __Flags_h__ */
39108
 
 
39109
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
39110
 
// This file is part of PUMA.
39111
 
// Copyright (C) 1999-2003  The PUMA developer team.
39112
 
//                                                                
39113
 
// This program is free software;  you can redistribute it and/or 
39114
 
// modify it under the terms of the GNU General Public License as 
39115
 
// published by the Free Software Foundation; either version 2 of 
39116
 
// the License, or (at your option) any later version.            
39117
 
//                                                                
39118
 
// This program is distributed in the hope that it will be useful,
39119
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39120
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39121
 
// GNU General Public License for more details.                   
39122
 
//                                                                
39123
 
// You should have received a copy of the GNU General Public      
39124
 
// License along with this program; if not, write to the Free     
39125
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39126
 
// MA  02111-1307  USA                                            
39127
 
 
39128
 
#ifndef __ConfOption_h__
39129
 
#define __ConfOption_h__
39130
 
 
39131
 
 
39132
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
39133
 
#include <stdlib.h>
39134
 
 
39135
 
namespace Puma {
39136
 
 
39137
 
 
39138
 
 
39139
 
#line 39140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39140
 
} // closed Puma
39141
 
class WinIfExists;
39142
 
class WinImportHandler;
39143
 
class WinMacros;
39144
 
class CMatchSyntax;
39145
 
class ExtGnu;
39146
 
class ExtAC;
39147
 
class ExtACBuilderCoupling;
39148
 
class ExtACSyntaxCoupling;
39149
 
class ExtACTree;
39150
 
class ExtACKeywords;
39151
 
class WinAsm;
39152
 
class WinDeclSpecs;
39153
 
class WinMemberExplSpec;
39154
 
class WinTypeKeywords;
39155
 
class PragmaOnceUnitState;
39156
 
class PragmaOnce;
39157
 
class CCExprResolve;
39158
 
class CExprResolve;
39159
 
namespace Puma {
39160
 
 
39161
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
39162
 
class ConfOption {
39163
 
#line 39164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39164
 
  friend class ::WinIfExists;
39165
 
  friend class ::WinImportHandler;
39166
 
  friend class ::WinMacros;
39167
 
  friend class ::CMatchSyntax;
39168
 
  friend class ::ExtGnu;
39169
 
  friend class ::ExtAC;
39170
 
  friend class ::ExtACBuilderCoupling;
39171
 
  friend class ::ExtACSyntaxCoupling;
39172
 
  friend class ::ExtACTree;
39173
 
  friend class ::ExtACKeywords;
39174
 
  friend class ::WinAsm;
39175
 
  friend class ::WinDeclSpecs;
39176
 
  friend class ::WinMemberExplSpec;
39177
 
  friend class ::WinTypeKeywords;
39178
 
  friend class ::PragmaOnceUnitState;
39179
 
  friend class ::PragmaOnce;
39180
 
  friend class ::CCExprResolve;
39181
 
  friend class ::CExprResolve;
39182
 
 
39183
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
39184
 
 
39185
 
  const char *_name;
39186
 
  Array<const char *> _args;
39187
 
  
39188
 
public:
39189
 
  ConfOption (const char *);
39190
 
  ConfOption (const char *, const char *);
39191
 
  ConfOption (const char *, const char *, const char *);
39192
 
  ~ConfOption ();
39193
 
  
39194
 
  const char *Name () const;
39195
 
  unsigned Arguments () const;
39196
 
  const char *Argument (unsigned) const;
39197
 
  
39198
 
  void addArgument (const char *);
39199
 
};
39200
 
 
39201
 
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
39202
 
 { _name = StrCol::dup (n); }
39203
 
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1) 
39204
 
 { _name = StrCol::dup (n); addArgument (a1); }
39205
 
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1) 
39206
 
 { _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
39207
 
 
39208
 
inline ConfOption::~ConfOption ()
39209
 
 { delete[] _name; 
39210
 
   for (unsigned i = 0; i < Arguments (); i++) 
39211
 
     delete[] Argument (i);
39212
 
 }
39213
 
 
39214
 
inline const char *ConfOption::Name () const 
39215
 
 { return _name; }
39216
 
inline unsigned ConfOption::Arguments () const
39217
 
 { return _args.length (); }
39218
 
inline const char *ConfOption::Argument (unsigned i) const
39219
 
 { return _args.lookup (i); }
39220
 
  
39221
 
inline void ConfOption::addArgument (const char *a) 
39222
 
 { if (a) _args.append (StrCol::dup (a)); }
39223
 
 
39224
 
 
39225
 
} // namespace Puma
39226
 
 
39227
 
#endif /* __ConfOption_h__ */
39228
 
 
39229
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
39230
 
// This file is part of PUMA.
39231
 
// Copyright (C) 1999-2003  The PUMA developer team.
39232
 
//                                                                
39233
 
// This program is free software;  you can redistribute it and/or 
39234
 
// modify it under the terms of the GNU General Public License as 
39235
 
// published by the Free Software Foundation; either version 2 of 
39236
 
// the License, or (at your option) any later version.            
39237
 
//                                                                
39238
 
// This program is distributed in the hope that it will be useful,
39239
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39240
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39241
 
// GNU General Public License for more details.                   
39242
 
//                                                                
39243
 
// You should have received a copy of the GNU General Public      
39244
 
// License along with this program; if not, write to the Free     
39245
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39246
 
// MA  02111-1307  USA                                            
39247
 
 
39248
 
#ifndef __error_stream_h__
39249
 
#define __error_stream_h__
39250
 
 
39251
 
// An ErrorStream is a special ErrorSink that prints out an error message
39252
 
// as soon as it complete. It also stores the maximum error severity.
39253
 
// The ErrorStream can be reset to it's initial state.
39254
 
 
39255
 
 
39256
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
39257
 
using namespace std;
39258
 
 
39259
 
namespace Puma {
39260
 
 
39261
 
 
39262
 
 
39263
 
#line 39264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39264
 
} // closed Puma
39265
 
class WinIfExists;
39266
 
class WinImportHandler;
39267
 
class WinMacros;
39268
 
class CMatchSyntax;
39269
 
class ExtGnu;
39270
 
class ExtAC;
39271
 
class ExtACBuilderCoupling;
39272
 
class ExtACSyntaxCoupling;
39273
 
class ExtACTree;
39274
 
class ExtACKeywords;
39275
 
class WinAsm;
39276
 
class WinDeclSpecs;
39277
 
class WinMemberExplSpec;
39278
 
class WinTypeKeywords;
39279
 
class PragmaOnceUnitState;
39280
 
class PragmaOnce;
39281
 
class CCExprResolve;
39282
 
class CExprResolve;
39283
 
namespace Puma {
39284
 
 
39285
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
39286
 
class ErrorStream : public ErrorSink {
39287
 
#line 39288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39288
 
  friend class ::WinIfExists;
39289
 
  friend class ::WinImportHandler;
39290
 
  friend class ::WinMacros;
39291
 
  friend class ::CMatchSyntax;
39292
 
  friend class ::ExtGnu;
39293
 
  friend class ::ExtAC;
39294
 
  friend class ::ExtACBuilderCoupling;
39295
 
  friend class ::ExtACSyntaxCoupling;
39296
 
  friend class ::ExtACTree;
39297
 
  friend class ::ExtACKeywords;
39298
 
  friend class ::WinAsm;
39299
 
  friend class ::WinDeclSpecs;
39300
 
  friend class ::WinMemberExplSpec;
39301
 
  friend class ::WinTypeKeywords;
39302
 
  friend class ::PragmaOnceUnitState;
39303
 
  friend class ::PragmaOnce;
39304
 
  friend class ::CCExprResolve;
39305
 
  friend class ::CExprResolve;
39306
 
 
39307
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
39308
 
 
39309
 
  ostream *_ostream;
39310
 
  ErrorSeverity _max_severity;
39311
 
  ErrorSeverity _curr_severity;
39312
 
  Location _location;
39313
 
  bool _have_location;
39314
 
  std::ostringstream *_msg;
39315
 
  bool _silently;
39316
 
 
39317
 
  void output ();
39318
 
  void clear ();
39319
 
 
39320
 
public:
39321
 
  ErrorStream (std::ostream &s = cerr) : _ostream (&s), _msg ((std::ostringstream*)0)
39322
 
   { reset (); _silently = false; }
39323
 
  virtual ~ErrorStream () { delete _msg; }
39324
 
 
39325
 
  ErrorStream &operator << (const char *);
39326
 
  ErrorStream &operator << (long);
39327
 
  ErrorStream &operator << (unsigned);
39328
 
  ErrorStream &operator << (int);
39329
 
  ErrorStream &operator << (short);
39330
 
  ErrorStream &operator << (char);
39331
 
  ErrorStream &operator << (double);
39332
 
  ErrorStream &operator << (const ErrorSeverity &);
39333
 
  ErrorStream &operator << (Location);
39334
 
  ErrorStream &operator << (const Printable &);
39335
 
  ErrorStream &operator << (void (*f)(ErrorSink &));
39336
 
 
39337
 
  void endMessage ();
39338
 
  void reset ();
39339
 
  void silent ();
39340
 
  void loud ();
39341
 
 
39342
 
  ErrorSeverity severity () const { return _max_severity; }
39343
 
};
39344
 
 
39345
 
 
39346
 
} // namespace Puma
39347
 
 
39348
 
#endif /* __error_stream_h__ */
39349
 
 
39350
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
39351
 
// This file is part of PUMA.
39352
 
// Copyright (C) 1999-2003  The PUMA developer team.
39353
 
//                                                                
39354
 
// This program is free software;  you can redistribute it and/or 
39355
 
// modify it under the terms of the GNU General Public License as 
39356
 
// published by the Free Software Foundation; either version 2 of 
39357
 
// the License, or (at your option) any later version.            
39358
 
//                                                                
39359
 
// This program is distributed in the hope that it will be useful,
39360
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39361
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39362
 
// GNU General Public License for more details.                   
39363
 
//                                                                
39364
 
// You should have received a copy of the GNU General Public      
39365
 
// License along with this program; if not, write to the Free     
39366
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39367
 
// MA  02111-1307  USA                                            
39368
 
 
39369
 
#ifndef __OptsParser_h__
39370
 
#define __OptsParser_h__
39371
 
 
39372
 
 
39373
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
39374
 
// This file is part of PUMA.
39375
 
// Copyright (C) 1999-2003  The PUMA developer team.
39376
 
//                                                                
39377
 
// This program is free software;  you can redistribute it and/or 
39378
 
// modify it under the terms of the GNU General Public License as 
39379
 
// published by the Free Software Foundation; either version 2 of 
39380
 
// the License, or (at your option) any later version.            
39381
 
//                                                                
39382
 
// This program is distributed in the hope that it will be useful,
39383
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39384
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39385
 
// GNU General Public License for more details.                   
39386
 
//                                                                
39387
 
// You should have received a copy of the GNU General Public      
39388
 
// License along with this program; if not, write to the Free     
39389
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39390
 
// MA  02111-1307  USA                                            
39391
 
 
39392
 
#ifndef __SimpleParser_h__
39393
 
#define __SimpleParser_h__
39394
 
 
39395
 
 
39396
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
39397
 
using namespace std;
39398
 
 
39399
 
namespace Puma {
39400
 
 
39401
 
 
39402
 
 
39403
 
#line 39404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39404
 
} // closed Puma
39405
 
class WinIfExists;
39406
 
class WinImportHandler;
39407
 
class WinMacros;
39408
 
class CMatchSyntax;
39409
 
class ExtGnu;
39410
 
class ExtAC;
39411
 
class ExtACBuilderCoupling;
39412
 
class ExtACSyntaxCoupling;
39413
 
class ExtACTree;
39414
 
class ExtACKeywords;
39415
 
class WinAsm;
39416
 
class WinDeclSpecs;
39417
 
class WinMemberExplSpec;
39418
 
class WinTypeKeywords;
39419
 
class PragmaOnceUnitState;
39420
 
class PragmaOnce;
39421
 
class CCExprResolve;
39422
 
class CExprResolve;
39423
 
namespace Puma {
39424
 
 
39425
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
39426
 
class SimpleParser {
39427
 
#line 39428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39428
 
  friend class ::WinIfExists;
39429
 
  friend class ::WinImportHandler;
39430
 
  friend class ::WinMacros;
39431
 
  friend class ::CMatchSyntax;
39432
 
  friend class ::ExtGnu;
39433
 
  friend class ::ExtAC;
39434
 
  friend class ::ExtACBuilderCoupling;
39435
 
  friend class ::ExtACSyntaxCoupling;
39436
 
  friend class ::ExtACTree;
39437
 
  friend class ::ExtACKeywords;
39438
 
  friend class ::WinAsm;
39439
 
  friend class ::WinDeclSpecs;
39440
 
  friend class ::WinMemberExplSpec;
39441
 
  friend class ::WinTypeKeywords;
39442
 
  friend class ::PragmaOnceUnitState;
39443
 
  friend class ::PragmaOnce;
39444
 
  friend class ::CCExprResolve;
39445
 
  friend class ::CExprResolve;
39446
 
 
39447
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
39448
 
 
39449
 
public:
39450
 
  SimpleParser() {}
39451
 
  ~SimpleParser() {}
39452
 
   
39453
 
  static int tokenize (const string &, vector<string> &, 
39454
 
                       const string &delimiters = " ");
39455
 
  static string strip (const string &);
39456
 
};
39457
 
 
39458
 
 
39459
 
} // namespace Puma
39460
 
 
39461
 
#endif /* __SimpleParser_h__ */
39462
 
 
39463
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
39464
 
using namespace std;
39465
 
 
39466
 
namespace Puma {
39467
 
 
39468
 
 
39469
 
 
39470
 
#line 39471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39471
 
} // closed Puma
39472
 
class WinIfExists;
39473
 
class WinImportHandler;
39474
 
class WinMacros;
39475
 
class CMatchSyntax;
39476
 
class ExtGnu;
39477
 
class ExtAC;
39478
 
class ExtACBuilderCoupling;
39479
 
class ExtACSyntaxCoupling;
39480
 
class ExtACTree;
39481
 
class ExtACKeywords;
39482
 
class WinAsm;
39483
 
class WinDeclSpecs;
39484
 
class WinMemberExplSpec;
39485
 
class WinTypeKeywords;
39486
 
class PragmaOnceUnitState;
39487
 
class PragmaOnce;
39488
 
class CCExprResolve;
39489
 
class CExprResolve;
39490
 
namespace Puma {
39491
 
 
39492
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
39493
 
class OptsParser : public SimpleParser {
39494
 
#line 39495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39495
 
  friend class ::WinIfExists;
39496
 
  friend class ::WinImportHandler;
39497
 
  friend class ::WinMacros;
39498
 
  friend class ::CMatchSyntax;
39499
 
  friend class ::ExtGnu;
39500
 
  friend class ::ExtAC;
39501
 
  friend class ::ExtACBuilderCoupling;
39502
 
  friend class ::ExtACSyntaxCoupling;
39503
 
  friend class ::ExtACTree;
39504
 
  friend class ::ExtACKeywords;
39505
 
  friend class ::WinAsm;
39506
 
  friend class ::WinDeclSpecs;
39507
 
  friend class ::WinMemberExplSpec;
39508
 
  friend class ::WinTypeKeywords;
39509
 
  friend class ::PragmaOnceUnitState;
39510
 
  friend class ::PragmaOnce;
39511
 
  friend class ::CCExprResolve;
39512
 
  friend class ::CExprResolve;
39513
 
 
39514
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
39515
 
 
39516
 
  vector<string> m_argv;
39517
 
  unsigned int m_curarg;
39518
 
  unsigned int m_tonext;
39519
 
  int m_number;
39520
 
 
39521
 
  string m_arg;
39522
 
  string m_opt;
39523
 
   
39524
 
public:
39525
 
  
39526
 
  enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
39527
 
  
39528
 
  enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
39529
 
  
39530
 
  struct Option {
39531
 
#line 39532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39532
 
  friend class ::WinIfExists;
39533
 
  friend class ::WinImportHandler;
39534
 
  friend class ::WinMacros;
39535
 
  friend class ::CMatchSyntax;
39536
 
  friend class ::ExtGnu;
39537
 
  friend class ::ExtAC;
39538
 
  friend class ::ExtACBuilderCoupling;
39539
 
  friend class ::ExtACSyntaxCoupling;
39540
 
  friend class ::ExtACTree;
39541
 
  friend class ::ExtACKeywords;
39542
 
  friend class ::WinAsm;
39543
 
  friend class ::WinDeclSpecs;
39544
 
  friend class ::WinMemberExplSpec;
39545
 
  friend class ::WinTypeKeywords;
39546
 
  friend class ::PragmaOnceUnitState;
39547
 
  friend class ::PragmaOnce;
39548
 
  friend class ::CCExprResolve;
39549
 
  friend class ::CExprResolve;
39550
 
 
39551
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
39552
 
 
39553
 
    int number;
39554
 
    char key; 
39555
 
    const char *name;
39556
 
    const char *desc;
39557
 
    ArgType args;
39558
 
  };
39559
 
 
39560
 
private:
39561
 
  const Option *m_opts;
39562
 
   
39563
 
public:
39564
 
  OptsParser (int, char **, const Option *);
39565
 
  OptsParser (const string &, const Option *);
39566
 
 
39567
 
  int getCurrentArgNum () const;
39568
 
  int getNextArgNum () const;
39569
 
  int getOption ();
39570
 
  int getResult () const;
39571
 
  
39572
 
  const string &getArgument () const;
39573
 
  const string &getOptionName () const;
39574
 
 
39575
 
  bool revokeArgument();
39576
 
   
39577
 
private:
39578
 
  int  getShortOption (const string &);
39579
 
  int  getLongOption  (const string &);
39580
 
  bool processOption  (const string &, unsigned int,ArgType argtype);
39581
 
};
39582
 
 
39583
 
 
39584
 
} // namespace Puma
39585
 
 
39586
 
#endif /* __OptsParser_h__ */
39587
 
 
39588
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
39589
 
using namespace std;
39590
 
 
39591
 
namespace Puma {
39592
 
 
39593
 
 
39594
 
 
39595
 
#line 39596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39596
 
} // closed Puma
39597
 
class WinIfExists;
39598
 
class WinImportHandler;
39599
 
class WinMacros;
39600
 
class CMatchSyntax;
39601
 
class ExtGnu;
39602
 
class ExtAC;
39603
 
class ExtACBuilderCoupling;
39604
 
class ExtACSyntaxCoupling;
39605
 
class ExtACTree;
39606
 
class ExtACKeywords;
39607
 
class WinAsm;
39608
 
class WinDeclSpecs;
39609
 
class WinMemberExplSpec;
39610
 
class WinTypeKeywords;
39611
 
class PragmaOnceUnitState;
39612
 
class PragmaOnce;
39613
 
class CCExprResolve;
39614
 
class CExprResolve;
39615
 
namespace Puma {
39616
 
 
39617
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
39618
 
class Config {
39619
 
#line 39620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39620
 
  friend class ::WinIfExists;
39621
 
  friend class ::WinImportHandler;
39622
 
  friend class ::WinMacros;
39623
 
  friend class ::CMatchSyntax;
39624
 
  friend class ::ExtGnu;
39625
 
  friend class ::ExtAC;
39626
 
  friend class ::ExtACBuilderCoupling;
39627
 
  friend class ::ExtACSyntaxCoupling;
39628
 
  friend class ::ExtACTree;
39629
 
  friend class ::ExtACKeywords;
39630
 
  friend class ::WinAsm;
39631
 
  friend class ::WinDeclSpecs;
39632
 
  friend class ::WinMemberExplSpec;
39633
 
  friend class ::WinTypeKeywords;
39634
 
  friend class ::PragmaOnceUnitState;
39635
 
  friend class ::PragmaOnce;
39636
 
  friend class ::CCExprResolve;
39637
 
  friend class ::CExprResolve;
39638
 
 
39639
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
39640
 
 
39641
 
  Flags _flags;
39642
 
  ErrorStream &_err;
39643
 
  Array<const ConfOption *> _options;
39644
 
  
39645
 
public:
39646
 
  enum OPTIONS {
39647
 
    PRE_ASSERT = 1,
39648
 
    PRE_DEFINE, 
39649
 
    PRE_UNDEFINE, 
39650
 
    PRE_LOCK_MACRO,
39651
 
    PRE_INCLUDE,
39652
 
    CFG_FILE, 
39653
 
    PROJ_PATH, 
39654
 
    PROJ_DESTINATION,
39655
 
    SET_SUFFIX, 
39656
 
    SET_EXTENSION, 
39657
 
    SET_WRITE_PROTECTED,
39658
 
    SET_OPTION, 
39659
 
    SET_OPTION_ARG
39660
 
  };
39661
 
   
39662
 
public:
39663
 
  Config (ErrorStream &);
39664
 
  Config (const Config &);
39665
 
  ~Config ();
39666
 
  
39667
 
  // read config file
39668
 
  Config (ErrorStream &, const char *);
39669
 
  // read command line
39670
 
  Config (ErrorStream &, int &, char **&);
39671
 
  // read config file and command line
39672
 
  Config (ErrorStream &, const char *, int &, char **&);
39673
 
        
39674
 
  // join with another configuration
39675
 
  void Join (const Config &);
39676
 
 
39677
 
  // evaluate file, if file not given read from $PUMA_CONFIG
39678
 
  // or /etc/puma.config
39679
 
  void Read (const char * = (const char *)0);
39680
 
  // evaluate command line
39681
 
  void Read (int &, char **&);
39682
 
 
39683
 
  // add options to configuration
39684
 
  void Add (const ConfOption *);
39685
 
  void Add (const char *);
39686
 
  void Add (const char *, const char *);
39687
 
  void Add (const char *, const char *, const char *);
39688
 
 
39689
 
  // get options
39690
 
  unsigned Options () const;
39691
 
  const ConfOption *Option (unsigned) const;
39692
 
  const ConfOption *Option (const char *) const;
39693
 
 
39694
 
  Flags FlagTable () const;
39695
 
  
39696
 
private:
39697
 
  bool Valid (const char *, const char * = (const char *)0) const;
39698
 
 
39699
 
  bool Process (OptsParser&);
39700
 
  bool ProcessAssert (const string&);
39701
 
  bool ProcessDefine (const string&);
39702
 
  bool ProcessLockMacro (const string&);
39703
 
  bool ProcessUndefine (const string&);
39704
 
  bool ProcessConfigFile (const string&,const string&);
39705
 
  bool ProcessArgument (const string&,const string&);
39706
 
  bool ProcessPathArgument (const string&,const string&);
39707
 
 
39708
 
};
39709
 
 
39710
 
inline Config::Config (ErrorStream &e) : _err (e)
39711
 
 {}
39712
 
inline Config::Config (const Config &c) : _err (c._err)
39713
 
 { Join (c); }
39714
 
  
39715
 
inline Config::Config (ErrorStream &e, const char *file) : _err (e)
39716
 
 { Read (file); }
39717
 
inline Config::Config (ErrorStream &e, int &argc, char **&argv) : _err (e)
39718
 
 { Read (argc, argv); }
39719
 
inline Config::Config (ErrorStream &e, const char *file, int &argc, char **&argv) : _err (e)
39720
 
 { Read (file); Read (argc, argv); }
39721
 
 
39722
 
inline Config::~Config  ()
39723
 
 { for (unsigned i = 0; i < Options (); i++)
39724
 
     delete (ConfOption *) Option (i);
39725
 
 }
39726
 
 
39727
 
inline void Config::Add (const ConfOption *o) 
39728
 
 { _options.append (o); }
39729
 
inline void Config::Add (const char *n)
39730
 
 { Add (new ConfOption (n)); }
39731
 
inline void Config::Add (const char *n, const char *a1)
39732
 
 { Add (new ConfOption (n, a1)); }
39733
 
inline void Config::Add (const char *n, const char *a1, const char *a2)
39734
 
 { Add (new ConfOption (n, a1, a2)); }
39735
 
 
39736
 
inline unsigned Config::Options () const
39737
 
 { return _options.length (); }
39738
 
inline const ConfOption *Config::Option (unsigned i) const
39739
 
 { return _options.lookup (i); }
39740
 
 
39741
 
inline Flags Config::FlagTable () const
39742
 
 { return _flags; }
39743
 
 
39744
 
 
39745
 
} // namespace Puma
39746
 
 
39747
 
#endif /* __Config_h__ */
39748
 
 
39749
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
39750
 
// This file is part of PUMA.
39751
 
// Copyright (C) 1999-2003  The PUMA developer team.
39752
 
//                                                                
39753
 
// This program is free software;  you can redistribute it and/or 
39754
 
// modify it under the terms of the GNU General Public License as 
39755
 
// published by the Free Software Foundation; either version 2 of 
39756
 
// the License, or (at your option) any later version.            
39757
 
//                                                                
39758
 
// This program is distributed in the hope that it will be useful,
39759
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39760
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39761
 
// GNU General Public License for more details.                   
39762
 
//                                                                
39763
 
// You should have received a copy of the GNU General Public      
39764
 
// License along with this program; if not, write to the Free     
39765
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39766
 
// MA  02111-1307  USA                                            
39767
 
 
39768
 
#ifndef __project__
39769
 
#define __project__
39770
 
 
39771
 
// The basic project is a set of source directories. It provides 
39772
 
// methods for searching and writing files. 
39773
 
 
39774
 
 
39775
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
39776
 
// This file is part of PUMA.
39777
 
// Copyright (C) 1999-2003  The PUMA developer team.
39778
 
//                                                                
39779
 
// This program is free software;  you can redistribute it and/or 
39780
 
// modify it under the terms of the GNU General Public License as 
39781
 
// published by the Free Software Foundation; either version 2 of 
39782
 
// the License, or (at your option) any later version.            
39783
 
//                                                                
39784
 
// This program is distributed in the hope that it will be useful,
39785
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39786
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39787
 
// GNU General Public License for more details.                   
39788
 
//                                                                
39789
 
// You should have received a copy of the GNU General Public      
39790
 
// License along with this program; if not, write to the Free     
39791
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39792
 
// MA  02111-1307  USA                                            
39793
 
 
39794
 
#ifndef __path_manager__
39795
 
#define __path_manager__
39796
 
 
39797
 
// Manages directories and methods to access the files in it.
39798
 
 
39799
 
 
39800
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
39801
 
// This file is part of PUMA.
39802
 
// Copyright (C) 1999-2003  The PUMA developer team.
39803
 
//                                                                
39804
 
// This program is free software;  you can redistribute it and/or 
39805
 
// modify it under the terms of the GNU General Public License as 
39806
 
// published by the Free Software Foundation; either version 2 of 
39807
 
// the License, or (at your option) any later version.            
39808
 
//                                                                
39809
 
// This program is distributed in the hope that it will be useful,
39810
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39811
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39812
 
// GNU General Public License for more details.                   
39813
 
//                                                                
39814
 
// You should have received a copy of the GNU General Public      
39815
 
// License along with this program; if not, write to the Free     
39816
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39817
 
// MA  02111-1307  USA                                            
39818
 
 
39819
 
#ifndef __path_info__
39820
 
#define __path_info__
39821
 
 
39822
 
// A path information object consists of a source and optionally
39823
 
// a destination path.
39824
 
 
39825
 
namespace Puma {
39826
 
 
39827
 
 
39828
 
 
39829
 
#line 39830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39830
 
} // closed Puma
39831
 
class WinIfExists;
39832
 
class WinImportHandler;
39833
 
class WinMacros;
39834
 
class CMatchSyntax;
39835
 
class ExtGnu;
39836
 
class ExtAC;
39837
 
class ExtACBuilderCoupling;
39838
 
class ExtACSyntaxCoupling;
39839
 
class ExtACTree;
39840
 
class ExtACKeywords;
39841
 
class WinAsm;
39842
 
class WinDeclSpecs;
39843
 
class WinMemberExplSpec;
39844
 
class WinTypeKeywords;
39845
 
class PragmaOnceUnitState;
39846
 
class PragmaOnce;
39847
 
class CCExprResolve;
39848
 
class CExprResolve;
39849
 
namespace Puma {
39850
 
 
39851
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
39852
 
class PathInfo {
39853
 
#line 39854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39854
 
  friend class ::WinIfExists;
39855
 
  friend class ::WinImportHandler;
39856
 
  friend class ::WinMacros;
39857
 
  friend class ::CMatchSyntax;
39858
 
  friend class ::ExtGnu;
39859
 
  friend class ::ExtAC;
39860
 
  friend class ::ExtACBuilderCoupling;
39861
 
  friend class ::ExtACSyntaxCoupling;
39862
 
  friend class ::ExtACTree;
39863
 
  friend class ::ExtACKeywords;
39864
 
  friend class ::WinAsm;
39865
 
  friend class ::WinDeclSpecs;
39866
 
  friend class ::WinMemberExplSpec;
39867
 
  friend class ::WinTypeKeywords;
39868
 
  friend class ::PragmaOnceUnitState;
39869
 
  friend class ::PragmaOnce;
39870
 
  friend class ::CCExprResolve;
39871
 
  friend class ::CExprResolve;
39872
 
 
39873
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
39874
 
 
39875
 
  const char *_src;        // Source path.
39876
 
  const char *_dest;        // Destination path.
39877
 
        
39878
 
public:
39879
 
  PathInfo () : _src ((const char*) 0), _dest ((const char*) 0) {}
39880
 
  PathInfo (const PathInfo &);
39881
 
  ~PathInfo ();
39882
 
        
39883
 
  // Needed for class Array.
39884
 
  PathInfo &operator =(const PathInfo &);
39885
 
 
39886
 
  // Set or get the source path.
39887
 
  void src (const char *);
39888
 
  const char *src () const { return _src; }
39889
 
        
39890
 
  // Set or get the destination path.
39891
 
  void dest (const char *);
39892
 
  const char *dest () const { return _dest; }
39893
 
};
39894
 
 
39895
 
 
39896
 
} // namespace Puma
39897
 
 
39898
 
#endif /* __path_info__ */
39899
 
 
39900
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
39901
 
// This file is part of PUMA.
39902
 
// Copyright (C) 1999-2003  The PUMA developer team.
39903
 
//                                                                
39904
 
// This program is free software;  you can redistribute it and/or 
39905
 
// modify it under the terms of the GNU General Public License as 
39906
 
// published by the Free Software Foundation; either version 2 of 
39907
 
// the License, or (at your option) any later version.            
39908
 
//                                                                
39909
 
// This program is distributed in the hope that it will be useful,
39910
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39911
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39912
 
// GNU General Public License for more details.                   
39913
 
//                                                                
39914
 
// You should have received a copy of the GNU General Public      
39915
 
// License along with this program; if not, write to the Free     
39916
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39917
 
// MA  02111-1307  USA                                            
39918
 
 
39919
 
#ifndef __path_iterator__
39920
 
#define __path_iterator__
39921
 
 
39922
 
// A path iterator is used to iterate the contents of the paths
39923
 
// a project is managing. But only files matching a given pattern 
39924
 
// are iterated. 
39925
 
 
39926
 
 
39927
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
39928
 
// This file is part of PUMA.
39929
 
// Copyright (C) 1999-2003  The PUMA developer team.
39930
 
//                                                                
39931
 
// This program is free software;  you can redistribute it and/or 
39932
 
// modify it under the terms of the GNU General Public License as 
39933
 
// published by the Free Software Foundation; either version 2 of 
39934
 
// the License, or (at your option) any later version.            
39935
 
//                                                                
39936
 
// This program is distributed in the hope that it will be useful,
39937
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
39938
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
39939
 
// GNU General Public License for more details.                   
39940
 
//                                                                
39941
 
// You should have received a copy of the GNU General Public      
39942
 
// License along with this program; if not, write to the Free     
39943
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
39944
 
// MA  02111-1307  USA                                            
39945
 
 
39946
 
#ifndef __project_file__
39947
 
#define __project_file__
39948
 
 
39949
 
 
39950
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
39951
 
using std::map;
39952
 
 
39953
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
39954
 
using std::string;
39955
 
 
39956
 
 
39957
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
39958
 
namespace Puma {
39959
 
 
39960
 
// the project file abstraction is used to store all filenames relevant
39961
 
// for a specific file that is managed by Puma.
39962
 
 
39963
 
 
39964
 
#line 39965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39965
 
} // closed Puma
39966
 
class WinIfExists;
39967
 
class WinImportHandler;
39968
 
class WinMacros;
39969
 
class CMatchSyntax;
39970
 
class ExtGnu;
39971
 
class ExtAC;
39972
 
class ExtACBuilderCoupling;
39973
 
class ExtACSyntaxCoupling;
39974
 
class ExtACTree;
39975
 
class ExtACKeywords;
39976
 
class WinAsm;
39977
 
class WinDeclSpecs;
39978
 
class WinMemberExplSpec;
39979
 
class WinTypeKeywords;
39980
 
class PragmaOnceUnitState;
39981
 
class PragmaOnce;
39982
 
class CCExprResolve;
39983
 
class CExprResolve;
39984
 
namespace Puma {
39985
 
 
39986
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
39987
 
class ProjectFile {
39988
 
#line 39989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
39989
 
  friend class ::WinIfExists;
39990
 
  friend class ::WinImportHandler;
39991
 
  friend class ::WinMacros;
39992
 
  friend class ::CMatchSyntax;
39993
 
  friend class ::ExtGnu;
39994
 
  friend class ::ExtAC;
39995
 
  friend class ::ExtACBuilderCoupling;
39996
 
  friend class ::ExtACSyntaxCoupling;
39997
 
  friend class ::ExtACTree;
39998
 
  friend class ::ExtACKeywords;
39999
 
  friend class ::WinAsm;
40000
 
  friend class ::WinDeclSpecs;
40001
 
  friend class ::WinMemberExplSpec;
40002
 
  friend class ::WinTypeKeywords;
40003
 
  friend class ::PragmaOnceUnitState;
40004
 
  friend class ::PragmaOnce;
40005
 
  friend class ::CCExprResolve;
40006
 
  friend class ::CExprResolve;
40007
 
 
40008
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
40009
 
 
40010
 
  Filename _nick_name;
40011
 
  Filename _dest_path;
40012
 
public:  
40013
 
  ProjectFile (const Filename &nn) : _nick_name (nn) {}
40014
 
  ProjectFile (const Filename &nn, const Filename &dp) :
40015
 
    _nick_name (nn), _dest_path (dp) {}
40016
 
  void dest (const Filename &dp) { _dest_path = dp; }
40017
 
  Filename name () const { return _nick_name; }
40018
 
  Filename dest () const {
40019
 
    assert (_dest_path.is_defined ());
40020
 
    return _dest_path;
40021
 
  }
40022
 
};
40023
 
 
40024
 
typedef map<string, ProjectFile> PFMap;
40025
 
typedef PFMap::value_type PFMPair;
40026
 
typedef PFMap::const_iterator PFMConstIter;
40027
 
 
40028
 
} // namespace Puma
40029
 
 
40030
 
#endif // __project_file__
40031
 
 
40032
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
40033
 
namespace Puma {
40034
 
 
40035
 
class PathManager;
40036
 
class RegComp;
40037
 
 
40038
 
 
40039
 
#line 40040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40040
 
} // closed Puma
40041
 
class WinIfExists;
40042
 
class WinImportHandler;
40043
 
class WinMacros;
40044
 
class CMatchSyntax;
40045
 
class ExtGnu;
40046
 
class ExtAC;
40047
 
class ExtACBuilderCoupling;
40048
 
class ExtACSyntaxCoupling;
40049
 
class ExtACTree;
40050
 
class ExtACKeywords;
40051
 
class WinAsm;
40052
 
class WinDeclSpecs;
40053
 
class WinMemberExplSpec;
40054
 
class WinTypeKeywords;
40055
 
class PragmaOnceUnitState;
40056
 
class PragmaOnce;
40057
 
class CCExprResolve;
40058
 
class CExprResolve;
40059
 
namespace Puma {
40060
 
 
40061
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
40062
 
class PathIterator : public PFMConstIter {
40063
 
#line 40064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40064
 
  friend class ::WinIfExists;
40065
 
  friend class ::WinImportHandler;
40066
 
  friend class ::WinMacros;
40067
 
  friend class ::CMatchSyntax;
40068
 
  friend class ::ExtGnu;
40069
 
  friend class ::ExtAC;
40070
 
  friend class ::ExtACBuilderCoupling;
40071
 
  friend class ::ExtACSyntaxCoupling;
40072
 
  friend class ::ExtACTree;
40073
 
  friend class ::ExtACKeywords;
40074
 
  friend class ::WinAsm;
40075
 
  friend class ::WinDeclSpecs;
40076
 
  friend class ::WinMemberExplSpec;
40077
 
  friend class ::WinTypeKeywords;
40078
 
  friend class ::PragmaOnceUnitState;
40079
 
  friend class ::PragmaOnce;
40080
 
  friend class ::CCExprResolve;
40081
 
  friend class ::CExprResolve;
40082
 
 
40083
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
40084
 
 
40085
 
  friend class PathManager;
40086
 
 
40087
 
  RegComp *_regexp;  // Search pattern.
40088
 
  bool _in_use;
40089
 
 
40090
 
public:
40091
 
  PathIterator (const char *);     // Expects a regular expression.
40092
 
  ~PathIterator ();                // for the files to match.
40093
 
 
40094
 
  void pattern (const char *);     // Set the search pattern.
40095
 
  void init (const PFMConstIter &begin);
40096
 
  bool in_use () const { return _in_use; }
40097
 
  void done () { _in_use = false; }
40098
 
 
40099
 
  // retrieve information about the currently referenced ProjectFile
40100
 
  const char *file () const;
40101
 
  const char *dest () const;
40102
 
};
40103
 
 
40104
 
} // namespace Puma
40105
 
 
40106
 
#endif /* __path_iterator__ */
40107
 
 
40108
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
40109
 
namespace Puma {
40110
 
 
40111
 
class RegComp;
40112
 
class Config;
40113
 
class Unit;
40114
 
 
40115
 
 
40116
 
#line 40117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40117
 
} // closed Puma
40118
 
class WinIfExists;
40119
 
class WinImportHandler;
40120
 
class WinMacros;
40121
 
class CMatchSyntax;
40122
 
class ExtGnu;
40123
 
class ExtAC;
40124
 
class ExtACBuilderCoupling;
40125
 
class ExtACSyntaxCoupling;
40126
 
class ExtACTree;
40127
 
class ExtACKeywords;
40128
 
class WinAsm;
40129
 
class WinDeclSpecs;
40130
 
class WinMemberExplSpec;
40131
 
class WinTypeKeywords;
40132
 
class PragmaOnceUnitState;
40133
 
class PragmaOnce;
40134
 
class CCExprResolve;
40135
 
class CExprResolve;
40136
 
namespace Puma {
40137
 
 
40138
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
40139
 
class PathManager {
40140
 
#line 40141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40141
 
  friend class ::WinIfExists;
40142
 
  friend class ::WinImportHandler;
40143
 
  friend class ::WinMacros;
40144
 
  friend class ::CMatchSyntax;
40145
 
  friend class ::ExtGnu;
40146
 
  friend class ::ExtAC;
40147
 
  friend class ::ExtACBuilderCoupling;
40148
 
  friend class ::ExtACSyntaxCoupling;
40149
 
  friend class ::ExtACTree;
40150
 
  friend class ::ExtACKeywords;
40151
 
  friend class ::WinAsm;
40152
 
  friend class ::WinDeclSpecs;
40153
 
  friend class ::WinMemberExplSpec;
40154
 
  friend class ::WinTypeKeywords;
40155
 
  friend class ::PragmaOnceUnitState;
40156
 
  friend class ::PragmaOnce;
40157
 
  friend class ::CCExprResolve;
40158
 
  friend class ::CExprResolve;
40159
 
 
40160
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
40161
 
 
40162
 
 
40163
 
  ErrorStream     *_err;
40164
 
  Array<PathInfo>  _paths;     // List of directories path.
40165
 
  Array<RegComp*>  _protected; // List of regular patterns specifying 
40166
 
                               // protected paths.
40167
 
  PFMap _files;                // Maps the canonical filename of a project
40168
 
                               // to its related information
40169
 
 
40170
 
  // find all files of a directory tree and add them to _files
40171
 
  void traverse (const char *path);
40172
 
 
40173
 
  // find the canonical filename representation for a file
40174
 
  bool canonFilename (Filename name, Filename &abs_name) const;
40175
 
  
40176
 
  // Add a new file to the project file list
40177
 
  PFMConstIter addFile (const ProjectFile &file);
40178
 
 
40179
 
protected:
40180
 
  // Get the destination directory for a given source directory.
40181
 
  const char *getDestination (Filename file, ostream * = 0) const;
40182
 
        
40183
 
  // Called for every matched file.
40184
 
  virtual void action (PathIterator &) {}
40185
 
        
40186
 
  // Add the separator '/' to the copy of the given string.
40187
 
  char *addSeparator (const char *) const;
40188
 
 
40189
 
public:
40190
 
  PathManager (ErrorStream &e) : _err (&e) {} 
40191
 
  // Copy-constructor.
40192
 
  PathManager (PathManager &pm) { _err = pm._err; join (pm); }
40193
 
  virtual ~PathManager ();
40194
 
 
40195
 
  // Start the globbing. Let call action for every match.
40196
 
  void glob (char *pattern = (char*) 0);
40197
 
 
40198
 
  // Iterate the contents of the paths.
40199
 
  const char *iterate (PathIterator &) const;
40200
 
        
40201
 
  // Add a source and destination directories pair.
40202
 
  virtual void addPath (const char *, const char * = (const char*) 0);
40203
 
 
40204
 
  // Add a new file to the project file list
40205
 
  PFMConstIter addFile (Filename name);
40206
 
 
40207
 
  // Add a new file to the project file list with destination path
40208
 
  PFMConstIter addFile (Filename name, Filename dest);
40209
 
 
40210
 
  // search an absolute file name in the project tree
40211
 
  bool lookupFile (Filename abs_name, PFMConstIter &iter) const;
40212
 
 
40213
 
  // Set the destination directory of the given source directory.
40214
 
  void setDest (const char *, const char *);
40215
 
 
40216
 
  // Add a protected-path pattern.
40217
 
  void protect (const char *);
40218
 
 
40219
 
  // Get path information.
40220
 
  long numPaths () const { return _paths.length (); }
40221
 
  long numProts () const { return _protected.length (); }
40222
 
  const char *src (long pos) const { return _paths.lookup (pos).src (); }
40223
 
  const char *dest (long pos) const { return _paths.lookup (pos).dest (); }
40224
 
  RegComp *prot (long pos) const { return _protected.lookup (pos); }
40225
 
 
40226
 
  // Return true if the given file or path is protected.
40227
 
  bool isProtected (const char *file) const;
40228
 
 
40229
 
  // checks if a give file (by name) is a registered file of this path manager
40230
 
  // In case of success (found!) the an iterator is returned, which can be
40231
 
  // used to access more information about the file.
40232
 
  bool isBelow (const char *file, PFMConstIter &iter) const;
40233
 
 
40234
 
  // Returns true if the given file is registered with this path manager
40235
 
  virtual bool isBelow (const char *file) const;
40236
 
 
40237
 
  // Configure the project from the command line or a file.
40238
 
  virtual void configure (const Config &);
40239
 
 
40240
 
  // Join the paths of the given manager with the paths 
40241
 
  // of this path manager.
40242
 
  virtual void join (PathManager &);
40243
 
        
40244
 
  // Get the error stream object.
40245
 
  ErrorStream &err () const { return *_err; }
40246
 
 
40247
 
  // Get the path of a file in the destination directory.
40248
 
  bool getDestinationPath (const char *filename, ostream &out) const;
40249
 
        
40250
 
};
40251
 
 
40252
 
inline bool PathManager::isBelow (const char *file) const { 
40253
 
  PFMConstIter iter;
40254
 
  return isBelow (file, iter);
40255
 
}
40256
 
 
40257
 
 
40258
 
} // namespace Puma
40259
 
 
40260
 
#endif /* __path_manager__ */
40261
 
 
40262
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
40263
 
// This file is part of PUMA.
40264
 
// Copyright (C) 1999-2003  The PUMA developer team.
40265
 
//                                                                
40266
 
// This program is free software;  you can redistribute it and/or 
40267
 
// modify it under the terms of the GNU General Public License as 
40268
 
// published by the Free Software Foundation; either version 2 of 
40269
 
// the License, or (at your option) any later version.            
40270
 
//                                                                
40271
 
// This program is distributed in the hope that it will be useful,
40272
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40273
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40274
 
// GNU General Public License for more details.                   
40275
 
//                                                                
40276
 
// You should have received a copy of the GNU General Public      
40277
 
// License along with this program; if not, write to the Free     
40278
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40279
 
// MA  02111-1307  USA                                            
40280
 
 
40281
 
#ifndef __UnitManager__
40282
 
#define __UnitManager__
40283
 
 
40284
 
// Class UnitManager helps you to have control of all units built.
40285
 
 
40286
 
 
40287
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
40288
 
#include <list>
40289
 
 
40290
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
40291
 
using namespace std;
40292
 
 
40293
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
40294
 
namespace Puma {
40295
 
 
40296
 
 
40297
 
class Unit;
40298
 
class Source;
40299
 
class Tokenizer;
40300
 
 
40301
 
 
40302
 
#line 40303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40303
 
} // closed Puma
40304
 
class WinIfExists;
40305
 
class WinImportHandler;
40306
 
class WinMacros;
40307
 
class CMatchSyntax;
40308
 
class ExtGnu;
40309
 
class ExtAC;
40310
 
class ExtACBuilderCoupling;
40311
 
class ExtACSyntaxCoupling;
40312
 
class ExtACTree;
40313
 
class ExtACKeywords;
40314
 
class WinAsm;
40315
 
class WinDeclSpecs;
40316
 
class WinMemberExplSpec;
40317
 
class WinTypeKeywords;
40318
 
class PragmaOnceUnitState;
40319
 
class PragmaOnce;
40320
 
class CCExprResolve;
40321
 
class CExprResolve;
40322
 
namespace Puma {
40323
 
 
40324
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
40325
 
class UnitManager {
40326
 
#line 40327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40327
 
  friend class ::WinIfExists;
40328
 
  friend class ::WinImportHandler;
40329
 
  friend class ::WinMacros;
40330
 
  friend class ::CMatchSyntax;
40331
 
  friend class ::ExtGnu;
40332
 
  friend class ::ExtAC;
40333
 
  friend class ::ExtACBuilderCoupling;
40334
 
  friend class ::ExtACSyntaxCoupling;
40335
 
  friend class ::ExtACTree;
40336
 
  friend class ::ExtACKeywords;
40337
 
  friend class ::WinAsm;
40338
 
  friend class ::WinDeclSpecs;
40339
 
  friend class ::WinMemberExplSpec;
40340
 
  friend class ::WinTypeKeywords;
40341
 
  friend class ::PragmaOnceUnitState;
40342
 
  friend class ::PragmaOnce;
40343
 
  friend class ::CCExprResolve;
40344
 
  friend class ::CExprResolve;
40345
 
 
40346
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
40347
 
 
40348
 
public:
40349
 
  typedef map<string, Unit*> UMap;
40350
 
private:
40351
 
  ErrorStream *_err;        // For error messages.
40352
 
  list<Unit*> _nonames;     // Noname units list.
40353
 
  mutable UMap _umap;       // Named units, map supports fast lookup by name
40354
 
  typedef UMap::value_type UMapPair;
40355
 
  Tokenizer *_tokenizer;    // File scanner.
40356
 
 
40357
 
public:
40358
 
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
40359
 
        
40360
 
  // Destructor: Delete all units.
40361
 
  virtual ~UnitManager ();
40362
 
        
40363
 
  // Get the unit hash table.
40364
 
  UMap &getTable () const { return _umap; }
40365
 
  typedef UMap::iterator UMapIter;
40366
 
        
40367
 
  // Get/Set the file scanner that is used by newUnit
40368
 
  Tokenizer *tokenizer () const { return _tokenizer; }
40369
 
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
40370
 
 
40371
 
  // Add a unit to manager.
40372
 
  void addUnit (Unit *unit);
40373
 
        
40374
 
  // Remove (and destroy) a unit from hash table. If the name
40375
 
  // is NULL remove all (but not the nonames).
40376
 
  void removeUnit (const char *name = (const char*) 0, bool = false, 
40377
 
                   bool destroy = true) const;
40378
 
 
40379
 
  // Empty a unit. Don't remove from hash table.
40380
 
  // Preserve the last save location information.
40381
 
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
40382
 
 
40383
 
  // Build and add a new unit. 
40384
 
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
40385
 
        
40386
 
  // Get a unit by name. 
40387
 
  Unit *getUnit (const char *name, bool = false) const;
40388
 
                        
40389
 
  // Print given unit to the given outstream. If no
40390
 
  // name is given, print all units.
40391
 
  void print (const char *name = (const char*) 0, bool = false, 
40392
 
              ostream &out = cout) const;
40393
 
 
40394
 
  // Destroy all noname units.
40395
 
  void removeNonames ();
40396
 
      
40397
 
  // Initialize the unit manager and the managed 
40398
 
  // units for the next parse process.
40399
 
  void init ();
40400
 
};
40401
 
 
40402
 
 
40403
 
} // namespace Puma
40404
 
 
40405
 
#endif /* __UnitManager__ */
40406
 
 
40407
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
40408
 
// This file is part of PUMA.
40409
 
// Copyright (C) 1999-2003  The PUMA developer team.
40410
 
//                                                                
40411
 
// This program is free software;  you can redistribute it and/or 
40412
 
// modify it under the terms of the GNU General Public License as 
40413
 
// published by the Free Software Foundation; either version 2 of 
40414
 
// the License, or (at your option) any later version.            
40415
 
//                                                                
40416
 
// This program is distributed in the hope that it will be useful,
40417
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40418
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40419
 
// GNU General Public License for more details.                   
40420
 
//                                                                
40421
 
// You should have received a copy of the GNU General Public      
40422
 
// License along with this program; if not, write to the Free     
40423
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40424
 
// MA  02111-1307  USA                                            
40425
 
 
40426
 
#ifndef __SaveMode__
40427
 
#define __SaveMode__
40428
 
 
40429
 
namespace Puma {
40430
 
 
40431
 
 
40432
 
// Project file save mode.
40433
 
 
40434
 
#line 40435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40435
 
} // closed Puma
40436
 
class WinIfExists;
40437
 
class WinImportHandler;
40438
 
class WinMacros;
40439
 
class CMatchSyntax;
40440
 
class ExtGnu;
40441
 
class ExtAC;
40442
 
class ExtACBuilderCoupling;
40443
 
class ExtACSyntaxCoupling;
40444
 
class ExtACTree;
40445
 
class ExtACKeywords;
40446
 
class WinAsm;
40447
 
class WinDeclSpecs;
40448
 
class WinMemberExplSpec;
40449
 
class WinTypeKeywords;
40450
 
class PragmaOnceUnitState;
40451
 
class PragmaOnce;
40452
 
class CCExprResolve;
40453
 
class CExprResolve;
40454
 
namespace Puma {
40455
 
 
40456
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
40457
 
struct SaveMode {
40458
 
#line 40459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40459
 
  friend class ::WinIfExists;
40460
 
  friend class ::WinImportHandler;
40461
 
  friend class ::WinMacros;
40462
 
  friend class ::CMatchSyntax;
40463
 
  friend class ::ExtGnu;
40464
 
  friend class ::ExtAC;
40465
 
  friend class ::ExtACBuilderCoupling;
40466
 
  friend class ::ExtACSyntaxCoupling;
40467
 
  friend class ::ExtACTree;
40468
 
  friend class ::ExtACKeywords;
40469
 
  friend class ::WinAsm;
40470
 
  friend class ::WinDeclSpecs;
40471
 
  friend class ::WinMemberExplSpec;
40472
 
  friend class ::WinTypeKeywords;
40473
 
  friend class ::PragmaOnceUnitState;
40474
 
  friend class ::PragmaOnce;
40475
 
  friend class ::CCExprResolve;
40476
 
  friend class ::CExprResolve;
40477
 
 
40478
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
40479
 
 
40480
 
  enum Mode { 
40481
 
    OVERWRITE = 1, 
40482
 
    RENAME_OLD, 
40483
 
    NEW_SUFFIX 
40484
 
  };
40485
 
};
40486
 
    
40487
 
 
40488
 
} // namespace Puma
40489
 
 
40490
 
#endif /* __SaveMode__ */
40491
 
 
40492
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
40493
 
#include <fstream>
40494
 
 
40495
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
40496
 
using namespace std;
40497
 
 
40498
 
namespace Puma {
40499
 
 
40500
 
 
40501
 
 
40502
 
#line 40503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40503
 
} // closed Puma
40504
 
class WinIfExists;
40505
 
class WinImportHandler;
40506
 
class WinMacros;
40507
 
class CMatchSyntax;
40508
 
class ExtGnu;
40509
 
class ExtAC;
40510
 
class ExtACBuilderCoupling;
40511
 
class ExtACSyntaxCoupling;
40512
 
class ExtACTree;
40513
 
class ExtACKeywords;
40514
 
class WinAsm;
40515
 
class WinDeclSpecs;
40516
 
class WinMemberExplSpec;
40517
 
class WinTypeKeywords;
40518
 
class PragmaOnceUnitState;
40519
 
class PragmaOnce;
40520
 
class CCExprResolve;
40521
 
class CExprResolve;
40522
 
namespace Puma {
40523
 
 
40524
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
40525
 
class Project : public PathManager, public SaveMode {
40526
 
#line 40527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40527
 
  friend class ::WinIfExists;
40528
 
  friend class ::WinImportHandler;
40529
 
  friend class ::WinMacros;
40530
 
  friend class ::CMatchSyntax;
40531
 
  friend class ::ExtGnu;
40532
 
  friend class ::ExtAC;
40533
 
  friend class ::ExtACBuilderCoupling;
40534
 
  friend class ::ExtACSyntaxCoupling;
40535
 
  friend class ::ExtACTree;
40536
 
  friend class ::ExtACKeywords;
40537
 
  friend class ::WinAsm;
40538
 
  friend class ::WinDeclSpecs;
40539
 
  friend class ::WinMemberExplSpec;
40540
 
  friend class ::WinTypeKeywords;
40541
 
  friend class ::PragmaOnceUnitState;
40542
 
  friend class ::PragmaOnce;
40543
 
  friend class ::CCExprResolve;
40544
 
  friend class ::CExprResolve;
40545
 
 
40546
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
40547
 
 
40548
 
  UnitManager  _unitManager; 
40549
 
  const char  *_suffix;           // Current file name suffix.
40550
 
  Mode         _mode;      // Current save mode.
40551
 
 
40552
 
  // Change to the directory, or create it if necessary.
40553
 
  bool makeDir (const char *) const;
40554
 
        
40555
 
  // Create the directory hierarchy need for file 'path'.
40556
 
  bool makeDirHierarchy (Filename path) const;
40557
 
 
40558
 
protected:
40559
 
  // Write a unit on a file. Called by save().
40560
 
  virtual void write (Unit *unit, ofstream &) const; 
40561
 
 
40562
 
  // Check/update the state of the given unit.
40563
 
  bool checkState (const char *, Unit *) const;
40564
 
  void updateState (const char *, Unit *) const;
40565
 
        
40566
 
public:
40567
 
  Project (ErrorStream &);
40568
 
  virtual ~Project ();
40569
 
 
40570
 
  // Set the mode for saving an unit.
40571
 
  // OVERWRITE  -> Save the unit under its name and overwrite existing
40572
 
  //                   files.
40573
 
  // RENAME_OLD -> An existing file will be renamed. A suffix will be
40574
 
  //                   added to the name of the file, like `main.cc.old'
40575
 
  //                   for the file `main.cc' and the suffix `.old'.
40576
 
  // NEW_SUFFIX -> The unit will be saved with a new suffix, like 
40577
 
  //                   `main.cpp' for the unit `main.cc' and the suffix 
40578
 
  //               `cpp'.
40579
 
  void saveMode (Mode = OVERWRITE, const char *suffix = (const char*)0);
40580
 
 
40581
 
  // Save a unit using the name of the unit to get the full 
40582
 
  // name of the file and path to save to. The save location
40583
 
  // must not be protected by a protect pattern and the original
40584
 
  // file must be located in one of the source directories.
40585
 
  virtual void save (Unit *, bool = false) const;
40586
 
        
40587
 
  // Save a FileUnit (or all) to a file (or files).
40588
 
  virtual void save (const char *file = (const char*)0,
40589
 
                     bool only_modified = false, bool is_reg_ex = false) const;
40590
 
 
40591
 
  // Print an unit, regular expression for more units.
40592
 
  // If no name is given print all units.
40593
 
  void print (const char *name = (const char*)0, ostream &out = cout,
40594
 
              bool is_reg_ex = false) const;
40595
 
        
40596
 
  // Close an unit, regular expression for more units.
40597
 
  // If no name is given close all units. If destroy is true,
40598
 
  // the unit(s) will be deleted. 
40599
 
  void close (const char *name = (const char*)0, bool destroy = false,
40600
 
              bool is_reg_ex = false) const;
40601
 
 
40602
 
  // Add a new file to the project.
40603
 
  Unit *addFile (Filename);
40604
 
  Unit *addFile (Filename, Filename);
40605
 
 
40606
 
  // Configure the project from the command line or a file.
40607
 
  virtual void configure (const Config &);
40608
 
        
40609
 
  // Member access.
40610
 
  UnitManager &unitManager ();
40611
 
        
40612
 
  // Return true if the given file in the source directory
40613
 
  // (or at the unit manager) is newer than the corresponding
40614
 
  // file in the destination directory.
40615
 
  bool isNewer (const char *) const;
40616
 
 
40617
 
  // Returns true if the given file is in or below the project dirs
40618
 
  virtual bool isBelow (const char *) const;
40619
 
  virtual bool isBelow (Unit *) const;
40620
 
};
40621
 
 
40622
 
inline UnitManager &Project::unitManager () 
40623
 
 {  return _unitManager; }
40624
 
 
40625
 
inline bool Project::isBelow (const char *file) const
40626
 
 { return PathManager::isBelow (file); }
40627
 
 
40628
 
 
40629
 
} // namespace Puma
40630
 
 
40631
 
#endif /* __project__ */
40632
 
 
40633
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
40634
 
 
40635
 
#line 40636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40636
 
 
40637
 
#ifndef __ac_fwd_ExtACKeywords__
40638
 
#define __ac_fwd_ExtACKeywords__
40639
 
class ExtACKeywords;
40640
 
namespace AC {
40641
 
  template <class JoinPoint, class Binding>
40642
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
40643
 
  template <class JoinPoint, class Binding>
40644
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
40645
 
  template <class JoinPoint>
40646
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
40647
 
}
40648
 
#endif
40649
 
 
40650
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
40651
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
40652
 
#endif
40653
 
 
40654
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
40655
 
// This file is part of PUMA.
40656
 
// Copyright (C) 1999-2003  The PUMA developer team.
40657
 
//                                                                
40658
 
// This program is free software;  you can redistribute it and/or 
40659
 
// modify it under the terms of the GNU General Public License as 
40660
 
// published by the Free Software Foundation; either version 2 of 
40661
 
// the License, or (at your option) any later version.            
40662
 
//                                                                
40663
 
// This program is distributed in the hope that it will be useful,
40664
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40665
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40666
 
// GNU General Public License for more details.                   
40667
 
//                                                                
40668
 
// You should have received a copy of the GNU General Public      
40669
 
// License along with this program; if not, write to the Free     
40670
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40671
 
// MA  02111-1307  USA                                            
40672
 
 
40673
 
#ifndef __c_scanner_h__
40674
 
#define __c_scanner_h__
40675
 
 
40676
 
 
40677
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
40678
 
// This file is part of PUMA.
40679
 
// Copyright (C) 1999-2003  The PUMA developer team.
40680
 
//                                                                
40681
 
// This program is free software;  you can redistribute it and/or 
40682
 
// modify it under the terms of the GNU General Public License as 
40683
 
// published by the Free Software Foundation; either version 2 of 
40684
 
// the License, or (at your option) any later version.            
40685
 
//                                                                
40686
 
// This program is distributed in the hope that it will be useful,
40687
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40688
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40689
 
// GNU General Public License for more details.                   
40690
 
//                                                                
40691
 
// You should have received a copy of the GNU General Public      
40692
 
// License along with this program; if not, write to the Free     
40693
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40694
 
// MA  02111-1307  USA                                            
40695
 
 
40696
 
#ifndef __c_recognizer_h__
40697
 
#define __c_recognizer_h__
40698
 
 
40699
 
 
40700
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
40701
 
// This file is part of PUMA.
40702
 
// Copyright (C) 1999-2003  The PUMA developer team.
40703
 
//                                                                
40704
 
// This program is free software;  you can redistribute it and/or 
40705
 
// modify it under the terms of the GNU General Public License as 
40706
 
// published by the Free Software Foundation; either version 2 of 
40707
 
// the License, or (at your option) any later version.            
40708
 
//                                                                
40709
 
// This program is distributed in the hope that it will be useful,
40710
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40711
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40712
 
// GNU General Public License for more details.                   
40713
 
//                                                                
40714
 
// You should have received a copy of the GNU General Public      
40715
 
// License along with this program; if not, write to the Free     
40716
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40717
 
// MA  02111-1307  USA                                            
40718
 
 
40719
 
#ifndef __CScanBuffer_h__
40720
 
#define __CScanBuffer_h__
40721
 
 
40722
 
 
40723
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
40724
 
// This file is part of PUMA.
40725
 
// Copyright (C) 1999-2003  The PUMA developer team.
40726
 
//                                                                
40727
 
// This program is free software;  you can redistribute it and/or 
40728
 
// modify it under the terms of the GNU General Public License as 
40729
 
// published by the Free Software Foundation; either version 2 of 
40730
 
// the License, or (at your option) any later version.            
40731
 
//                                                                
40732
 
// This program is distributed in the hope that it will be useful,
40733
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40734
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40735
 
// GNU General Public License for more details.                   
40736
 
//                                                                
40737
 
// You should have received a copy of the GNU General Public      
40738
 
// License along with this program; if not, write to the Free     
40739
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40740
 
// MA  02111-1307  USA                                            
40741
 
 
40742
 
#ifndef __scan_buffer_h__
40743
 
#define __scan_buffer_h__
40744
 
 
40745
 
namespace Puma {
40746
 
 
40747
 
 
40748
 
 
40749
 
#line 40750 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40750
 
} // closed Puma
40751
 
class WinIfExists;
40752
 
class WinImportHandler;
40753
 
class WinMacros;
40754
 
class CMatchSyntax;
40755
 
class ExtGnu;
40756
 
class ExtAC;
40757
 
class ExtACBuilderCoupling;
40758
 
class ExtACSyntaxCoupling;
40759
 
class ExtACTree;
40760
 
class ExtACKeywords;
40761
 
class WinAsm;
40762
 
class WinDeclSpecs;
40763
 
class WinMemberExplSpec;
40764
 
class WinTypeKeywords;
40765
 
class PragmaOnceUnitState;
40766
 
class PragmaOnce;
40767
 
class CCExprResolve;
40768
 
class CExprResolve;
40769
 
namespace Puma {
40770
 
 
40771
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
40772
 
class ScanBuffer {
40773
 
#line 40774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40774
 
  friend class ::WinIfExists;
40775
 
  friend class ::WinImportHandler;
40776
 
  friend class ::WinMacros;
40777
 
  friend class ::CMatchSyntax;
40778
 
  friend class ::ExtGnu;
40779
 
  friend class ::ExtAC;
40780
 
  friend class ::ExtACBuilderCoupling;
40781
 
  friend class ::ExtACSyntaxCoupling;
40782
 
  friend class ::ExtACTree;
40783
 
  friend class ::ExtACKeywords;
40784
 
  friend class ::WinAsm;
40785
 
  friend class ::WinDeclSpecs;
40786
 
  friend class ::WinMemberExplSpec;
40787
 
  friend class ::WinTypeKeywords;
40788
 
  friend class ::PragmaOnceUnitState;
40789
 
  friend class ::PragmaOnce;
40790
 
  friend class ::CCExprResolve;
40791
 
  friend class ::CExprResolve;
40792
 
 
40793
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
40794
 
 
40795
 
public:
40796
 
  typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
40797
 
  
40798
 
  virtual ~ScanBuffer () {}
40799
 
 
40800
 
  virtual char next () = 0;
40801
 
  virtual char *token () = 0;
40802
 
  virtual int len () const = 0;
40803
 
  virtual void reset () = 0;
40804
 
  virtual void retry () = 0; 
40805
 
  virtual void accept (int len) = 0;
40806
 
  virtual void more (int len) = 0;
40807
 
  virtual State state () const = 0;
40808
 
};
40809
 
 
40810
 
 
40811
 
} // namespace Puma
40812
 
 
40813
 
#endif /* __scan_buffer_h__ */
40814
 
 
40815
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
40816
 
namespace Puma {
40817
 
 
40818
 
 
40819
 
 
40820
 
#line 40821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40821
 
} // closed Puma
40822
 
class WinIfExists;
40823
 
class WinImportHandler;
40824
 
class WinMacros;
40825
 
class CMatchSyntax;
40826
 
class ExtGnu;
40827
 
class ExtAC;
40828
 
class ExtACBuilderCoupling;
40829
 
class ExtACSyntaxCoupling;
40830
 
class ExtACTree;
40831
 
class ExtACKeywords;
40832
 
class WinAsm;
40833
 
class WinDeclSpecs;
40834
 
class WinMemberExplSpec;
40835
 
class WinTypeKeywords;
40836
 
class PragmaOnceUnitState;
40837
 
class PragmaOnce;
40838
 
class CCExprResolve;
40839
 
class CExprResolve;
40840
 
namespace Puma {
40841
 
 
40842
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
40843
 
class CScanBuffer {
40844
 
#line 40845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
40845
 
  friend class ::WinIfExists;
40846
 
  friend class ::WinImportHandler;
40847
 
  friend class ::WinMacros;
40848
 
  friend class ::CMatchSyntax;
40849
 
  friend class ::ExtGnu;
40850
 
  friend class ::ExtAC;
40851
 
  friend class ::ExtACBuilderCoupling;
40852
 
  friend class ::ExtACSyntaxCoupling;
40853
 
  friend class ::ExtACTree;
40854
 
  friend class ::ExtACKeywords;
40855
 
  friend class ::WinAsm;
40856
 
  friend class ::WinDeclSpecs;
40857
 
  friend class ::WinMemberExplSpec;
40858
 
  friend class ::WinTypeKeywords;
40859
 
  friend class ::PragmaOnceUnitState;
40860
 
  friend class ::PragmaOnce;
40861
 
  friend class ::CCExprResolve;
40862
 
  friend class ::CExprResolve;
40863
 
 
40864
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
40865
 
 
40866
 
  ScanBuffer *next_buffer;
40867
 
  bool on_new_line;
40868
 
  int nl_pos;
40869
 
 
40870
 
  void check ();
40871
 
 
40872
 
public:
40873
 
  void decorate (ScanBuffer *nb) { next_buffer = nb; }
40874
 
  inline char next ();
40875
 
  inline void reset ();
40876
 
  inline void accept (int len);
40877
 
  inline void retry ();
40878
 
  bool new_line () const { return on_new_line; }
40879
 
  char *token () { return next_buffer->token (); }
40880
 
  int len () const { return next_buffer->len (); }
40881
 
  void more (int len) { next_buffer->more (len); }
40882
 
  ScanBuffer::State state () const { return next_buffer->state (); }
40883
 
};
40884
 
 
40885
 
 
40886
 
inline char CScanBuffer::next () {
40887
 
  char character = next_buffer->next ();
40888
 
  if (character == '\n' && nl_pos == -1)
40889
 
    nl_pos = len () - 1;
40890
 
  check ();
40891
 
  return character;
40892
 
}
40893
 
 
40894
 
inline void CScanBuffer::reset () { 
40895
 
  next_buffer->reset (); 
40896
 
  on_new_line = true;
40897
 
  nl_pos = -1;
40898
 
  check ();
40899
 
}
40900
 
 
40901
 
 
40902
 
inline void CScanBuffer::retry () {
40903
 
  nl_pos = -1;
40904
 
  next_buffer->retry ();
40905
 
}
40906
 
 
40907
 
 
40908
 
inline void CScanBuffer::accept (int len) {
40909
 
  on_new_line = (nl_pos >= 0 && nl_pos < len);
40910
 
  nl_pos = -1;
40911
 
  next_buffer->accept (len);
40912
 
}
40913
 
 
40914
 
} // namespace Puma
40915
 
 
40916
 
#endif // __CScanBuffer_h__
40917
 
 
40918
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
40919
 
// This file is part of PUMA.
40920
 
// Copyright (C) 1999-2003  The PUMA developer team.
40921
 
//                                                                
40922
 
// This program is free software;  you can redistribute it and/or 
40923
 
// modify it under the terms of the GNU General Public License as 
40924
 
// published by the Free Software Foundation; either version 2 of 
40925
 
// the License, or (at your option) any later version.            
40926
 
//                                                                
40927
 
// This program is distributed in the hope that it will be useful,
40928
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40929
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40930
 
// GNU General Public License for more details.                   
40931
 
//                                                                
40932
 
// You should have received a copy of the GNU General Public      
40933
 
// License along with this program; if not, write to the Free     
40934
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40935
 
// MA  02111-1307  USA                                            
40936
 
 
40937
 
#ifndef __c_comment_recognizer_h__
40938
 
#define __c_comment_recognizer_h__
40939
 
 
40940
 
 
40941
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
40942
 
// This file is part of PUMA.
40943
 
// Copyright (C) 1999-2003  The PUMA developer team.
40944
 
//                                                                
40945
 
// This program is free software;  you can redistribute it and/or 
40946
 
// modify it under the terms of the GNU General Public License as 
40947
 
// published by the Free Software Foundation; either version 2 of 
40948
 
// the License, or (at your option) any later version.            
40949
 
//                                                                
40950
 
// This program is distributed in the hope that it will be useful,
40951
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40952
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40953
 
// GNU General Public License for more details.                   
40954
 
//                                                                
40955
 
// You should have received a copy of the GNU General Public      
40956
 
// License along with this program; if not, write to the Free     
40957
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40958
 
// MA  02111-1307  USA                                            
40959
 
 
40960
 
#ifndef __mapped_orange_recognizer_h__
40961
 
#define __mapped_orange_recognizer_h__
40962
 
 
40963
 
// The token recognizer class, which uses scanner tables generated by the
40964
 
// orange tool. Returned expressions mapped according to an orange
40965
 
// generated mapping table
40966
 
 
40967
 
 
40968
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
40969
 
// This file is part of PUMA.
40970
 
// Copyright (C) 1999-2003  The PUMA developer team.
40971
 
//                                                                
40972
 
// This program is free software;  you can redistribute it and/or 
40973
 
// modify it under the terms of the GNU General Public License as 
40974
 
// published by the Free Software Foundation; either version 2 of 
40975
 
// the License, or (at your option) any later version.            
40976
 
//                                                                
40977
 
// This program is distributed in the hope that it will be useful,
40978
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
40979
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
40980
 
// GNU General Public License for more details.                   
40981
 
//                                                                
40982
 
// You should have received a copy of the GNU General Public      
40983
 
// License along with this program; if not, write to the Free     
40984
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
40985
 
// MA  02111-1307  USA                                            
40986
 
 
40987
 
#ifndef __recognizer_h__
40988
 
#define __recognizer_h__
40989
 
 
40990
 
// The token recognizer class, which uses scanner tables generated by the
40991
 
// orange tool.
40992
 
 
40993
 
 
40994
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
40995
 
namespace Puma {
40996
 
 
40997
 
 
40998
 
#ifndef __TTGEN__
40999
 
#  define __TTGEN__
41000
 
 
41001
 
#line 41002 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41002
 
} // closed Puma
41003
 
class WinIfExists;
41004
 
class WinImportHandler;
41005
 
class WinMacros;
41006
 
class CMatchSyntax;
41007
 
class ExtGnu;
41008
 
class ExtAC;
41009
 
class ExtACBuilderCoupling;
41010
 
class ExtACSyntaxCoupling;
41011
 
class ExtACTree;
41012
 
class ExtACKeywords;
41013
 
class WinAsm;
41014
 
class WinDeclSpecs;
41015
 
class WinMemberExplSpec;
41016
 
class WinTypeKeywords;
41017
 
class PragmaOnceUnitState;
41018
 
class PragmaOnce;
41019
 
class CCExprResolve;
41020
 
class CExprResolve;
41021
 
namespace Puma {
41022
 
 
41023
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
41024
 
typedef struct
41025
 
 {
41026
 
#line 41027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41027
 
  friend class ::WinIfExists;
41028
 
  friend class ::WinImportHandler;
41029
 
  friend class ::WinMacros;
41030
 
  friend class ::CMatchSyntax;
41031
 
  friend class ::ExtGnu;
41032
 
  friend class ::ExtAC;
41033
 
  friend class ::ExtACBuilderCoupling;
41034
 
  friend class ::ExtACSyntaxCoupling;
41035
 
  friend class ::ExtACTree;
41036
 
  friend class ::ExtACKeywords;
41037
 
  friend class ::WinAsm;
41038
 
  friend class ::WinDeclSpecs;
41039
 
  friend class ::WinMemberExplSpec;
41040
 
  friend class ::WinTypeKeywords;
41041
 
  friend class ::PragmaOnceUnitState;
41042
 
  friend class ::PragmaOnce;
41043
 
  friend class ::CCExprResolve;
41044
 
  friend class ::CExprResolve;
41045
 
 
41046
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
41047
 
 unsigned char Type;
41048
 
   unsigned char LookAhead;
41049
 
   int           Expression;
41050
 
   int           Start;
41051
 
 } States;                                                                   
41052
 
#endif
41053
 
 
41054
 
 
41055
 
// class declaration
41056
 
 
41057
 
 
41058
 
#line 41059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41059
 
} // closed Puma
41060
 
class WinIfExists;
41061
 
class WinImportHandler;
41062
 
class WinMacros;
41063
 
class CMatchSyntax;
41064
 
class ExtGnu;
41065
 
class ExtAC;
41066
 
class ExtACBuilderCoupling;
41067
 
class ExtACSyntaxCoupling;
41068
 
class ExtACTree;
41069
 
class ExtACKeywords;
41070
 
class WinAsm;
41071
 
class WinDeclSpecs;
41072
 
class WinMemberExplSpec;
41073
 
class WinTypeKeywords;
41074
 
class PragmaOnceUnitState;
41075
 
class PragmaOnce;
41076
 
class CCExprResolve;
41077
 
class CExprResolve;
41078
 
namespace Puma {
41079
 
 
41080
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
41081
 
template <typename TScanBuffer>
41082
 
class OrangeRecognizer {
41083
 
#line 41084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41084
 
  friend class ::WinIfExists;
41085
 
  friend class ::WinImportHandler;
41086
 
  friend class ::WinMacros;
41087
 
  friend class ::CMatchSyntax;
41088
 
  friend class ::ExtGnu;
41089
 
  friend class ::ExtAC;
41090
 
  friend class ::ExtACBuilderCoupling;
41091
 
  friend class ::ExtACSyntaxCoupling;
41092
 
  friend class ::ExtACTree;
41093
 
  friend class ::ExtACKeywords;
41094
 
  friend class ::WinAsm;
41095
 
  friend class ::WinDeclSpecs;
41096
 
  friend class ::WinMemberExplSpec;
41097
 
  friend class ::WinTypeKeywords;
41098
 
  friend class ::PragmaOnceUnitState;
41099
 
  friend class ::PragmaOnce;
41100
 
  friend class ::CCExprResolve;
41101
 
  friend class ::CExprResolve;
41102
 
 
41103
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
41104
 
 
41105
 
  // local structures generated by Orange
41106
 
 
41107
 
  char *_map;
41108
 
  int _start;
41109
 
  States *_state;
41110
 
  int *_next;
41111
 
  int *_control;
41112
 
  int _tab_size;
41113
 
 
41114
 
public:
41115
 
  OrangeRecognizer (char *map, int start, States *state, int *next,
41116
 
                    int *control, int tab_size) : 
41117
 
    _map (map), _start (start), _state (state), _next (next),
41118
 
    _control (control), _tab_size (tab_size)
41119
 
   {}
41120
 
 
41121
 
  // try to recognize the current token in the character buffer
41122
 
  // returns 1 on success, 0 on eof, -1 on unknown token
41123
 
  int recognize (TScanBuffer *scan_buffer, int &token, int &len); 
41124
 
};
41125
 
 
41126
 
template <typename TScanBuffer>
41127
 
int OrangeRecognizer<TScanBuffer>::recognize (TScanBuffer *scan_buffer,
41128
 
                                              int &token, int &len) {
41129
 
  int  NextState;
41130
 
  char Character;
41131
 
  char CharClass;
41132
 
  int  NextStatePos;
41133
 
  int  State;
41134
 
  int  LookAheadLen;
41135
 
  int  AcceptLen;
41136
 
  int  AcceptState;
41137
 
  ScanBuffer::State buffer_state = ScanBuffer::STATE_OK;
41138
 
 
41139
 
  State = _start;
41140
 
  AcceptState = -1;
41141
 
  LookAheadLen = 0;
41142
 
  AcceptLen = 0;
41143
 
 
41144
 
  do { 
41145
 
    Character = scan_buffer->next ();
41146
 
 
41147
 
    CharClass = _map[(unsigned char)Character];
41148
 
    if (CharClass == -1)
41149
 
      break;
41150
 
 
41151
 
    NextStatePos = _state[State].Start + CharClass;
41152
 
    if (NextStatePos < 0 || NextStatePos >= _tab_size ||
41153
 
        _control[NextStatePos] != State)
41154
 
      break;
41155
 
 
41156
 
    if ((NextState = _next[NextStatePos]) == -1)
41157
 
      break;
41158
 
 
41159
 
    State = NextState;
41160
 
 
41161
 
    if (_state[State].Type > 0) {
41162
 
      AcceptState = State; // remember this (terminal) state
41163
 
      AcceptLen = scan_buffer->len ();
41164
 
    }
41165
 
 
41166
 
    if (_state[State].LookAhead)
41167
 
      LookAheadLen = scan_buffer->len ();
41168
 
 
41169
 
    buffer_state = scan_buffer->state ();
41170
 
  } while (NextState != -1 && buffer_state == ScanBuffer::STATE_OK);
41171
 
 
41172
 
  if (buffer_state == ScanBuffer::STATE_ERROR)
41173
 
    return -1;
41174
 
 
41175
 
  if (AcceptState == -1)
41176
 
    return 0;
41177
 
 
41178
 
  len   = (_state[AcceptState].Type == 2) ? LookAheadLen : AcceptLen;
41179
 
  token = _state[AcceptState].Expression;
41180
 
 
41181
 
  return 1;
41182
 
}
41183
 
 
41184
 
} // namespace Puma
41185
 
 
41186
 
#endif /* __orange_recognizer_h__ */
41187
 
 
41188
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
41189
 
namespace Puma {
41190
 
 
41191
 
 
41192
 
// class declaration
41193
 
 
41194
 
 
41195
 
#line 41196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41196
 
} // closed Puma
41197
 
class WinIfExists;
41198
 
class WinImportHandler;
41199
 
class WinMacros;
41200
 
class CMatchSyntax;
41201
 
class ExtGnu;
41202
 
class ExtAC;
41203
 
class ExtACBuilderCoupling;
41204
 
class ExtACSyntaxCoupling;
41205
 
class ExtACTree;
41206
 
class ExtACKeywords;
41207
 
class WinAsm;
41208
 
class WinDeclSpecs;
41209
 
class WinMemberExplSpec;
41210
 
class WinTypeKeywords;
41211
 
class PragmaOnceUnitState;
41212
 
class PragmaOnce;
41213
 
class CCExprResolve;
41214
 
class CExprResolve;
41215
 
namespace Puma {
41216
 
 
41217
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
41218
 
template <class ScanBuffer>
41219
 
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
41220
 
#line 41221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41221
 
  friend class ::WinIfExists;
41222
 
  friend class ::WinImportHandler;
41223
 
  friend class ::WinMacros;
41224
 
  friend class ::CMatchSyntax;
41225
 
  friend class ::ExtGnu;
41226
 
  friend class ::ExtAC;
41227
 
  friend class ::ExtACBuilderCoupling;
41228
 
  friend class ::ExtACSyntaxCoupling;
41229
 
  friend class ::ExtACTree;
41230
 
  friend class ::ExtACKeywords;
41231
 
  friend class ::WinAsm;
41232
 
  friend class ::WinDeclSpecs;
41233
 
  friend class ::WinMemberExplSpec;
41234
 
  friend class ::WinTypeKeywords;
41235
 
  friend class ::PragmaOnceUnitState;
41236
 
  friend class ::PragmaOnce;
41237
 
  friend class ::CCExprResolve;
41238
 
  friend class ::CExprResolve;
41239
 
 
41240
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
41241
 
 
41242
 
  int *_expr_map;
41243
 
 
41244
 
public:
41245
 
  MappedOrangeRecognizer (char *map, int *expr_map, int start, 
41246
 
                          States *state, int *next,
41247
 
                          int *control, int tab_size) : 
41248
 
    OrangeRecognizer<ScanBuffer> (map, start, state, next, control, tab_size),
41249
 
    _expr_map (expr_map) 
41250
 
   {}
41251
 
 
41252
 
  // try to recognize the current token in the character buffer
41253
 
  // returns 1 on success, 0 on eof, -1 on unknown token
41254
 
  int recognize (ScanBuffer *scan_buffer, int &token, int &len) {
41255
 
    int result;
41256
 
 
41257
 
    if ((result = OrangeRecognizer<ScanBuffer>::recognize (scan_buffer, token, len)) == 1) {
41258
 
      token = _expr_map[token];
41259
 
    }
41260
 
    return result;
41261
 
  }
41262
 
};
41263
 
 
41264
 
 
41265
 
} // namespace Puma
41266
 
 
41267
 
#endif // __mapped_orange_recognizer_h__
41268
 
 
41269
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
41270
 
namespace Puma {
41271
 
 
41272
 
 
41273
 
 
41274
 
#line 41275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41275
 
} // closed Puma
41276
 
class WinIfExists;
41277
 
class WinImportHandler;
41278
 
class WinMacros;
41279
 
class CMatchSyntax;
41280
 
class ExtGnu;
41281
 
class ExtAC;
41282
 
class ExtACBuilderCoupling;
41283
 
class ExtACSyntaxCoupling;
41284
 
class ExtACTree;
41285
 
class ExtACKeywords;
41286
 
class WinAsm;
41287
 
class WinDeclSpecs;
41288
 
class WinMemberExplSpec;
41289
 
class WinTypeKeywords;
41290
 
class PragmaOnceUnitState;
41291
 
class PragmaOnce;
41292
 
class CCExprResolve;
41293
 
class CExprResolve;
41294
 
namespace Puma {
41295
 
 
41296
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
41297
 
class CCommentRecognizer {
41298
 
#line 41299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41299
 
  friend class ::WinIfExists;
41300
 
  friend class ::WinImportHandler;
41301
 
  friend class ::WinMacros;
41302
 
  friend class ::CMatchSyntax;
41303
 
  friend class ::ExtGnu;
41304
 
  friend class ::ExtAC;
41305
 
  friend class ::ExtACBuilderCoupling;
41306
 
  friend class ::ExtACSyntaxCoupling;
41307
 
  friend class ::ExtACTree;
41308
 
  friend class ::ExtACKeywords;
41309
 
  friend class ::WinAsm;
41310
 
  friend class ::WinDeclSpecs;
41311
 
  friend class ::WinMemberExplSpec;
41312
 
  friend class ::WinTypeKeywords;
41313
 
  friend class ::PragmaOnceUnitState;
41314
 
  friend class ::PragmaOnce;
41315
 
  friend class ::CCExprResolve;
41316
 
  friend class ::CExprResolve;
41317
 
 
41318
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
41319
 
 
41320
 
public:
41321
 
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
41322
 
 
41323
 
private:
41324
 
  static MappedOrangeRecognizer<CScanBuffer> comment_recognizer;   
41325
 
  static MappedOrangeRecognizer<CScanBuffer> sl_comment_recognizer;   
41326
 
  static MappedOrangeRecognizer<CScanBuffer> ml_comment_recognizer;   
41327
 
  Mode comment_mode;
41328
 
 
41329
 
public:
41330
 
  CCommentRecognizer () : comment_mode (NO_COMMENT) {}
41331
 
  int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
41332
 
  void mode (Mode mode) { comment_mode = mode; }
41333
 
  Mode mode () { return comment_mode; }
41334
 
};
41335
 
 
41336
 
 
41337
 
} // namespace Puma
41338
 
 
41339
 
#endif /* __c_comment_recognizer_h__ */
41340
 
 
41341
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
41342
 
// This file is part of PUMA.
41343
 
// Copyright (C) 1999-2003  The PUMA developer team.
41344
 
//                                                                
41345
 
// This program is free software;  you can redistribute it and/or 
41346
 
// modify it under the terms of the GNU General Public License as 
41347
 
// published by the Free Software Foundation; either version 2 of 
41348
 
// the License, or (at your option) any later version.            
41349
 
//                                                                
41350
 
// This program is distributed in the hope that it will be useful,
41351
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
41352
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
41353
 
// GNU General Public License for more details.                   
41354
 
//                                                                
41355
 
// You should have received a copy of the GNU General Public      
41356
 
// License along with this program; if not, write to the Free     
41357
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
41358
 
// MA  02111-1307  USA                                            
41359
 
 
41360
 
#ifndef __keyword_recognizer_h__
41361
 
#define __keyword_recognizer_h__
41362
 
 
41363
 
 
41364
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
41365
 
namespace Puma {
41366
 
 
41367
 
 
41368
 
 
41369
 
#line 41370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41370
 
} // closed Puma
41371
 
class WinIfExists;
41372
 
class WinImportHandler;
41373
 
class WinMacros;
41374
 
class CMatchSyntax;
41375
 
class ExtGnu;
41376
 
class ExtAC;
41377
 
class ExtACBuilderCoupling;
41378
 
class ExtACSyntaxCoupling;
41379
 
class ExtACTree;
41380
 
class ExtACKeywords;
41381
 
class WinAsm;
41382
 
class WinDeclSpecs;
41383
 
class WinMemberExplSpec;
41384
 
class WinTypeKeywords;
41385
 
class PragmaOnceUnitState;
41386
 
class PragmaOnce;
41387
 
class CCExprResolve;
41388
 
class CExprResolve;
41389
 
namespace Puma {
41390
 
 
41391
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
41392
 
class KeywordRecognizer {
41393
 
#line 41394 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41394
 
  friend class ::WinIfExists;
41395
 
  friend class ::WinImportHandler;
41396
 
  friend class ::WinMacros;
41397
 
  friend class ::CMatchSyntax;
41398
 
  friend class ::ExtGnu;
41399
 
  friend class ::ExtAC;
41400
 
  friend class ::ExtACBuilderCoupling;
41401
 
  friend class ::ExtACSyntaxCoupling;
41402
 
  friend class ::ExtACTree;
41403
 
  friend class ::ExtACKeywords;
41404
 
  friend class ::WinAsm;
41405
 
  friend class ::WinDeclSpecs;
41406
 
  friend class ::WinMemberExplSpec;
41407
 
  friend class ::WinTypeKeywords;
41408
 
  friend class ::PragmaOnceUnitState;
41409
 
  friend class ::PragmaOnce;
41410
 
  friend class ::CCExprResolve;
41411
 
  friend class ::CExprResolve;
41412
 
 
41413
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
41414
 
 
41415
 
protected:
41416
 
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
41417
 
 
41418
 
public:
41419
 
  virtual ~KeywordRecognizer () {}
41420
 
  virtual int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
41421
 
};
41422
 
 
41423
 
 
41424
 
} // namespace Puma
41425
 
 
41426
 
#endif /* __keyword_recognizer_h__ */
41427
 
 
41428
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
41429
 
namespace Puma {
41430
 
 
41431
 
 
41432
 
 
41433
 
#line 41434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41434
 
} // closed Puma
41435
 
class WinIfExists;
41436
 
class WinImportHandler;
41437
 
class WinMacros;
41438
 
class CMatchSyntax;
41439
 
class ExtGnu;
41440
 
class ExtAC;
41441
 
class ExtACBuilderCoupling;
41442
 
class ExtACSyntaxCoupling;
41443
 
class ExtACTree;
41444
 
class ExtACKeywords;
41445
 
class WinAsm;
41446
 
class WinDeclSpecs;
41447
 
class WinMemberExplSpec;
41448
 
class WinTypeKeywords;
41449
 
class PragmaOnceUnitState;
41450
 
class PragmaOnce;
41451
 
class CCExprResolve;
41452
 
class CExprResolve;
41453
 
namespace Puma {
41454
 
 
41455
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
41456
 
class CRecognizer {
41457
 
#line 41458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41458
 
  friend class ::WinIfExists;
41459
 
  friend class ::WinImportHandler;
41460
 
  friend class ::WinMacros;
41461
 
  friend class ::CMatchSyntax;
41462
 
  friend class ::ExtGnu;
41463
 
  friend class ::ExtAC;
41464
 
  friend class ::ExtACBuilderCoupling;
41465
 
  friend class ::ExtACSyntaxCoupling;
41466
 
  friend class ::ExtACTree;
41467
 
  friend class ::ExtACKeywords;
41468
 
  friend class ::WinAsm;
41469
 
  friend class ::WinDeclSpecs;
41470
 
  friend class ::WinMemberExplSpec;
41471
 
  friend class ::WinTypeKeywords;
41472
 
  friend class ::PragmaOnceUnitState;
41473
 
  friend class ::PragmaOnce;
41474
 
  friend class ::CCExprResolve;
41475
 
  friend class ::CExprResolve;
41476
 
 
41477
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
41478
 
 
41479
 
  CScanBuffer scan_buffer;
41480
 
  CCommentRecognizer comment_recognizer;
41481
 
  Array<KeywordRecognizer*> additional_keyword_recognizers;
41482
 
 
41483
 
public:
41484
 
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
41485
 
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE, 
41486
 
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
41487
 
 
41488
 
  CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
41489
 
    std_c (true), std_cplusplus (true) {}
41490
 
  CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
41491
 
    macro_ops (false) { setup (buffer); }
41492
 
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
41493
 
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
41494
 
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
41495
 
  void allow_std_c (bool flag = true)         { std_c = flag; }
41496
 
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
41497
 
  void setup (ScanBuffer &buffer);
41498
 
  int recognize (Lang &lang, int &expr, int &len);
41499
 
  Mode mode () { return scan_mode; }
41500
 
  bool new_line () const { return scan_buffer.new_line (); }
41501
 
  CScanBuffer& buffer () { return scan_buffer; }
41502
 
  void addRecognizer(KeywordRecognizer &recognizer) 
41503
 
   { additional_keyword_recognizers.append(&recognizer); }
41504
 
 
41505
 
private:
41506
 
  static MappedOrangeRecognizer<CScanBuffer> string_recognizer;   
41507
 
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
41508
 
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
41509
 
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
41510
 
  static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
41511
 
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
41512
 
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
41513
 
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
41514
 
 
41515
 
  Mode scan_mode;
41516
 
  bool check_directive;
41517
 
  bool wildcards;
41518
 
  bool aspectc;
41519
 
  bool macro_ops;
41520
 
  bool std_c;
41521
 
  bool std_cplusplus;
41522
 
};
41523
 
 
41524
 
 
41525
 
} // namespace Puma
41526
 
 
41527
 
#endif /* __c_recognizer_h__ */
41528
 
 
41529
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
41530
 
// This file is part of PUMA.
41531
 
// Copyright (C) 1999-2003  The PUMA developer team.
41532
 
//                                                                
41533
 
// This program is free software;  you can redistribute it and/or 
41534
 
// modify it under the terms of the GNU General Public License as 
41535
 
// published by the Free Software Foundation; either version 2 of 
41536
 
// the License, or (at your option) any later version.            
41537
 
//                                                                
41538
 
// This program is distributed in the hope that it will be useful,
41539
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
41540
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
41541
 
// GNU General Public License for more details.                   
41542
 
//                                                                
41543
 
// You should have received a copy of the GNU General Public      
41544
 
// License along with this program; if not, write to the Free     
41545
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
41546
 
// MA  02111-1307  USA                                            
41547
 
 
41548
 
#ifndef __Tokenizer_h__
41549
 
#define __Tokenizer_h__
41550
 
 
41551
 
// Tokenizer interface. Tokenizer read input from a "Source" and
41552
 
// form tokens, which used to fill a "Unit".
41553
 
 
41554
 
 
41555
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
41556
 
// This file is part of PUMA.
41557
 
// Copyright (C) 1999-2003  The PUMA developer team.
41558
 
//                                                                
41559
 
// This program is free software;  you can redistribute it and/or 
41560
 
// modify it under the terms of the GNU General Public License as 
41561
 
// published by the Free Software Foundation; either version 2 of 
41562
 
// the License, or (at your option) any later version.            
41563
 
//                                                                
41564
 
// This program is distributed in the hope that it will be useful,
41565
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
41566
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
41567
 
// GNU General Public License for more details.                   
41568
 
//                                                                
41569
 
// You should have received a copy of the GNU General Public      
41570
 
// License along with this program; if not, write to the Free     
41571
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
41572
 
// MA  02111-1307  USA                                            
41573
 
 
41574
 
#ifndef __source_h__
41575
 
#define __source_h__
41576
 
 
41577
 
namespace Puma {
41578
 
 
41579
 
 
41580
 
 
41581
 
#line 41582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41582
 
} // closed Puma
41583
 
class WinIfExists;
41584
 
class WinImportHandler;
41585
 
class WinMacros;
41586
 
class CMatchSyntax;
41587
 
class ExtGnu;
41588
 
class ExtAC;
41589
 
class ExtACBuilderCoupling;
41590
 
class ExtACSyntaxCoupling;
41591
 
class ExtACTree;
41592
 
class ExtACKeywords;
41593
 
class WinAsm;
41594
 
class WinDeclSpecs;
41595
 
class WinMemberExplSpec;
41596
 
class WinTypeKeywords;
41597
 
class PragmaOnceUnitState;
41598
 
class PragmaOnce;
41599
 
class CCExprResolve;
41600
 
class CExprResolve;
41601
 
namespace Puma {
41602
 
 
41603
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
41604
 
class Source {
41605
 
#line 41606 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41606
 
  friend class ::WinIfExists;
41607
 
  friend class ::WinImportHandler;
41608
 
  friend class ::WinMacros;
41609
 
  friend class ::CMatchSyntax;
41610
 
  friend class ::ExtGnu;
41611
 
  friend class ::ExtAC;
41612
 
  friend class ::ExtACBuilderCoupling;
41613
 
  friend class ::ExtACSyntaxCoupling;
41614
 
  friend class ::ExtACTree;
41615
 
  friend class ::ExtACKeywords;
41616
 
  friend class ::WinAsm;
41617
 
  friend class ::WinDeclSpecs;
41618
 
  friend class ::WinMemberExplSpec;
41619
 
  friend class ::WinTypeKeywords;
41620
 
  friend class ::PragmaOnceUnitState;
41621
 
  friend class ::PragmaOnce;
41622
 
  friend class ::CCExprResolve;
41623
 
  friend class ::CExprResolve;
41624
 
 
41625
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
41626
 
 
41627
 
public:
41628
 
  Source () {}
41629
 
  virtual ~Source () {}
41630
 
  virtual int read (char *dest, int n) = 0;
41631
 
  virtual int size () { return -1; }
41632
 
};
41633
 
 
41634
 
 
41635
 
} // namespace Puma
41636
 
 
41637
 
#endif /* __source_h__ */
41638
 
 
41639
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
41640
 
// This file is part of PUMA.
41641
 
// Copyright (C) 1999-2003  The PUMA developer team.
41642
 
//                                                                
41643
 
// This program is free software;  you can redistribute it and/or 
41644
 
// modify it under the terms of the GNU General Public License as 
41645
 
// published by the Free Software Foundation; either version 2 of 
41646
 
// the License, or (at your option) any later version.            
41647
 
//                                                                
41648
 
// This program is distributed in the hope that it will be useful,
41649
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
41650
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
41651
 
// GNU General Public License for more details.                   
41652
 
//                                                                
41653
 
// You should have received a copy of the GNU General Public      
41654
 
// License along with this program; if not, write to the Free     
41655
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
41656
 
// MA  02111-1307  USA                                            
41657
 
 
41658
 
#ifndef __unit_h__
41659
 
#define __unit_h__
41660
 
 
41661
 
 
41662
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
41663
 
// This file is part of PUMA.
41664
 
// Copyright (C) 1999-2003  The PUMA developer team.
41665
 
//                                                                
41666
 
// This program is free software;  you can redistribute it and/or 
41667
 
// modify it under the terms of the GNU General Public License as 
41668
 
// published by the Free Software Foundation; either version 2 of 
41669
 
// the License, or (at your option) any later version.            
41670
 
//                                                                
41671
 
// This program is distributed in the hope that it will be useful,
41672
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
41673
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
41674
 
// GNU General Public License for more details.                   
41675
 
//                                                                
41676
 
// You should have received a copy of the GNU General Public      
41677
 
// License along with this program; if not, write to the Free     
41678
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
41679
 
// MA  02111-1307  USA                                            
41680
 
 
41681
 
#ifndef __list_h__
41682
 
#define __list_h__
41683
 
 
41684
 
 
41685
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
41686
 
namespace Puma {
41687
 
 
41688
 
 
41689
 
 
41690
 
#line 41691 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41691
 
} // closed Puma
41692
 
class WinIfExists;
41693
 
class WinImportHandler;
41694
 
class WinMacros;
41695
 
class CMatchSyntax;
41696
 
class ExtGnu;
41697
 
class ExtAC;
41698
 
class ExtACBuilderCoupling;
41699
 
class ExtACSyntaxCoupling;
41700
 
class ExtACTree;
41701
 
class ExtACKeywords;
41702
 
class WinAsm;
41703
 
class WinDeclSpecs;
41704
 
class WinMemberExplSpec;
41705
 
class WinTypeKeywords;
41706
 
class PragmaOnceUnitState;
41707
 
class PragmaOnce;
41708
 
class CCExprResolve;
41709
 
class CExprResolve;
41710
 
namespace Puma {
41711
 
 
41712
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
41713
 
class List {
41714
 
#line 41715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41715
 
  friend class ::WinIfExists;
41716
 
  friend class ::WinImportHandler;
41717
 
  friend class ::WinMacros;
41718
 
  friend class ::CMatchSyntax;
41719
 
  friend class ::ExtGnu;
41720
 
  friend class ::ExtAC;
41721
 
  friend class ::ExtACBuilderCoupling;
41722
 
  friend class ::ExtACSyntaxCoupling;
41723
 
  friend class ::ExtACTree;
41724
 
  friend class ::ExtACKeywords;
41725
 
  friend class ::WinAsm;
41726
 
  friend class ::WinDeclSpecs;
41727
 
  friend class ::WinMemberExplSpec;
41728
 
  friend class ::WinTypeKeywords;
41729
 
  friend class ::PragmaOnceUnitState;
41730
 
  friend class ::PragmaOnce;
41731
 
  friend class ::CCExprResolve;
41732
 
  friend class ::CExprResolve;
41733
 
 
41734
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
41735
 
 
41736
 
  ListElement *_first;
41737
 
  ListElement *_last;
41738
 
 
41739
 
public:
41740
 
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
41741
 
  List (const List &);
41742
 
  ~List();
41743
 
 
41744
 
  List &operator = (const List &);
41745
 
  List &operator += (const List &);
41746
 
  List operator + (const List &);
41747
 
 
41748
 
  void clear ();
41749
 
 
41750
 
  void append (ListElement &);
41751
 
  void prepend (ListElement &);
41752
 
  void insert (ListElement *at, ListElement &element);
41753
 
  void remove (ListElement *element);
41754
 
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
41755
 
   { List discard; cut (discard, from, to); }
41756
 
 
41757
 
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
41758
 
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
41759
 
  List *copy (ListElement *from = (ListElement*)0, 
41760
 
              ListElement *to = (ListElement*)0);
41761
 
  void paste (ListElement *at, const List &l);
41762
 
  void paste_before (ListElement *at, const List &l);
41763
 
  void move (ListElement *at, List &l);
41764
 
  void move_before (ListElement *at, List &l);
41765
 
 
41766
 
  bool empty () const { return _first == (ListElement*)0; }
41767
 
  const ListElement *first () const { return _first; }
41768
 
  const ListElement *last () const { return _last; }
41769
 
  const ListElement *next (const ListElement *element) const
41770
 
   { return element->_next; }
41771
 
  const ListElement *prev (const ListElement *element) const 
41772
 
   { return element->_prev; }
41773
 
};
41774
 
 
41775
 
 
41776
 
} // namespace Puma
41777
 
 
41778
 
#endif /* __list_h__ */
41779
 
 
41780
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
41781
 
 
41782
 
#line 41783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41783
 
 
41784
 
#ifndef __ac_fwd_PragmaOnceUnitState__
41785
 
#define __ac_fwd_PragmaOnceUnitState__
41786
 
class PragmaOnceUnitState;
41787
 
namespace AC {
41788
 
  template <class JoinPoint>
41789
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
41790
 
}
41791
 
#endif
41792
 
 
41793
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
41794
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
41795
 
#endif
41796
 
 
41797
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
41798
 
 
41799
 
#line 41800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41800
 
 
41801
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41802
 
// This file is part of PUMA.
41803
 
// Copyright (C) 1999-2003  The PUMA developer team.
41804
 
//                                                                
41805
 
// This program is free software;  you can redistribute it and/or 
41806
 
// modify it under the terms of the GNU General Public License as 
41807
 
// published by the Free Software Foundation; either version 2 of 
41808
 
// the License, or (at your option) any later version.            
41809
 
//                                                                
41810
 
// This program is distributed in the hope that it will be useful,
41811
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
41812
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
41813
 
// GNU General Public License for more details.                   
41814
 
//                                                                
41815
 
// You should have received a copy of the GNU General Public      
41816
 
// License along with this program; if not, write to the Free     
41817
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
41818
 
// MA  02111-1307  USA                                            
41819
 
 
41820
 
#ifndef __PragmaOnceUnitState__
41821
 
#define __PragmaOnceUnitState__
41822
 
 
41823
 
using namespace Puma;
41824
 
 
41825
 
 
41826
 
#line 41827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41827
 
class WinIfExists;
41828
 
class WinImportHandler;
41829
 
class WinMacros;
41830
 
class CMatchSyntax;
41831
 
class ExtGnu;
41832
 
class ExtAC;
41833
 
class ExtACBuilderCoupling;
41834
 
class ExtACSyntaxCoupling;
41835
 
class ExtACTree;
41836
 
class ExtACKeywords;
41837
 
class WinAsm;
41838
 
class WinDeclSpecs;
41839
 
class WinMemberExplSpec;
41840
 
class WinTypeKeywords;
41841
 
class PragmaOnce;
41842
 
class CCExprResolve;
41843
 
class CExprResolve;
41844
 
 
41845
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41846
 
class PragmaOnceUnitState {
41847
 
#line 41848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41848
 
 
41849
 
public:
41850
 
  static PragmaOnceUnitState *aspectof () {
41851
 
    static PragmaOnceUnitState __instance;
41852
 
    return &__instance;
41853
 
  }
41854
 
  static PragmaOnceUnitState *aspectOf () {
41855
 
    return aspectof ();
41856
 
  }
41857
 
private:
41858
 
 
41859
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41860
 
 
41861
 
#line 41862 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41862
 
  friend class ::WinIfExists;
41863
 
  friend class ::WinImportHandler;
41864
 
  friend class ::WinMacros;
41865
 
  friend class ::CMatchSyntax;
41866
 
  friend class ::ExtGnu;
41867
 
  friend class ::ExtAC;
41868
 
  friend class ::ExtACBuilderCoupling;
41869
 
  friend class ::ExtACSyntaxCoupling;
41870
 
  friend class ::ExtACTree;
41871
 
  friend class ::ExtACKeywords;
41872
 
  friend class ::WinAsm;
41873
 
  friend class ::WinDeclSpecs;
41874
 
  friend class ::WinMemberExplSpec;
41875
 
  friend class ::WinTypeKeywords;
41876
 
  friend class ::PragmaOnce;
41877
 
  friend class ::CCExprResolve;
41878
 
  friend class ::CExprResolve;
41879
 
 
41880
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41881
 
 
41882
 
  /******************************************************/
41883
 
  /* specific #pragma once unit state                   */
41884
 
  /******************************************************/
41885
 
 
41886
 
  // pointcut definitions
41887
 
  
41888
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41889
 
 
41890
 
 
41891
 
  
41892
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41893
 
 
41894
 
  
41895
 
  // initialize new state flag
41896
 
  
41897
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41898
 
 
41899
 
public: template<class JoinPoint> void __a0_after 
41900
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41901
 
 
41902
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41903
 
(JoinPoint *tjp)
41904
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41905
 
 {
41906
 
#line 41907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41907
 
 
41908
 
  JoinPoint *&thisJoinPoint = tjp;
41909
 
 
41910
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41911
 
 
41912
 
#line 41913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41913
 
 
41914
 
  typedef typename JoinPoint::That __JP_That;
41915
 
  typedef typename JoinPoint::Target __JP_Target;
41916
 
  typedef typename JoinPoint::Result __JP_Result;
41917
 
 
41918
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41919
 
 
41920
 
    thisJoinPoint->that ()->_once = false;
41921
 
  }
41922
 
#line 41923 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41923
 
 
41924
 
private:
41925
 
 
41926
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41927
 
 
41928
 
 
41929
 
protected:
41930
 
  // this aspect should never be instantiated directly
41931
 
  PragmaOnceUnitState () {}
41932
 
};
41933
 
#line 41934 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41934
 
 
41935
 
namespace AC {
41936
 
  template <class JoinPoint>
41937
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
41938
 
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
41939
 
  }
41940
 
41941
 
 
41942
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
41943
 
 
41944
 
 
41945
 
 
41946
 
#endif /* __PragmaOnceUnitState__ */
41947
 
 
41948
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
41949
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
41950
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
41951
 
 
41952
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
41953
 
// This file is part of PUMA.
41954
 
// Copyright (C) 1999-2003  The PUMA developer team.
41955
 
//                                                                
41956
 
// This program is free software;  you can redistribute it and/or 
41957
 
// modify it under the terms of the GNU General Public License as 
41958
 
// published by the Free Software Foundation; either version 2 of 
41959
 
// the License, or (at your option) any later version.            
41960
 
//                                                                
41961
 
// This program is distributed in the hope that it will be useful,
41962
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
41963
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
41964
 
// GNU General Public License for more details.                   
41965
 
//                                                                
41966
 
// You should have received a copy of the GNU General Public      
41967
 
// License along with this program; if not, write to the Free     
41968
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
41969
 
// MA  02111-1307  USA                                            
41970
 
 
41971
 
#ifndef __UnitState__
41972
 
#define __UnitState__
41973
 
 
41974
 
// The state of a unit: 
41975
 
// 1. modified by manipulations and not updated at the class registry
41976
 
// 2. modified by manipulations and updated at the class registry
41977
 
// 3. unmodified by manipulations and not updated at the class registry
41978
 
// 4. unmodified by manipulations and updated at the class registry
41979
 
 
41980
 
namespace Puma {
41981
 
 
41982
 
 
41983
 
 
41984
 
#line 41985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
41985
 
} // closed Puma
41986
 
class WinIfExists;
41987
 
class WinImportHandler;
41988
 
class WinMacros;
41989
 
class CMatchSyntax;
41990
 
class ExtGnu;
41991
 
class ExtAC;
41992
 
class ExtACBuilderCoupling;
41993
 
class ExtACSyntaxCoupling;
41994
 
class ExtACTree;
41995
 
class ExtACKeywords;
41996
 
class WinAsm;
41997
 
class WinDeclSpecs;
41998
 
class WinMemberExplSpec;
41999
 
class WinTypeKeywords;
42000
 
class PragmaOnceUnitState;
42001
 
class PragmaOnce;
42002
 
class CCExprResolve;
42003
 
class CExprResolve;
42004
 
namespace Puma {
42005
 
 
42006
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42007
 
class UnitState {
42008
 
#line 42009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42009
 
  friend class ::WinIfExists;
42010
 
  friend class ::WinImportHandler;
42011
 
  friend class ::WinMacros;
42012
 
  friend class ::CMatchSyntax;
42013
 
  friend class ::ExtGnu;
42014
 
  friend class ::ExtAC;
42015
 
  friend class ::ExtACBuilderCoupling;
42016
 
  friend class ::ExtACSyntaxCoupling;
42017
 
  friend class ::ExtACTree;
42018
 
  friend class ::ExtACKeywords;
42019
 
  friend class ::WinAsm;
42020
 
  friend class ::WinDeclSpecs;
42021
 
  friend class ::WinMemberExplSpec;
42022
 
  friend class ::WinTypeKeywords;
42023
 
  friend class ::PragmaOnceUnitState;
42024
 
  friend class ::PragmaOnce;
42025
 
  friend class ::CCExprResolve;
42026
 
  friend class ::CExprResolve;
42027
 
 
42028
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42029
 
 
42030
 
  bool _modified;
42031
 
  bool _updated;
42032
 
  long _lastModified;
42033
 
      
42034
 
public:
42035
 
  
42036
 
#line 42037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42037
 
public: inline void __exec_old_C1();
42038
 
 
42039
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42040
 
UnitState ();
42041
 
      
42042
 
  bool isModified () const;
42043
 
  bool isUpdated () const;
42044
 
  long lastModified () const;
42045
 
 
42046
 
  // Is modified and has to be updated.
42047
 
  void modified ();
42048
 
  void lastModified (long);
42049
 
  void unmodified ();
42050
 
  void updated ();
42051
 
   private:
42052
 
 
42053
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
42054
 
 bool _once ;
42055
 
public :
42056
 
 
42057
 
bool onlyOnce ( ) const { return _once ; }
42058
 
void onlyOnce ( bool v ) { _once = v ; }
42059
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42060
 
 
42061
 
#line 42062 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42062
 
 
42063
 
struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
42064
 
  typedef void Result;
42065
 
  typedef ::Puma::UnitState That;
42066
 
  typedef ::Puma::UnitState Target;
42067
 
  static const int JPID = 5;
42068
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
42069
 
  struct Res {
42070
 
    typedef void Type;
42071
 
    typedef void ReferredType;
42072
 
  };
42073
 
  enum { ARGS = 1 };
42074
 
  template <int I, int DUMMY = 0> struct Arg {
42075
 
    typedef void Type;
42076
 
    typedef void ReferredType;
42077
 
  };
42078
 
  template <int DUMMY> struct Arg<0, DUMMY> {
42079
 
    typedef const ::Puma::UnitState & Type;
42080
 
    typedef const ::Puma::UnitState ReferredType;
42081
 
  };
42082
 
 
42083
 
  That *_that;
42084
 
 
42085
 
  inline That *that() {return (That*)_that;}
42086
 
 
42087
 
};
42088
 
 
42089
 
 
42090
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42091
 
 
42092
 
#line 42093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42093
 
 
42094
 
public:
42095
 
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
42096
 
  TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 tjp;
42097
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0::That*)this;
42098
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0> (&tjp);
42099
 
 
42100
 
}
42101
 
 
42102
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42103
 
};
42104
 
 
42105
 
 
42106
 
#line 42107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42107
 
 
42108
 
 
42109
 
struct TJP__ZN4Puma9UnitStateC1Ev_0 {
42110
 
  typedef void Result;
42111
 
  typedef ::Puma::UnitState That;
42112
 
  typedef ::Puma::UnitState Target;
42113
 
  static const int JPID = 5;
42114
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
42115
 
  struct Res {
42116
 
    typedef void Type;
42117
 
    typedef void ReferredType;
42118
 
  };
42119
 
  enum { ARGS = 0 };
42120
 
  template <int I, int DUMMY = 0> struct Arg {
42121
 
    typedef void Type;
42122
 
    typedef void ReferredType;
42123
 
  };
42124
 
 
42125
 
  That *_that;
42126
 
 
42127
 
  inline That *that() {return (That*)_that;}
42128
 
 
42129
 
};
42130
 
 
42131
 
 
42132
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42133
 
inline UnitState::UnitState ()
42134
 
 
42135
 
#line 42136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42136
 
{
42137
 
  TJP__ZN4Puma9UnitStateC1Ev_0 tjp;
42138
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1Ev_0::That*)this;
42139
 
this->__exec_old_C1();
42140
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1Ev_0> (&tjp);
42141
 
 
42142
 
}
42143
 
inline void Puma::UnitState::__exec_old_C1()
42144
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42145
 
{ _modified = false; _updated = false; _lastModified = 0; }
42146
 
 
42147
 
inline bool UnitState::isModified () const 
42148
 
 { return _modified; }
42149
 
inline bool UnitState::isUpdated () const 
42150
 
 { return _updated; }
42151
 
inline long UnitState::lastModified () const
42152
 
 { return _lastModified; }
42153
 
 
42154
 
inline void UnitState::modified () 
42155
 
 { _modified = true; _updated = false; _lastModified = 0; }
42156
 
inline void UnitState::unmodified () 
42157
 
 { _modified = false; }
42158
 
inline void UnitState::updated () 
42159
 
 { _updated = true; }
42160
 
inline void UnitState::lastModified (long when) 
42161
 
 { _lastModified = when; }
42162
 
 
42163
 
 
42164
 
} // namespace Puma
42165
 
 
42166
 
#endif /* __UnitState__ */
42167
 
 
42168
 
#line 42169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42169
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
42170
 
 
42171
 
#line 72 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
42172
 
 
42173
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
42174
 
namespace Puma {
42175
 
 
42176
 
 
42177
 
 
42178
 
#line 42179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42179
 
} // closed Puma
42180
 
class WinIfExists;
42181
 
class WinImportHandler;
42182
 
class WinMacros;
42183
 
class CMatchSyntax;
42184
 
class ExtGnu;
42185
 
class ExtAC;
42186
 
class ExtACBuilderCoupling;
42187
 
class ExtACSyntaxCoupling;
42188
 
class ExtACTree;
42189
 
class ExtACKeywords;
42190
 
class WinAsm;
42191
 
class WinDeclSpecs;
42192
 
class WinMemberExplSpec;
42193
 
class WinTypeKeywords;
42194
 
class PragmaOnceUnitState;
42195
 
class PragmaOnce;
42196
 
class CCExprResolve;
42197
 
class CExprResolve;
42198
 
namespace Puma {
42199
 
 
42200
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
42201
 
class Unit : public List, public Printable {
42202
 
#line 42203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42203
 
  friend class ::WinIfExists;
42204
 
  friend class ::WinImportHandler;
42205
 
  friend class ::WinMacros;
42206
 
  friend class ::CMatchSyntax;
42207
 
  friend class ::ExtGnu;
42208
 
  friend class ::ExtAC;
42209
 
  friend class ::ExtACBuilderCoupling;
42210
 
  friend class ::ExtACSyntaxCoupling;
42211
 
  friend class ::ExtACTree;
42212
 
  friend class ::ExtACKeywords;
42213
 
  friend class ::WinAsm;
42214
 
  friend class ::WinDeclSpecs;
42215
 
  friend class ::WinMemberExplSpec;
42216
 
  friend class ::WinTypeKeywords;
42217
 
  friend class ::PragmaOnceUnitState;
42218
 
  friend class ::PragmaOnce;
42219
 
  friend class ::CCExprResolve;
42220
 
  friend class ::CExprResolve;
42221
 
 
42222
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
42223
 
 
42224
 
  char *_name;
42225
 
  UnitState _state;
42226
 
 
42227
 
public:
42228
 
  Unit () : List (), _name ((char*)0) {}
42229
 
  Unit (const List &list) : List (list), _name ((char*)0) {}
42230
 
  virtual ~Unit ();
42231
 
  virtual void name (const char *);
42232
 
  char *name () const { return _name; }
42233
 
  virtual void print (ostream &os) const;
42234
 
  virtual bool isFile () const { return false; }
42235
 
  virtual bool isMacroExp () const { return false; }
42236
 
  UnitState &state () { return _state; }
42237
 
};
42238
 
 
42239
 
 
42240
 
} // namespace Puma
42241
 
 
42242
 
#endif /* __unit_h__ */
42243
 
 
42244
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
42245
 
namespace Puma {
42246
 
 
42247
 
 
42248
 
 
42249
 
#line 42250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42250
 
} // closed Puma
42251
 
class WinIfExists;
42252
 
class WinImportHandler;
42253
 
class WinMacros;
42254
 
class CMatchSyntax;
42255
 
class ExtGnu;
42256
 
class ExtAC;
42257
 
class ExtACBuilderCoupling;
42258
 
class ExtACSyntaxCoupling;
42259
 
class ExtACTree;
42260
 
class ExtACKeywords;
42261
 
class WinAsm;
42262
 
class WinDeclSpecs;
42263
 
class WinMemberExplSpec;
42264
 
class WinTypeKeywords;
42265
 
class PragmaOnceUnitState;
42266
 
class PragmaOnce;
42267
 
class CCExprResolve;
42268
 
class CExprResolve;
42269
 
namespace Puma {
42270
 
 
42271
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
42272
 
class Tokenizer {
42273
 
#line 42274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42274
 
  friend class ::WinIfExists;
42275
 
  friend class ::WinImportHandler;
42276
 
  friend class ::WinMacros;
42277
 
  friend class ::CMatchSyntax;
42278
 
  friend class ::ExtGnu;
42279
 
  friend class ::ExtAC;
42280
 
  friend class ::ExtACBuilderCoupling;
42281
 
  friend class ::ExtACSyntaxCoupling;
42282
 
  friend class ::ExtACTree;
42283
 
  friend class ::ExtACKeywords;
42284
 
  friend class ::WinAsm;
42285
 
  friend class ::WinDeclSpecs;
42286
 
  friend class ::WinMemberExplSpec;
42287
 
  friend class ::WinTypeKeywords;
42288
 
  friend class ::PragmaOnceUnitState;
42289
 
  friend class ::PragmaOnce;
42290
 
  friend class ::CCExprResolve;
42291
 
  friend class ::CExprResolve;
42292
 
 
42293
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
42294
 
 
42295
 
public:
42296
 
  virtual ~Tokenizer () {}
42297
 
  virtual void fill_unit (Source &in, Unit &unit) = 0;
42298
 
};
42299
 
 
42300
 
 
42301
 
} // namespace Puma
42302
 
 
42303
 
#endif /* __Tokenizer_h__ */
42304
 
 
42305
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
42306
 
namespace Puma {
42307
 
 
42308
 
 
42309
 
class Token;
42310
 
 
42311
 
 
42312
 
#line 42313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42313
 
} // closed Puma
42314
 
class WinIfExists;
42315
 
class WinImportHandler;
42316
 
class WinMacros;
42317
 
class CMatchSyntax;
42318
 
class ExtGnu;
42319
 
class ExtAC;
42320
 
class ExtACBuilderCoupling;
42321
 
class ExtACSyntaxCoupling;
42322
 
class ExtACTree;
42323
 
class ExtACKeywords;
42324
 
class WinAsm;
42325
 
class WinDeclSpecs;
42326
 
class WinMemberExplSpec;
42327
 
class WinTypeKeywords;
42328
 
class PragmaOnceUnitState;
42329
 
class PragmaOnce;
42330
 
class CCExprResolve;
42331
 
class CExprResolve;
42332
 
namespace Puma {
42333
 
 
42334
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
42335
 
class CScanner : public CRecognizer, public Tokenizer {
42336
 
#line 42337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42337
 
  friend class ::WinIfExists;
42338
 
  friend class ::WinImportHandler;
42339
 
  friend class ::WinMacros;
42340
 
  friend class ::CMatchSyntax;
42341
 
  friend class ::ExtGnu;
42342
 
  friend class ::ExtAC;
42343
 
  friend class ::ExtACBuilderCoupling;
42344
 
  friend class ::ExtACSyntaxCoupling;
42345
 
  friend class ::ExtACTree;
42346
 
  friend class ::ExtACKeywords;
42347
 
  friend class ::WinAsm;
42348
 
  friend class ::WinDeclSpecs;
42349
 
  friend class ::WinMemberExplSpec;
42350
 
  friend class ::WinTypeKeywords;
42351
 
  friend class ::PragmaOnceUnitState;
42352
 
  friend class ::PragmaOnce;
42353
 
  friend class ::CCExprResolve;
42354
 
  friend class ::CExprResolve;
42355
 
 
42356
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
42357
 
 
42358
 
  Location loc;
42359
 
  ErrorSink &err;
42360
 
 
42361
 
  Token *make_token (CRecognizer::Lang lang, int expr, int len);
42362
 
  LanguageID map_lang (CRecognizer::Lang lang);
42363
 
  Token *scan ();
42364
 
  void scan_all (Unit &unit);
42365
 
 
42366
 
public:
42367
 
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
42368
 
  virtual ~CScanner () {}
42369
 
  void configure (const Config &);
42370
 
  
42371
 
#line 42372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42372
 
public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
42373
 
 
42374
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
42375
 
void fill_unit (Source &in, Unit &unit);
42376
 
  
42377
 
#line 42378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42378
 
public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
42379
 
 
42380
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
42381
 
void fill_unit (const char *in, Unit &unit);
42382
 
};
42383
 
 
42384
 
 
42385
 
} // namespace Puma
42386
 
 
42387
 
#endif /* __c_scanner_h__ */
42388
 
 
42389
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
51280
#include "Puma/Config.h"
 
51281
#include "Puma/Project.h"
 
51282
#include "Puma/CScanner.h"
 
51283
#include "Puma/ErrorStream.h"
 
51284
 
42390
51285
namespace Puma {
42391
51286
 
42392
51287
 
42394
51289
class CTypeInfo;
42395
51290
 
42396
51291
 
42397
 
#line 42398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51292
#line 51293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42398
51293
} // closed Puma
 
51294
class CCExprResolve;
 
51295
class CExprResolve;
42399
51296
class WinIfExists;
42400
51297
class WinImportHandler;
42401
51298
class WinMacros;
42402
 
class CMatchSyntax;
42403
 
class ExtGnu;
 
51299
class WinAsm;
 
51300
class WinDeclSpecs;
 
51301
class WinMemberExplSpec;
 
51302
class WinTypeKeywords;
 
51303
class WinFriend;
42404
51304
class ExtAC;
42405
51305
class ExtACBuilderCoupling;
42406
51306
class ExtACSyntaxCoupling;
42407
51307
class ExtACTree;
42408
51308
class ExtACKeywords;
42409
 
class WinAsm;
42410
 
class WinDeclSpecs;
42411
 
class WinMemberExplSpec;
42412
 
class WinTypeKeywords;
 
51309
class ExtGnu;
42413
51310
class PragmaOnceUnitState;
42414
51311
class PragmaOnce;
42415
 
class CCExprResolve;
42416
 
class CExprResolve;
 
51312
class CMatchSyntax;
42417
51313
namespace Puma {
42418
51314
 
42419
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
51315
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
42420
51316
class CProject : public Project {
42421
 
#line 42422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51317
#line 51318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51318
  friend class ::CCExprResolve;
 
51319
  friend class ::CExprResolve;
42422
51320
  friend class ::WinIfExists;
42423
51321
  friend class ::WinImportHandler;
42424
51322
  friend class ::WinMacros;
42425
 
  friend class ::CMatchSyntax;
42426
 
  friend class ::ExtGnu;
 
51323
  friend class ::WinAsm;
 
51324
  friend class ::WinDeclSpecs;
 
51325
  friend class ::WinMemberExplSpec;
 
51326
  friend class ::WinTypeKeywords;
 
51327
  friend class ::WinFriend;
42427
51328
  friend class ::ExtAC;
42428
51329
  friend class ::ExtACBuilderCoupling;
42429
51330
  friend class ::ExtACSyntaxCoupling;
42430
51331
  friend class ::ExtACTree;
42431
51332
  friend class ::ExtACKeywords;
42432
 
  friend class ::WinAsm;
42433
 
  friend class ::WinDeclSpecs;
42434
 
  friend class ::WinMemberExplSpec;
42435
 
  friend class ::WinTypeKeywords;
 
51333
  friend class ::ExtGnu;
42436
51334
  friend class ::PragmaOnceUnitState;
42437
51335
  friend class ::PragmaOnce;
42438
 
  friend class ::CCExprResolve;
42439
 
  friend class ::CExprResolve;
 
51336
  friend class ::CMatchSyntax;
42440
51337
 
42441
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
51338
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
42442
51339
 
42443
51340
  Config _config;
42444
51341
  CScanner _scanner;
42474
51371
  // Scan the file `file' or the source if given. When
42475
51372
  // scanning a source the resulting unit gets the name `file'.
42476
51373
  
42477
 
#line 42478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42478
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
51374
#line 51375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51375
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
42479
51376
 
42480
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
51377
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
42481
51378
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
42482
51379
                          bool isFile = true);
42483
51380
        
42507
51404
 
42508
51405
#endif /* __CProject_h__ */
42509
51406
 
42510
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
42511
 
using namespace Puma;
42512
 
 
42513
 
 
42514
 
#line 42515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51407
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51408
 
 
51409
#line 51410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51410
class CCExprResolve;
 
51411
class CExprResolve;
42515
51412
class WinIfExists;
42516
51413
class WinImportHandler;
42517
51414
class WinMacros;
42518
 
class CMatchSyntax;
42519
 
class ExtGnu;
 
51415
class WinAsm;
 
51416
class WinDeclSpecs;
 
51417
class WinMemberExplSpec;
 
51418
class WinTypeKeywords;
 
51419
class WinFriend;
42520
51420
class ExtACBuilderCoupling;
42521
51421
class ExtACSyntaxCoupling;
42522
51422
class ExtACTree;
42523
51423
class ExtACKeywords;
42524
 
class WinAsm;
42525
 
class WinDeclSpecs;
42526
 
class WinMemberExplSpec;
42527
 
class WinTypeKeywords;
 
51424
class ExtGnu;
42528
51425
class PragmaOnceUnitState;
42529
51426
class PragmaOnce;
42530
 
class CCExprResolve;
42531
 
class CExprResolve;
 
51427
class CMatchSyntax;
42532
51428
 
42533
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51429
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42534
51430
class ExtAC {
42535
 
#line 42536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51431
#line 51432 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42536
51432
 
42537
51433
public:
42538
51434
  static ExtAC *aspectof () {
42544
51440
  }
42545
51441
private:
42546
51442
 
42547
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51443
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42548
51444
 
42549
 
#line 42550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51445
#line 51446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51446
  friend class ::CCExprResolve;
 
51447
  friend class ::CExprResolve;
42550
51448
  friend class ::WinIfExists;
42551
51449
  friend class ::WinImportHandler;
42552
51450
  friend class ::WinMacros;
42553
 
  friend class ::CMatchSyntax;
42554
 
  friend class ::ExtGnu;
 
51451
  friend class ::WinAsm;
 
51452
  friend class ::WinDeclSpecs;
 
51453
  friend class ::WinMemberExplSpec;
 
51454
  friend class ::WinTypeKeywords;
 
51455
  friend class ::WinFriend;
42555
51456
  friend class ::ExtACBuilderCoupling;
42556
51457
  friend class ::ExtACSyntaxCoupling;
42557
51458
  friend class ::ExtACTree;
42558
51459
  friend class ::ExtACKeywords;
42559
 
  friend class ::WinAsm;
42560
 
  friend class ::WinDeclSpecs;
42561
 
  friend class ::WinMemberExplSpec;
42562
 
  friend class ::WinTypeKeywords;
 
51460
  friend class ::ExtGnu;
42563
51461
  friend class ::PragmaOnceUnitState;
42564
51462
  friend class ::PragmaOnce;
42565
 
  friend class ::CCExprResolve;
42566
 
  friend class ::CExprResolve;
 
51463
  friend class ::CMatchSyntax;
42567
51464
 
42568
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51465
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42569
51466
 
42570
51467
  // used to enable and disable this extension at runtime
42571
51468
  bool _enabled;
42577
51474
  // C parser extension
42578
51475
  // ******************
42579
51476
  
42580
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51477
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42581
51478
 
42582
51479
  
42583
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51480
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42584
51481
 
42585
51482
 
42586
51483
  // *****************
42589
51486
 
42590
51487
  // introduce AC extensions
42591
51488
  
42592
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51489
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42593
51490
 
42594
51491
  
42595
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51492
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42596
51493
 
42597
51494
  
42598
51495
  // add behavioral extensions
42599
51496
  
42600
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51497
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42601
51498
 
42602
51499
public: template<class JoinPoint> void __a0_before 
42603
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51500
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42604
51501
 
42605
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51502
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42606
51503
(JoinPoint *tjp)
42607
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51504
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42608
51505
 {
42609
 
#line 42610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51506
#line 51507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42610
51507
 
42611
51508
  typedef typename JoinPoint::That __JP_That;
42612
51509
  typedef typename JoinPoint::Target __JP_Target;
42613
51510
  typedef typename JoinPoint::Result __JP_Result;
42614
51511
 
42615
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51512
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42616
51513
 
42617
 
    tjp->that ()->ACClassDatabase::Dump (*tjp->template arg<0>(), *tjp->template arg<1>());
 
51514
    tjp->that ()->Puma::ACClassDatabase::Dump (*tjp->template arg<0>(), *tjp->template arg<1>());
42618
51515
  }
42619
 
#line 42620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51516
#line 51517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42620
51517
 
42621
51518
protected:
42622
51519
 
42623
 
#line 73 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51520
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42624
51521
 
42625
51522
 
42626
51523
  // ***************************
42628
51525
  // ***************************
42629
51526
 
42630
51527
  
42631
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
42632
 
 
42633
 
 
42634
 
  
42635
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
42636
 
 
42637
 
 
 
51528
#line 80 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51529
 
 
51530
 
 
51531
  
 
51532
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51533
 
 
51534
 
 
51535
  
 
51536
#line 116 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51537
 
 
51538
 
 
51539
  
 
51540
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51541
 
 
51542
  
42638
51543
  // initialize introduced attributes
42639
51544
  
42640
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51545
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42641
51546
 
42642
51547
public: template<class JoinPoint> void __a1_after 
42643
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51548
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42644
51549
 
42645
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51550
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42646
51551
(JoinPoint *tjp)
42647
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51552
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42648
51553
 {
42649
 
#line 42650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51554
#line 51555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42650
51555
 
42651
51556
  typedef typename JoinPoint::That __JP_That;
42652
51557
  typedef typename JoinPoint::Target __JP_Target;
42653
51558
  typedef typename JoinPoint::Result __JP_Result;
42654
51559
 
42655
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51560
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42656
51561
 
42657
51562
    tjp->that ()->_in_advice_decl   = false;
42658
51563
    tjp->that ()->_in_pointcut_decl = false;
42659
51564
    tjp->that ()->_introducer       = 0;
42660
51565
  }
42661
 
#line 42662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51566
#line 51567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42662
51567
 
42663
51568
protected:
42664
51569
 
42665
 
#line 120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51570
#line 128 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42666
51571
 
42667
51572
  
42668
51573
  // introduce_function must check for code advice
42669
51574
  
42670
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51575
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42671
51576
 
42672
51577
public: template<class JoinPoint> void __a2_around 
42673
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51578
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42674
51579
 
42675
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51580
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42676
51581
(JoinPoint *tjp)
42677
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51582
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42678
51583
 {
42679
 
#line 42680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51584
#line 51585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42680
51585
 
42681
51586
  typedef typename JoinPoint::That __JP_That;
42682
51587
  typedef typename JoinPoint::Target __JP_Target;
42683
51588
  typedef typename JoinPoint::Result __JP_Result;
42684
51589
 
42685
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51590
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42686
51591
 
42687
51592
     
42688
51593
    // first save the current function
42689
 
    CObjectInfo *func = tjp->that ()->current_fct;
 
51594
    Puma::CObjectInfo *func = tjp->that ()->current_fct;
42690
51595
    
42691
51596
    // now do the original stuff
42692
51597
    tjp->proceed ();
42693
 
    CTree *node = *tjp->result ();
 
51598
    Puma::CTree *node = *tjp->result ();
42694
51599
    if (!node)
42695
51600
      return;
42696
51601
 
42697
51602
    // do the necessary post processing
42698
51603
    tjp->that ()->introduce_function_post (func, node);
42699
51604
  }
42700
 
#line 42701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51605
#line 51606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42701
51606
 
42702
51607
protected:
42703
51608
 
42704
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51609
#line 145 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42705
51610
 
42706
51611
  
42707
51612
  // make sure lookup of functions is ignored for intros
42708
51613
  
42709
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51614
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42710
51615
 
42711
51616
public: template<class JoinPoint> void __a3_around 
42712
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51617
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42713
51618
 
42714
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51619
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42715
51620
(JoinPoint *tjp)
42716
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51621
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42717
51622
 {
42718
 
#line 42719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51623
#line 51624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42719
51624
 
42720
51625
  typedef typename JoinPoint::That __JP_That;
42721
51626
  typedef typename JoinPoint::Target __JP_Target;
42722
51627
  typedef typename JoinPoint::Result __JP_Result;
42723
51628
 
42724
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51629
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42725
51630
 
42726
51631
    if (tjp->that ()->_in_advice_decl)
42727
51632
      *tjp->result () = true;
42728
51633
    else
42729
51634
      tjp->proceed ();
42730
51635
  }
42731
 
#line 42732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51636
#line 51637 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42732
51637
 
42733
51638
protected:
42734
51639
 
42735
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51640
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42736
51641
 
42737
51642
 
42738
51643
  // extend member handling
42739
51644
  
42740
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51645
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42741
51646
 
42742
51647
public: template<class JoinPoint> void __a4_after 
42743
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51648
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42744
51649
 
42745
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51650
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42746
51651
(JoinPoint *tjp)
42747
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51652
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42748
51653
 {
42749
 
#line 42750 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51654
#line 51655 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42750
51655
 
42751
51656
  typedef typename JoinPoint::That __JP_That;
42752
51657
  typedef typename JoinPoint::Target __JP_Target;
42753
51658
  typedef typename JoinPoint::Result __JP_Result;
42754
51659
 
42755
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51660
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42756
51661
 
42757
 
    CTree *node = *tjp->result ();
42758
 
    if (!node || node->NodeName () != CT_InitDeclarator::NodeId ())
 
51662
    Puma::CTree *node = *tjp->result ();
 
51663
    if (!node || node->NodeName () != Puma::CT_InitDeclarator::NodeId ())
42759
51664
      return;
42760
51665
 
42761
 
    CObjectInfo *object = ((CT_InitDeclarator *)node)->Object ();
 
51666
    Puma::CObjectInfo *object = ((Puma::CT_InitDeclarator *)node)->Object ();
42762
51667
    if (tjp->that ()->_in_pointcut_decl && object->FunctionInfo ()) {
42763
51668
      // setup the scope for the following pointcut expression
42764
51669
      tjp->that ()->current_scope = object->FunctionInfo ();
42765
51670
    }
42766
51671
  }
42767
 
#line 42768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51672
#line 51673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42768
51673
 
42769
51674
protected:
42770
51675
 
42771
 
#line 160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51676
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42772
51677
 
42773
51678
 
42774
51679
  // make sure lookup of members is ignored for intros
42775
51680
  
42776
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51681
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42777
51682
 
42778
51683
public: template<class JoinPoint> void __a5_around 
42779
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51684
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42780
51685
 
42781
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51686
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42782
51687
(JoinPoint *tjp, bool &redef_typedef)
42783
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51688
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42784
51689
 {
42785
 
#line 42786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51690
#line 51691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42786
51691
 
42787
51692
  typedef typename JoinPoint::That __JP_That;
42788
51693
  typedef typename JoinPoint::Target __JP_Target;
42789
51694
  typedef typename JoinPoint::Result __JP_Result;
42790
51695
 
42791
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51696
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42792
51697
 
42793
51698
    if (tjp->that ()->_in_advice_decl) {
42794
51699
      redef_typedef = false;
42796
51701
    } else
42797
51702
      tjp->proceed ();
42798
51703
  }
42799
 
#line 42800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51704
#line 51705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42800
51705
 
42801
51706
protected:
42802
51707
 
42803
 
#line 172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51708
#line 180 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42804
51709
 
42805
51710
 
42806
51711
  // extend object handling
42807
51712
  
42808
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51713
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42809
51714
 
42810
51715
public: template<class JoinPoint> void __a6_after 
42811
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51716
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42812
51717
 
42813
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51718
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42814
51719
(JoinPoint *tjp)
42815
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51720
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42816
51721
 {
42817
 
#line 42818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51722
#line 51723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42818
51723
 
42819
51724
  typedef typename JoinPoint::That __JP_That;
42820
51725
  typedef typename JoinPoint::Target __JP_Target;
42821
51726
  typedef typename JoinPoint::Result __JP_Result;
42822
51727
 
42823
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51728
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42824
51729
 
42825
 
    CTree *node = *tjp->result ();
42826
 
    if (! node || node->NodeName () != CT_InitDeclarator::NodeId ()) 
 
51730
    Puma::CTree *node = *tjp->result ();
 
51731
    if (! node || node->NodeName () != Puma::CT_InitDeclarator::NodeId ()) 
42827
51732
      return;
42828
51733
 
42829
 
    CObjectInfo *object = ((CT_InitDeclarator *)node)->Object ();
 
51734
    Puma::CObjectInfo *object = ((Puma::CT_InitDeclarator *)node)->Object ();
42830
51735
    if (tjp->that ()->_in_pointcut_decl && object->FunctionInfo ()) {
42831
51736
      // setup the scope for the following pointcut expression
42832
51737
// TEMPORARY
42834
51739
      tjp->that ()->current_scope = object->FunctionInfo ();
42835
51740
    }
42836
51741
  }
42837
 
#line 42838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51742
#line 51743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42838
51743
 
42839
51744
protected:
42840
51745
 
42841
 
#line 188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51746
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42842
51747
 
42843
51748
  
42844
51749
  // make sure lookup of members is ignored for intros
42845
51750
  
42846
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51751
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42847
51752
 
42848
51753
public: template<class JoinPoint> void __a7_around 
42849
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51754
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42850
51755
 
42851
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51756
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42852
51757
(JoinPoint *tjp, bool &redef_typedef)
42853
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51758
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42854
51759
 {
42855
 
#line 42856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51760
#line 51761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42856
51761
 
42857
51762
  typedef typename JoinPoint::That __JP_That;
42858
51763
  typedef typename JoinPoint::Target __JP_Target;
42859
51764
  typedef typename JoinPoint::Result __JP_Result;
42860
51765
 
42861
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51766
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42862
51767
 
42863
51768
      if (tjp->that ()->_in_advice_decl) {
42864
51769
        redef_typedef = false;
42866
51771
      } else
42867
51772
        tjp->proceed ();
42868
51773
  }
42869
 
#line 42870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51774
#line 51775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42870
51775
 
42871
51776
protected:
42872
51777
 
42873
 
#line 200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51778
#line 208 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42874
51779
 
42875
51780
 
42876
51781
  // extend the class handling  
42877
51782
  
42878
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51783
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42879
51784
 
42880
51785
public: template<class JoinPoint> void __a8_after 
42881
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51786
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42882
51787
 
42883
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51788
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42884
51789
(JoinPoint *tjp)
42885
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51790
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42886
51791
 {
42887
 
#line 42888 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51792
#line 51793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42888
51793
 
42889
51794
  typedef typename JoinPoint::That __JP_That;
42890
51795
  typedef typename JoinPoint::Target __JP_Target;
42891
51796
  typedef typename JoinPoint::Result __JP_Result;
42892
51797
 
42893
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51798
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42894
51799
 
42895
 
    CT_ClassDef *cd = (CT_ClassDef*)*tjp->result ();
 
51800
    Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)*tjp->result ();
42896
51801
    if (!cd)
42897
51802
      return;
42898
51803
    tjp->that ()->introduce_class_post (cd);
42899
 
 
42900
 
    if (tjp->that ()->_introducer) {
42901
 
      // handle introductions before a class, they shall be parsed in global scope
42902
 
      CStructure *saved_scope = tjp->that ()->current_scope;
42903
 
      tjp->that ()->current_scope = tjp->that ()->_db->FileInfo (0);
42904
 
//    _protection.push (CProtection::PROT_NONE);
42905
 
//    _in_extern_decl.push (0);
42906
 
      tjp->that ()->_introducer->class_before (cd);
42907
 
//    _in_extern_decl.pop ();
42908
 
//    _protection.pop ();
42909
 
      tjp->that ()->current_scope = saved_scope;
42910
 
    }
42911
51804
  }
42912
 
#line 42913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51805
#line 51806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42913
51806
 
42914
51807
protected:
42915
51808
 
42916
 
#line 221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51809
#line 217 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42917
51810
 
42918
51811
 
42919
51812
  // extend the class handling  
 
51813
//  advice within (derived (csemantic ())) &&
 
51814
//    execution ("% ...::class_spec(...)") : before () {
 
51815
//    if (tjp->that ()->_introducer) {
 
51816
//      Puma::CT_ClassDef *cd =
 
51817
//        (Puma::CT_ClassDef*)tjp->that ()->current_scope->Structure ()->Tree ();
 
51818
//      Puma::Builder &builder = tjp->that ()->builder ();
 
51819
//      tjp->that ()->_introducer->class_end (cd,
 
51820
//        builder.get_node (builder.nodes () - 1));
 
51821
//    }
 
51822
//  }
42920
51823
  
42921
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51824
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42922
51825
 
42923
51826
public: template<class JoinPoint> void __a9_before 
42924
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51827
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42925
51828
 
42926
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51829
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42927
51830
(JoinPoint *tjp)
42928
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51831
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42929
51832
 {
42930
 
#line 42931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51833
#line 51834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42931
51834
 
42932
51835
  typedef typename JoinPoint::That __JP_That;
42933
51836
  typedef typename JoinPoint::Target __JP_Target;
42934
51837
  typedef typename JoinPoint::Result __JP_Result;
42935
51838
 
42936
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51839
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42937
51840
 
42938
51841
    if (tjp->that ()->_introducer) {
42939
 
      CT_ClassDef *cd =
42940
 
        (CT_ClassDef*)tjp->that ()->current_scope->Structure ()->Tree ();
42941
 
      Builder &builder = tjp->that ()->builder ();
42942
 
      tjp->that ()->_introducer->class_end (cd,
42943
 
        builder.get_node (builder.nodes () - 1));
 
51842
      Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)
 
51843
        tjp->that ()->current_scope->Structure ()->Tree ();
 
51844
      tjp->that ()->_introducer->class_end (cd);
42944
51845
    }
42945
51846
  }
42946
 
#line 42947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51847
#line 51848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42947
51848
 
42948
51849
protected:
42949
51850
 
42950
 
#line 233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
42951
 
 
42952
 
 
 
51851
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51852
 
 
51853
  
42953
51854
  // perform an additional check on base classes with aspects
42954
51855
  
42955
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51856
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42956
51857
 
42957
51858
public: template<class JoinPoint> void __a10_after 
42958
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51859
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42959
51860
 
42960
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51861
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42961
51862
(JoinPoint *tjp)
42962
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51863
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42963
51864
 {
42964
 
#line 42965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51865
#line 51866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42965
51866
 
42966
51867
  typedef typename JoinPoint::That __JP_That;
42967
51868
  typedef typename JoinPoint::Target __JP_Target;
42968
51869
  typedef typename JoinPoint::Result __JP_Result;
42969
51870
 
42970
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51871
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
42971
51872
 
42972
51873
 
42973
51874
    // obtain the first argument
42974
 
    CTree *cs = *tjp->template arg<0>();
 
51875
    Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)*tjp->template arg<0>();
42975
51876
    
 
51877
    // if necessary introduce base classes here
 
51878
    if (tjp->that ()->_introducer) {
 
51879
      tjp->that ()->_introducer->base_clause_end (cd,
 
51880
        tjp->that ()->syntax ().provider ()->current ());
 
51881
    }
 
51882
 
 
51883
    // semantically handle introduced base classes
 
51884
    Puma::CT_BaseSpecList *bl = (Puma::CT_BaseSpecList*)cd->BaseIntros ();
 
51885
    if (cd->Object () && bl) {
 
51886
      int num = bl->Entries ();
 
51887
      for (int i = 0; i < num; i++)
 
51888
        tjp->that ()->addBaseClass (cd->Object ()->ClassInfo (),
 
51889
          (Puma::CT_BaseSpec*)bl->Entry (i));
 
51890
    }
 
51891
 
42976
51892
    // handle it
42977
 
    tjp->that ()->add_base_classes_post (cs);
42978
 
  }
42979
 
#line 42980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
42980
 
 
42981
 
protected:
42982
 
 
42983
 
#line 244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51893
    tjp->that ()->add_base_classes_post (cd);
 
51894
  }
 
51895
#line 51896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51896
 
 
51897
protected:
 
51898
 
 
51899
#line 263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51900
 
 
51901
 
 
51902
  // extend the translation unit handling -> finalization
 
51903
  
 
51904
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51905
 
 
51906
public: template<class JoinPoint> void __a11_after 
 
51907
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51908
 
 
51909
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51910
(JoinPoint *tjp)
 
51911
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51912
 {
 
51913
#line 51914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51914
 
 
51915
  typedef typename JoinPoint::That __JP_That;
 
51916
  typedef typename JoinPoint::Target __JP_Target;
 
51917
  typedef typename JoinPoint::Result __JP_Result;
 
51918
 
 
51919
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51920
 
 
51921
    if (tjp->that ()->_introducer) {
 
51922
      tjp->that ()->_introducer->trans_unit_end ((Puma::CT_Program*)*tjp->result ());
 
51923
    }
 
51924
  }
 
51925
#line 51926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
51926
 
 
51927
protected:
 
51928
 
 
51929
#line 271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51930
 
42984
51931
 
42985
51932
};
42986
 
#line 42987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
51933
#line 51934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
42987
51934
 
42988
51935
namespace AC {
42989
51936
  template <class JoinPoint>
42990
 
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp) {
 
51937
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp) {
42991
51938
    ::ExtAC::aspectof()->__a0_before (tjp);
42992
51939
  }
42993
51940
  template <class JoinPoint>
42994
 
  inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp) {
 
51941
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp) {
42995
51942
    ::ExtAC::aspectof()->__a1_after (tjp);
42996
51943
  }
42997
51944
  template <class JoinPoint>
42998
 
  inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp) {
 
51945
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp) {
42999
51946
    ::ExtAC::aspectof()->__a2_around (tjp);
43000
51947
  }
43001
51948
  template <class JoinPoint>
43002
 
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp) {
 
51949
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp) {
43003
51950
    ::ExtAC::aspectof()->__a3_around (tjp);
43004
51951
  }
43005
51952
  template <class JoinPoint>
43006
 
  inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp) {
 
51953
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp) {
43007
51954
    ::ExtAC::aspectof()->__a4_after (tjp);
43008
51955
  }
43009
 
  template <class JoinPoint, class Binding>
43010
 
  inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp) {
43011
 
    typedef typename Binding::template Arg<0> Arg0;
 
51956
  template <class JoinPoint>
 
51957
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp) {
 
51958
    typedef typename JoinPoint::Binding_ExtAC_ExtAC_a5_around::template Arg<0> Arg0;
43012
51959
    ::ExtAC::aspectof()->__a5_around (tjp, (bool &)Arg0::val (tjp));
43013
51960
  }
43014
51961
  template <class JoinPoint>
43015
 
  inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp) {
 
51962
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp) {
43016
51963
    ::ExtAC::aspectof()->__a6_after (tjp);
43017
51964
  }
43018
 
  template <class JoinPoint, class Binding>
43019
 
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp) {
43020
 
    typedef typename Binding::template Arg<0> Arg0;
 
51965
  template <class JoinPoint>
 
51966
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp) {
 
51967
    typedef typename JoinPoint::Binding_ExtAC_ExtAC_a7_around::template Arg<0> Arg0;
43021
51968
    ::ExtAC::aspectof()->__a7_around (tjp, (bool &)Arg0::val (tjp));
43022
51969
  }
43023
51970
  template <class JoinPoint>
43024
 
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp) {
 
51971
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp) {
43025
51972
    ::ExtAC::aspectof()->__a8_after (tjp);
43026
51973
  }
43027
51974
  template <class JoinPoint>
43028
 
  inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp) {
 
51975
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp) {
43029
51976
    ::ExtAC::aspectof()->__a9_before (tjp);
43030
51977
  }
43031
51978
  template <class JoinPoint>
43032
 
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp) {
 
51979
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp) {
43033
51980
    ::ExtAC::aspectof()->__a10_after (tjp);
43034
51981
  }
 
51982
  template <class JoinPoint>
 
51983
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a11_after (JoinPoint *tjp) {
 
51984
    ::ExtAC::aspectof()->__a11_after (tjp);
 
51985
  }
43035
51986
43036
51987
 
43037
 
#line 245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51988
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
43038
51989
 
43039
51990
 
43040
51991
 
43043
51994
// ***************************
43044
51995
 
43045
51996
 
43046
 
#line 285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43047
 
 
43048
 
 
43049
 
 
43050
 
#line 298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43051
 
 
43052
 
 
43053
 
 
43054
 
#line 325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43055
 
 
43056
 
 
43057
 
 
43058
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43059
 
 
43060
 
 
43061
 
 
43062
 
 
43063
 
#line 478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43064
 
 
43065
 
 
43066
 
 
43067
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43068
 
 
43069
 
 
43070
 
 
43071
 
#line 609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43072
 
 
43073
 
 
43074
 
 
43075
 
#line 634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43076
 
 
43077
 
 
43078
 
 
43079
 
#line 644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
43080
 
 
43081
 
 
43082
 
 
43083
 
 
43084
 
#line 651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51997
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
51998
 
 
51999
 
 
52000
 
 
52001
#line 334 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52002
 
 
52003
 
 
52004
 
 
52005
#line 360 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52006
 
 
52007
 
 
52008
 
 
52009
#line 388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52010
 
 
52011
 
 
52012
 
 
52013
#line 447 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52014
 
 
52015
 
 
52016
 
 
52017
 
 
52018
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52019
 
 
52020
 
 
52021
 
 
52022
#line 565 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52023
 
 
52024
 
 
52025
 
 
52026
#line 672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52027
 
 
52028
 
 
52029
 
 
52030
#line 698 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52031
 
 
52032
 
 
52033
 
 
52034
#line 708 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
52035
 
 
52036
 
 
52037
 
 
52038
 
 
52039
#line 715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
43085
52040
 
43086
52041
 
43087
52042
#endif /* __ext_ac_h__ */
43088
52043
 
43089
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
43090
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
43091
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
43092
 
 
43093
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
43094
 
// This file is part of PUMA.
43095
 
// Copyright (C) 1999-2003  The PUMA developer team.
43096
 
//                                                                
43097
 
// This program is free software;  you can redistribute it and/or 
43098
 
// modify it under the terms of the GNU General Public License as 
43099
 
// published by the Free Software Foundation; either version 2 of 
43100
 
// the License, or (at your option) any later version.            
43101
 
//                                                                
43102
 
// This program is distributed in the hope that it will be useful,
43103
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
43104
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
43105
 
// GNU General Public License for more details.                   
43106
 
//                                                                
43107
 
// You should have received a copy of the GNU General Public      
43108
 
// License along with this program; if not, write to the Free     
43109
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
43110
 
// MA  02111-1307  USA                                            
43111
 
 
43112
 
#ifndef __CClassDatabase_h__
43113
 
#define __CClassDatabase_h__
43114
 
 
43115
 
 
43116
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
43117
 
 
43118
 
#line 43119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
43119
 
 
43120
 
#ifndef __ac_fwd_ExtACKeywords__
43121
 
#define __ac_fwd_ExtACKeywords__
43122
 
class ExtACKeywords;
43123
 
namespace AC {
43124
 
  template <class JoinPoint, class Binding>
43125
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
43126
 
  template <class JoinPoint, class Binding>
43127
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
43128
 
  template <class JoinPoint>
43129
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
43130
 
}
43131
 
#endif
43132
 
 
43133
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
43134
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
43135
 
#endif
43136
 
 
43137
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
43138
 
// This file is part of PUMA.
43139
 
// Copyright (C) 1999-2003  The PUMA developer team.
43140
 
//                                                                
43141
 
// This program is free software;  you can redistribute it and/or 
43142
 
// modify it under the terms of the GNU General Public License as 
43143
 
// published by the Free Software Foundation; either version 2 of 
43144
 
// the License, or (at your option) any later version.            
43145
 
//                                                                
43146
 
// This program is distributed in the hope that it will be useful,
43147
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
43148
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
43149
 
// GNU General Public License for more details.                   
43150
 
//                                                                
43151
 
// You should have received a copy of the GNU General Public      
43152
 
// License along with this program; if not, write to the Free     
43153
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
43154
 
// MA  02111-1307  USA                                            
43155
 
 
43156
 
#ifndef __CProject_h__
43157
 
#define __CProject_h__
43158
 
 
43159
 
// Special project derivation for C++ sources.
43160
 
 
43161
 
#include "Puma/Config.h"
43162
 
#include "Puma/Project.h"
43163
 
#include "Puma/CScanner.h"
43164
 
#include "Puma/ErrorStream.h"
43165
 
 
43166
 
namespace Puma {
43167
 
 
43168
 
 
43169
 
class Source;
43170
 
class CTypeInfo;
43171
 
 
43172
 
 
43173
 
#line 43174 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
43174
 
} // closed Puma
43175
 
class WinIfExists;
43176
 
class WinImportHandler;
43177
 
class WinMacros;
43178
 
class CMatchSyntax;
43179
 
class ExtGnu;
43180
 
class ExtAC;
43181
 
class ExtACBuilderCoupling;
43182
 
class ExtACSyntaxCoupling;
43183
 
class ExtACTree;
43184
 
class ExtACKeywords;
43185
 
class WinAsm;
43186
 
class WinDeclSpecs;
43187
 
class WinMemberExplSpec;
43188
 
class WinTypeKeywords;
43189
 
class PragmaOnceUnitState;
43190
 
class PragmaOnce;
43191
 
class CCExprResolve;
43192
 
class CExprResolve;
43193
 
namespace Puma {
43194
 
 
43195
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
43196
 
class CProject : public Project {
43197
 
#line 43198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
43198
 
  friend class ::WinIfExists;
43199
 
  friend class ::WinImportHandler;
43200
 
  friend class ::WinMacros;
43201
 
  friend class ::CMatchSyntax;
43202
 
  friend class ::ExtGnu;
43203
 
  friend class ::ExtAC;
43204
 
  friend class ::ExtACBuilderCoupling;
43205
 
  friend class ::ExtACSyntaxCoupling;
43206
 
  friend class ::ExtACTree;
43207
 
  friend class ::ExtACKeywords;
43208
 
  friend class ::WinAsm;
43209
 
  friend class ::WinDeclSpecs;
43210
 
  friend class ::WinMemberExplSpec;
43211
 
  friend class ::WinTypeKeywords;
43212
 
  friend class ::PragmaOnceUnitState;
43213
 
  friend class ::PragmaOnce;
43214
 
  friend class ::CCExprResolve;
43215
 
  friend class ::CExprResolve;
43216
 
 
43217
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
43218
 
 
43219
 
  Config _config;
43220
 
  CScanner _scanner;
43221
 
 
43222
 
public:
43223
 
  CProject (ErrorStream &e);
43224
 
 
43225
 
  // Constructor: Add some source directories.
43226
 
  CProject (ErrorStream &, const char *defs, 
43227
 
               const char *decls = (const char*)0); 
43228
 
 
43229
 
  // Constructor: Setup preprocessor configuration according to
43230
 
  // command line parameter and the global config file and
43231
 
  // add some source directories.
43232
 
  CProject (ErrorStream &, int &argc, char **&argv, 
43233
 
            const char *defs = (const char*)0, 
43234
 
            const char *decls = (const char*)0);
43235
 
 
43236
 
public: // Project configuration 
43237
 
  // Get the preprocessor configuration.
43238
 
  Config &config ();
43239
 
 
43240
 
  // Configure the project from the command line or a file.
43241
 
  virtual void configure (Config &);
43242
 
 
43243
 
  // Add a new file to the project.
43244
 
  Unit *addFile (Filename file);
43245
 
 
43246
 
public: // Scanner interface
43247
 
  // Get the scanner.
43248
 
  CScanner &scanner ();
43249
 
 
43250
 
  // Scan the file `file' or the source if given. When
43251
 
  // scanning a source the resulting unit gets the name `file'.
43252
 
  
43253
 
#line 43254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
43254
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
43255
 
 
43256
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
43257
 
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
43258
 
                          bool isFile = true);
43259
 
        
43260
 
  // Scan a string. The resulting unit gets the name `name'.
43261
 
  // (and will not be registered at the unit manager!)
43262
 
  virtual Unit *scanString (const char *str, 
43263
 
                            const char *name = (const char*)0);
43264
 
 
43265
 
public: // Miscellaneous Functions
43266
 
 
43267
 
  // Give the filename needed to include a particular header file
43268
 
  Filename getInclString (Filename filename);
43269
 
 
43270
 
private:
43271
 
  // Map the type string from --size-type and --ptrdiff-type
43272
 
  // to real Puma type.
43273
 
  CTypeInfo *mapType (const char *) const;
43274
 
};
43275
 
 
43276
 
inline Config &CProject::config () 
43277
 
 { return _config; }
43278
 
inline CScanner &CProject::scanner () 
43279
 
 { return _scanner; }
43280
 
 
43281
 
 
43282
 
} // namespace Puma
43283
 
 
43284
 
#endif /* __CProject_h__ */
43285
 
 
43286
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
43287
 
using namespace std;
43288
 
 
43289
 
namespace Puma {
43290
 
 
43291
 
 
43292
 
class CObjectInfo;
43293
 
class CClassInfo;
43294
 
class CUnionInfo;
43295
 
class CEnumInfo;
43296
 
class CTypedefInfo;
43297
 
class CTemplateParamInfo;
43298
 
class CTypeInfo;
43299
 
class CFileInfo;
43300
 
class Token;
43301
 
 
43302
 
/** \file 
43303
 
 *  Database of all semantic objects (infos) of a project. 
43304
 
 *  \see Puma::CClassDatabase */
43305
 
 
43306
 
/** \class CClassDatabase CClassDatabase.h Puma/infos/CClassDatabase.h
43307
 
 *  A CClassDatabase object is a database of all semantic objects
43308
 
 *  (infos) of a project. */
43309
 
 
43310
 
#line 43311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
43311
 
} // closed Puma
43312
 
class WinIfExists;
43313
 
class WinImportHandler;
43314
 
class WinMacros;
43315
 
class CMatchSyntax;
43316
 
class ExtGnu;
43317
 
class ExtAC;
43318
 
class ExtACBuilderCoupling;
43319
 
class ExtACSyntaxCoupling;
43320
 
class ExtACTree;
43321
 
class ExtACKeywords;
43322
 
class WinAsm;
43323
 
class WinDeclSpecs;
43324
 
class WinMemberExplSpec;
43325
 
class WinTypeKeywords;
43326
 
class PragmaOnceUnitState;
43327
 
class PragmaOnce;
43328
 
class CCExprResolve;
43329
 
class CExprResolve;
43330
 
namespace Puma {
43331
 
 
43332
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
43333
 
class CClassDatabase  :public ACClassDatabase {
43334
 
#line 43335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
43335
 
  friend class ::WinIfExists;
43336
 
  friend class ::WinImportHandler;
43337
 
  friend class ::WinMacros;
43338
 
  friend class ::CMatchSyntax;
43339
 
  friend class ::ExtGnu;
43340
 
  friend class ::ExtAC;
43341
 
  friend class ::ExtACBuilderCoupling;
43342
 
  friend class ::ExtACSyntaxCoupling;
43343
 
  friend class ::ExtACTree;
43344
 
  friend class ::ExtACKeywords;
43345
 
  friend class ::WinAsm;
43346
 
  friend class ::WinDeclSpecs;
43347
 
  friend class ::WinMemberExplSpec;
43348
 
  friend class ::WinTypeKeywords;
43349
 
  friend class ::PragmaOnceUnitState;
43350
 
  friend class ::PragmaOnce;
43351
 
  friend class ::CCExprResolve;
43352
 
  friend class ::CExprResolve;
43353
 
 
43354
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
43355
 
 
43356
 
  
43357
 
  Array<CObjectInfo*> _Classes;   // index of classes
43358
 
  Array<CObjectInfo*> _Unions;    // index of unions
43359
 
  Array<CObjectInfo*> _Enums;     // index of enums
43360
 
  Array<CObjectInfo*> _Typedefs;  // index of typedefs
43361
 
  Array<CObjectInfo*> _Functions; // index of functions
43362
 
  Array<CObjectInfo*> _Files;     // index of files
 
52044
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
52045
#endif
 
52046
namespace Puma {
 
52047
 
 
52048
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
52049
class CClassDatabase : public Puma :: ACClassDatabase 
 
52050
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
52051
{
 
52052
#line 52053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
52053
  friend class ::CCExprResolve;
 
52054
  friend class ::CExprResolve;
 
52055
  friend class ::WinIfExists;
 
52056
  friend class ::WinImportHandler;
 
52057
  friend class ::WinMacros;
 
52058
  friend class ::WinAsm;
 
52059
  friend class ::WinDeclSpecs;
 
52060
  friend class ::WinMemberExplSpec;
 
52061
  friend class ::WinTypeKeywords;
 
52062
  friend class ::WinFriend;
 
52063
  friend class ::ExtAC;
 
52064
  friend class ::ExtACBuilderCoupling;
 
52065
  friend class ::ExtACSyntaxCoupling;
 
52066
  friend class ::ExtACTree;
 
52067
  friend class ::ExtACKeywords;
 
52068
  friend class ::ExtGnu;
 
52069
  friend class ::PragmaOnceUnitState;
 
52070
  friend class ::PragmaOnce;
 
52071
  friend class ::CMatchSyntax;
 
52072
 
 
52073
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
52074
 
 
52075
  
 
52076
  Array<CObjectInfo*> _Classes;    // index of classes
 
52077
  Array<CObjectInfo*> _Unions;     // index of unions
 
52078
  Array<CObjectInfo*> _Enums;      // index of enums
 
52079
  Array<CObjectInfo*> _Typedefs;   // index of typedefs
 
52080
  Array<CObjectInfo*> _Functions;  // index of functions
 
52081
  Array<CObjectInfo*> _Files;      // index of files
43363
52082
 
43364
52083
  CProject *_Project; // associated project
43365
52084
  
 
52085
  multimap<int,CFunctionInfo*> _builtin_ops; // map for built-in operator lookup
 
52086
 
43366
52087
public:
43367
52088
  /** Construct a class database object.
43368
52089
   *  \param prj The corresponding project.
43386
52107
  unsigned TypedefInfos () const;
43387
52108
  /** Get the number of function infos. */
43388
52109
  unsigned FunctionInfos () const;
43389
 
  /** Get the number of file infos. */
 
52110
  /** Get the number of on-demand generated built-in operator functions. */
43390
52111
  unsigned FileInfos () const;
43391
52112
  /** Get the n-th semantic object info.
43392
52113
   *  \param n The number of the info.
43412
52133
   *  \param n The number of the info.
43413
52134
   *  \return The info or \c NULL if \e n is invalid. */
43414
52135
  CFunctionInfo *FunctionInfo (unsigned n) const;
43415
 
  /** Get the n-th file info.
 
52136
  /** Get the n-th on-demand generated built-in operator info.
43416
52137
   *  \param n The number of the info.
43417
52138
   *  \return The info or \c NULL if \e n is invalid. */
43418
52139
  CFileInfo *FileInfo (unsigned n) const;
43437
52158
  /** Remove the given semantic object from the database.
43438
52159
   *  \param info The semantic object info to remove. */
43439
52160
  void Remove (CObjectInfo *info);
43440
 
 
 
52161
  /** Get a function info object for a built-in operator.
 
52162
   *  \param name Operator name.
 
52163
   *  \param tok Operator token type, used as a key for fast lookup.
 
52164
   *  \param rtype result type of the operator. Not used for lookup,
 
52165
   *         only for object creation.
 
52166
   *  \param t0 first argument type.
 
52167
   *  \param t1 second argument type or \c NULL.
 
52168
   *  \return on-demand generated operator function object. */
 
52169
  CFunctionInfo *BuiltinOperator (const char *name, int tok, CTypeInfo *rtype,
 
52170
    CTypeInfo *t0, CTypeInfo *t1);
43441
52171
  /** Dump the contents of the database. The dump is indented as
43442
52172
   *  tree corresponding to the nesting of the semantic objects.
43443
52173
   *  \param out The output stream to dump to.
43444
52174
   *  \param depth The max. depth in the tree to be dumped. */
43445
52175
  
43446
 
#line 43447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
43447
 
public: inline void __exec_old_Dump(::std::ostream & out,int depth) const;
 
52176
#line 52177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
52177
public: __attribute__((always_inline)) inline void __exec_old_Dump(::std::ostream & out,int depth) const;
43448
52178
 
43449
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
52179
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
43450
52180
void Dump (ostream &out, int depth = 0) const;
43451
52181
 
43452
52182
  /** Get the project info delivered to the constructor of the database. */
43453
52183
  CProject *Project () const;
43454
52184
 
43455
 
private: 
 
52185
private:
 
52186
  void CreateParameter (CFunctionInfo *fi, CTypeInfo *type) const;
 
52187
 
43456
52188
  void Dump (ostream &, CStructure *, int, int) const;
43457
52189
  void DumpType (ostream &, CObjectInfo *, int) const;
43458
52190
  void DumpUsing (ostream &, CUsingInfo *, int) const;
43510
52242
 
43511
52243
#endif /* __CClassDatabase_h__ */
43512
52244
 
43513
 
#line 43514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
43514
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
43515
 
 
43516
 
#line 198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
43517
 
 
43518
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Semantic.h"
 
52245
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Semantic.h"
43519
52246
namespace Puma {
43520
52247
 
43521
52248
 
43531
52258
/*DEBUG*/extern int TRACE_SCOPES;
43532
52259
 
43533
52260
 
43534
 
#line 43535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
52261
#line 52262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
43535
52262
} // closed Puma
 
52263
class CCExprResolve;
 
52264
class CExprResolve;
43536
52265
class WinIfExists;
43537
52266
class WinImportHandler;
43538
52267
class WinMacros;
43539
 
class CMatchSyntax;
43540
 
class ExtGnu;
 
52268
class WinAsm;
 
52269
class WinDeclSpecs;
 
52270
class WinMemberExplSpec;
 
52271
class WinTypeKeywords;
 
52272
class WinFriend;
43541
52273
class ExtAC;
43542
52274
class ExtACBuilderCoupling;
43543
52275
class ExtACSyntaxCoupling;
43544
52276
class ExtACTree;
43545
52277
class ExtACKeywords;
43546
 
class WinAsm;
43547
 
class WinDeclSpecs;
43548
 
class WinMemberExplSpec;
43549
 
class WinTypeKeywords;
 
52278
class ExtGnu;
43550
52279
class PragmaOnceUnitState;
43551
52280
class PragmaOnce;
43552
 
class CCExprResolve;
43553
 
class CExprResolve;
 
52281
class CMatchSyntax;
43554
52282
namespace Puma {
43555
52283
 
43556
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Semantic.h"
 
52284
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Semantic.h"
43557
52285
class Semantic : public PtrStack<CObjectInfo> {
43558
 
#line 43559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
52286
#line 52287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
52287
  friend class ::CCExprResolve;
 
52288
  friend class ::CExprResolve;
43559
52289
  friend class ::WinIfExists;
43560
52290
  friend class ::WinImportHandler;
43561
52291
  friend class ::WinMacros;
43562
 
  friend class ::CMatchSyntax;
43563
 
  friend class ::ExtGnu;
 
52292
  friend class ::WinAsm;
 
52293
  friend class ::WinDeclSpecs;
 
52294
  friend class ::WinMemberExplSpec;
 
52295
  friend class ::WinTypeKeywords;
 
52296
  friend class ::WinFriend;
43564
52297
  friend class ::ExtAC;
43565
52298
  friend class ::ExtACBuilderCoupling;
43566
52299
  friend class ::ExtACSyntaxCoupling;
43567
52300
  friend class ::ExtACTree;
43568
52301
  friend class ::ExtACKeywords;
43569
 
  friend class ::WinAsm;
43570
 
  friend class ::WinDeclSpecs;
43571
 
  friend class ::WinMemberExplSpec;
43572
 
  friend class ::WinTypeKeywords;
 
52302
  friend class ::ExtGnu;
43573
52303
  friend class ::PragmaOnceUnitState;
43574
52304
  friend class ::PragmaOnce;
43575
 
  friend class ::CCExprResolve;
43576
 
  friend class ::CExprResolve;
 
52305
  friend class ::CMatchSyntax;
43577
52306
 
43578
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Semantic.h"
 
52307
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Semantic.h"
43579
52308
 
43580
52309
protected:
43581
52310
  CClassDatabase *_db;
43608
52337
  void forget_state ();
43609
52338
  void restore_state ();
43610
52339
 
 
52340
  CFileInfo* getFile ();
 
52341
 
43611
52342
public:
43612
52343
  // Scope information
43613
52344
  void enter_local_scope ();
43641
52372
  virtual void reenter_scope (CStructure *);
43642
52373
};
43643
52374
 
 
52375
inline CFileInfo* Semantic::getFile ()
 
52376
 { return _file; }
 
52377
 
43644
52378
inline void Semantic::save_state () 
43645
52379
 { New (); }
43646
52380
inline void Semantic::forget_state () 
43671
52405
 
43672
52406
#endif /* __Semantic_h__ */
43673
52407
 
43674
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
 
52408
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
43675
52409
namespace Puma {
43676
52410
 
43677
52411
 
43706
52440
    result = (token && token->type () == token_type);
43707
52441
  } else {
43708
52442
    state = token_provider->get_state ();
43709
 
    while ((--n) > 0)
 
52443
    while ((--n) > 0) {
43710
52444
      token_provider->next ();
 
52445
      locate_token ();
 
52446
    }
43711
52447
    token = token_provider->current ();
43712
52448
    result = (token && token->type () == token_type);
43713
52449
    token_provider->set_state (state);
43734
52470
    }
43735
52471
  } else {
43736
52472
    state = token_provider->get_state ();
43737
 
    while ((--n) > 0)
 
52473
    while ((--n) > 0) {
43738
52474
      token_provider->next ();
 
52475
      locate_token ();
 
52476
    }
43739
52477
    token = token_provider->current ();
43740
52478
    if (token) {
43741
52479
      while (*token_types) {
43947
52685
 
43948
52686
} // namespace Puma
43949
52687
 
43950
 
#line 43951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
52688
#line 52689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
43951
52689
 
43952
 
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_Syntax_cc__
43953
 
/*** begin of aspect includes ***/
43954
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__)
43955
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
52690
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_Syntax_cc__
 
52691
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
52692
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
52693
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
52694
#include "CCExprResolveCC.ah"
 
52695
#endif
 
52696
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52697
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52698
#include "ExtACTree.ah"
 
52699
#endif
 
52700
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
52701
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
52702
#include "ExtGnu.ah"
 
52703
#endif
 
52704
#endif
 
52705
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
52706
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
52707
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
52708
#include "CCExprResolveH.ah"
 
52709
#endif
 
52710
#endif
 
52711
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
52712
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
52713
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
52714
#include "CExprResolveCC.ah"
 
52715
#endif
 
52716
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52717
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52718
#include "ExtACTree.ah"
 
52719
#endif
 
52720
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
52721
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
52722
#include "ExtGnu.ah"
 
52723
#endif
 
52724
#endif
 
52725
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
52726
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
52727
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
52728
#include "CExprResolveH.ah"
 
52729
#endif
 
52730
#endif
 
52731
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
52732
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
52733
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
43956
52734
#include "WinIfExists.ah"
43957
52735
#endif
43958
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
43959
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
52736
#endif
 
52737
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
52738
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
52739
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
43960
52740
#include "WinImportHandler.ah"
43961
52741
#endif
43962
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__)
43963
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
 
52742
#endif
 
52743
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
52744
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
52745
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
43964
52746
#include "WinMacros.ah"
43965
52747
#endif
43966
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
43967
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
43968
 
 
43969
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
43970
 
// This file is part of PUMA.
43971
 
// Copyright (C) 1999-2003  The PUMA developer team.
43972
 
//                                                                
43973
 
// This program is free software;  you can redistribute it and/or 
43974
 
// modify it under the terms of the GNU General Public License as 
43975
 
// published by the Free Software Foundation; either version 2 of 
43976
 
// the License, or (at your option) any later version.            
43977
 
//                                                                
43978
 
// This program is distributed in the hope that it will be useful,
43979
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
43980
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
43981
 
// GNU General Public License for more details.                   
43982
 
//                                                                
43983
 
// You should have received a copy of the GNU General Public      
43984
 
// License along with this program; if not, write to the Free     
43985
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
43986
 
// MA  02111-1307  USA                                            
43987
 
 
43988
 
#ifndef __CMatchSyntax_ah__
43989
 
#define __CMatchSyntax_ah__
43990
 
 
43991
 
 
43992
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CWildcardTokens.h"
43993
 
// This file is part of PUMA.
43994
 
// Copyright (C) 1999-2003  The PUMA developer team.
43995
 
//                                                                
43996
 
// This program is free software;  you can redistribute it and/or 
43997
 
// modify it under the terms of the GNU General Public License as 
43998
 
// published by the Free Software Foundation; either version 2 of 
43999
 
// the License, or (at your option) any later version.            
44000
 
//                                                                
44001
 
// This program is distributed in the hope that it will be useful,
44002
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
44003
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
44004
 
// GNU General Public License for more details.                   
44005
 
//                                                                
44006
 
// You should have received a copy of the GNU General Public      
44007
 
// License along with this program; if not, write to the Free     
44008
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
44009
 
// MA  02111-1307  USA                                            
44010
 
 
44011
 
#ifndef __C_WILDCARD_TOKENS__
44012
 
#define __C_WILDCARD_TOKENS__
44013
 
 
44014
 
namespace Puma {
44015
 
 
44016
 
 
44017
 
enum CWildcardTokens {
44018
 
  TOK_WC_AND = 500,
44019
 
  TOK_WC_OR,
44020
 
  TOK_WC_XOR,
44021
 
  TOK_WC_SEQ,
44022
 
  TOK_WC_IF,
44023
 
  TOK_WC_ELIF,
44024
 
  TOK_WC_ENDIF,
44025
 
  TOK_WC_NOT,
44026
 
  TOK_WC_EXACT,
44027
 
  TOK_WC_FIRST,
44028
 
  TOK_WC_LAST,
44029
 
  TOK_WC_LEAF,
44030
 
  TOK_WC_PRUNE,
44031
 
  TOK_WC_COLLECT,
44032
 
  TOK_WC_NODENAME,
44033
 
  TOK_WC_ELEMENT,
44034
 
 
44035
 
  TOK_DO_EXPR,
44036
 
  TOK_DO_EXPR_LIST,
44037
 
  TOK_DO_ID_EXPR,
44038
 
  TOK_DO_IDENTIFIER,
44039
 
  TOK_DO_DECL_SPEC,
44040
 
  TOK_DO_DECL_SPEC_SEQ,
44041
 
  TOK_DO_INIT_DECLARATOR_LIST,
44042
 
  TOK_DO_INIT_DECLARATOR,
44043
 
  TOK_DO_DECLARATOR,
44044
 
  TOK_DO_INIT,
44045
 
  TOK_DO_ARG_DECL_SEQ,
44046
 
  TOK_DO_FCT_BODY,
44047
 
  TOK_DO_CLASS_SPEC,
44048
 
  TOK_DO_MEMBER_SPEC,
44049
 
  TOK_DO_MEMBER_DECL,
44050
 
  TOK_DO_BASE_CLAUSE,
44051
 
  TOK_DO_CTOR_INIT,
44052
 
  TOK_DO_MEM_INIT,
44053
 
  TOK_DO_STMT,
44054
 
  TOK_DO_STMT_SEQ,
44055
 
 
44056
 
  TOK_ANY_EXPR,
44057
 
  TOK_ANY_EXPR_LIST,
44058
 
  TOK_ANY_ID_EXPR,
44059
 
  TOK_ANY_IDENTIFIER,
44060
 
  TOK_ANY_DECL_SPEC,
44061
 
  TOK_ANY_DECL_SPEC_SEQ,
44062
 
  TOK_ANY_INIT_DECLARATOR_LIST,
44063
 
  TOK_ANY_INIT_DECLARATOR,
44064
 
  TOK_ANY_DECLARATOR,
44065
 
  TOK_ANY_INIT,
44066
 
  TOK_ANY_ARG_DECL_SEQ,
44067
 
  TOK_ANY_FCT_BODY,
44068
 
  TOK_ANY_CLASS_SPEC,
44069
 
  TOK_ANY_MEMBER_SPEC,
44070
 
  TOK_ANY_MEMBER_DECL,
44071
 
  TOK_ANY_BASE_CLAUSE,
44072
 
  TOK_ANY_CTOR_INIT,
44073
 
  TOK_ANY_MEM_INIT,
44074
 
  TOK_ANY_STMT,
44075
 
  TOK_ANY_STMT_SEQ,
44076
 
  
44077
 
  TOK_IS_CLASS,
44078
 
  TOK_IS_ENUM,
44079
 
  TOK_IS_TYPEDEF
44080
 
};
44081
 
 
44082
 
 
44083
 
} // namespace Puma
44084
 
 
44085
 
#endif /* __WILDCARD_TOKENS__ */
44086
 
 
44087
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44088
 
namespace Puma {
44089
 
  class CSyntax;
44090
 
  class CCSyntax;
44091
 
  class CBuilder;
44092
 
  class CSemantic;
44093
 
  class Container;
44094
 
  class CTree;
44095
 
  class CStrLiteral;
44096
 
  class CT_Any;
44097
 
  class CT_AnyList;
44098
 
  class CT_AnyExtension;
44099
 
  class CT_AnyCondition;
44100
 
  class CT_SimpleName;
44101
 
} // namespace Puma
44102
 
 
44103
 
 
44104
 
using namespace Puma;
44105
 
 
44106
 
namespace Puma {
44107
 
  
44108
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44109
 
 
44110
 
  
44111
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44112
 
 
44113
 
  
44114
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44115
 
 
 
52748
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
52749
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
52750
#include "PragmaOnceUnitState.ah"
 
52751
#endif
 
52752
#endif
 
52753
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
52754
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
52755
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
52756
#include "WinAsm.ah"
 
52757
#endif
 
52758
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52759
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52760
#include "ExtACTree.ah"
 
52761
#endif
 
52762
#endif
 
52763
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
52764
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
52765
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
52766
#include "WinDeclSpecs.ah"
 
52767
#endif
 
52768
#endif
 
52769
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
52770
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
52771
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
52772
#include "WinMemberExplSpec.ah"
 
52773
#endif
 
52774
#endif
 
52775
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
52776
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
52777
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
52778
#include "WinTypeKeywords.ah"
 
52779
#endif
 
52780
#endif
 
52781
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
52782
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
52783
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
52784
#include "WinFriend.ah"
 
52785
#endif
 
52786
#endif
 
52787
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
52788
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
52789
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
52790
 
 
52791
#line 103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
 
52792
#endif
 
52793
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52794
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52795
 
 
52796
#line 107 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
 
52797
#endif
 
52798
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
52799
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
52800
 
 
52801
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
52802
// This file is part of PUMA.
 
52803
// Copyright (C) 1999-2003  The PUMA developer team.
 
52804
//                                                                
 
52805
// This program is free software;  you can redistribute it and/or 
 
52806
// modify it under the terms of the GNU General Public License as 
 
52807
// published by the Free Software Foundation; either version 2 of 
 
52808
// the License, or (at your option) any later version.            
 
52809
//                                                                
 
52810
// This program is distributed in the hope that it will be useful,
 
52811
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
52812
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
52813
// GNU General Public License for more details.                   
 
52814
//                                                                
 
52815
// You should have received a copy of the GNU General Public      
 
52816
// License along with this program; if not, write to the Free     
 
52817
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
52818
// MA  02111-1307  USA                                            
 
52819
 
 
52820
#ifndef __ext_ac_keywords_ah__
 
52821
#define __ext_ac_keywords_ah__
 
52822
 
 
52823
 
 
52824
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
52825
 
 
52826
#line 52827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
52827
 
 
52828
#ifndef __ac_fwd_ExtACKeywords__
 
52829
#define __ac_fwd_ExtACKeywords__
 
52830
class ExtACKeywords;
 
52831
namespace AC {
 
52832
  template <class JoinPoint>
 
52833
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
52834
  template <class JoinPoint>
 
52835
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
52836
  template <class JoinPoint>
 
52837
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
44116
52838
}
44117
 
 
44118
 
 
44119
 
#line 44120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44120
 
class WinIfExists;
44121
 
class WinImportHandler;
44122
 
class WinMacros;
44123
 
class ExtGnu;
44124
 
class ExtAC;
44125
 
class ExtACBuilderCoupling;
44126
 
class ExtACSyntaxCoupling;
44127
 
class ExtACTree;
44128
 
class ExtACKeywords;
44129
 
class WinAsm;
44130
 
class WinDeclSpecs;
44131
 
class WinMemberExplSpec;
44132
 
class WinTypeKeywords;
44133
 
class PragmaOnceUnitState;
44134
 
class PragmaOnce;
44135
 
class CCExprResolve;
44136
 
class CExprResolve;
44137
 
 
44138
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44139
 
class CMatchSyntax {
44140
 
#line 44141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44141
 
 
44142
 
public:
44143
 
  static CMatchSyntax *aspectof () {
44144
 
    static CMatchSyntax __instance;
 
52839
#endif
 
52840
 
 
52841
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
52842
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
52843
#endif
 
52844
 
 
52845
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
52846
// This file is part of PUMA.
 
52847
// Copyright (C) 1999-2003  The PUMA developer team.
 
52848
//                                                                
 
52849
// This program is free software;  you can redistribute it and/or 
 
52850
// modify it under the terms of the GNU General Public License as 
 
52851
// published by the Free Software Foundation; either version 2 of 
 
52852
// the License, or (at your option) any later version.            
 
52853
//                                                                
 
52854
// This program is distributed in the hope that it will be useful,
 
52855
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
52856
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
52857
// GNU General Public License for more details.                   
 
52858
//                                                                
 
52859
// You should have received a copy of the GNU General Public      
 
52860
// License along with this program; if not, write to the Free     
 
52861
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
52862
// MA  02111-1307  USA                                            
 
52863
 
 
52864
#ifndef __CProject_h__
 
52865
#define __CProject_h__
 
52866
 
 
52867
// Special project derivation for C++ sources.
 
52868
 
 
52869
#include "Puma/Config.h"
 
52870
#include "Puma/Project.h"
 
52871
#include "Puma/CScanner.h"
 
52872
#include "Puma/ErrorStream.h"
 
52873
 
 
52874
namespace Puma {
 
52875
 
 
52876
 
 
52877
class Source;
 
52878
class CTypeInfo;
 
52879
 
 
52880
 
 
52881
#line 52882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
52882
} // closed Puma
 
52883
class CCExprResolve;
 
52884
class CExprResolve;
 
52885
class WinIfExists;
 
52886
class WinImportHandler;
 
52887
class WinMacros;
 
52888
class WinAsm;
 
52889
class WinDeclSpecs;
 
52890
class WinMemberExplSpec;
 
52891
class WinTypeKeywords;
 
52892
class WinFriend;
 
52893
class ExtAC;
 
52894
class ExtACBuilderCoupling;
 
52895
class ExtACSyntaxCoupling;
 
52896
class ExtACTree;
 
52897
class ExtACKeywords;
 
52898
class ExtGnu;
 
52899
class PragmaOnceUnitState;
 
52900
class PragmaOnce;
 
52901
class CMatchSyntax;
 
52902
namespace Puma {
 
52903
 
 
52904
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
52905
class CProject : public Project {
 
52906
#line 52907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
52907
  friend class ::CCExprResolve;
 
52908
  friend class ::CExprResolve;
 
52909
  friend class ::WinIfExists;
 
52910
  friend class ::WinImportHandler;
 
52911
  friend class ::WinMacros;
 
52912
  friend class ::WinAsm;
 
52913
  friend class ::WinDeclSpecs;
 
52914
  friend class ::WinMemberExplSpec;
 
52915
  friend class ::WinTypeKeywords;
 
52916
  friend class ::WinFriend;
 
52917
  friend class ::ExtAC;
 
52918
  friend class ::ExtACBuilderCoupling;
 
52919
  friend class ::ExtACSyntaxCoupling;
 
52920
  friend class ::ExtACTree;
 
52921
  friend class ::ExtACKeywords;
 
52922
  friend class ::ExtGnu;
 
52923
  friend class ::PragmaOnceUnitState;
 
52924
  friend class ::PragmaOnce;
 
52925
  friend class ::CMatchSyntax;
 
52926
 
 
52927
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
52928
 
 
52929
  Config _config;
 
52930
  CScanner _scanner;
 
52931
 
 
52932
public:
 
52933
  CProject (ErrorStream &e);
 
52934
 
 
52935
  // Constructor: Add some source directories.
 
52936
  CProject (ErrorStream &, const char *defs, 
 
52937
               const char *decls = (const char*)0); 
 
52938
 
 
52939
  // Constructor: Setup preprocessor configuration according to
 
52940
  // command line parameter and the global config file and
 
52941
  // add some source directories.
 
52942
  CProject (ErrorStream &, int &argc, char **&argv, 
 
52943
            const char *defs = (const char*)0, 
 
52944
            const char *decls = (const char*)0);
 
52945
 
 
52946
public: // Project configuration 
 
52947
  // Get the preprocessor configuration.
 
52948
  Config &config ();
 
52949
 
 
52950
  // Configure the project from the command line or a file.
 
52951
  virtual void configure (Config &);
 
52952
 
 
52953
  // Add a new file to the project.
 
52954
  Unit *addFile (Filename file);
 
52955
 
 
52956
public: // Scanner interface
 
52957
  // Get the scanner.
 
52958
  CScanner &scanner ();
 
52959
 
 
52960
  // Scan the file `file' or the source if given. When
 
52961
  // scanning a source the resulting unit gets the name `file'.
 
52962
  
 
52963
#line 52964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
52964
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
52965
 
 
52966
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
52967
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
 
52968
                          bool isFile = true);
 
52969
        
 
52970
  // Scan a string. The resulting unit gets the name `name'.
 
52971
  // (and will not be registered at the unit manager!)
 
52972
  virtual Unit *scanString (const char *str, 
 
52973
                            const char *name = (const char*)0);
 
52974
 
 
52975
public: // Miscellaneous Functions
 
52976
 
 
52977
  // Give the filename needed to include a particular header file
 
52978
  Filename getInclString (Filename filename);
 
52979
 
 
52980
private:
 
52981
  // Map the type string from --size-type and --ptrdiff-type
 
52982
  // to real Puma type.
 
52983
  CTypeInfo *mapType (const char *) const;
 
52984
};
 
52985
 
 
52986
inline Config &CProject::config () 
 
52987
 { return _config; }
 
52988
inline CScanner &CProject::scanner () 
 
52989
 { return _scanner; }
 
52990
 
 
52991
 
 
52992
} // namespace Puma
 
52993
 
 
52994
#endif /* __CProject_h__ */
 
52995
 
 
52996
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
52997
// This file is part of PUMA.
 
52998
// Copyright (C) 1999-2003  The PUMA developer team.
 
52999
//                                                                
 
53000
// This program is free software;  you can redistribute it and/or 
 
53001
// modify it under the terms of the GNU General Public License as 
 
53002
// published by the Free Software Foundation; either version 2 of 
 
53003
// the License, or (at your option) any later version.            
 
53004
//                                                                
 
53005
// This program is distributed in the hope that it will be useful,
 
53006
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
53007
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
53008
// GNU General Public License for more details.                   
 
53009
//                                                                
 
53010
// You should have received a copy of the GNU General Public      
 
53011
// License along with this program; if not, write to the Free     
 
53012
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
53013
// MA  02111-1307  USA                                            
 
53014
 
 
53015
#ifndef __FileUnit__
 
53016
#define __FileUnit__
 
53017
 
 
53018
// Special Unit for files. Knows its last save location and the
 
53019
// absolute path of the corresponding file.
 
53020
 
 
53021
 
 
53022
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
53023
namespace Puma {
 
53024
 
 
53025
 
 
53026
class Project;
 
53027
 
 
53028
 
 
53029
#line 53030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53030
} // closed Puma
 
53031
class CCExprResolve;
 
53032
class CExprResolve;
 
53033
class WinIfExists;
 
53034
class WinImportHandler;
 
53035
class WinMacros;
 
53036
class WinAsm;
 
53037
class WinDeclSpecs;
 
53038
class WinMemberExplSpec;
 
53039
class WinTypeKeywords;
 
53040
class WinFriend;
 
53041
class ExtAC;
 
53042
class ExtACBuilderCoupling;
 
53043
class ExtACSyntaxCoupling;
 
53044
class ExtACTree;
 
53045
class ExtACKeywords;
 
53046
class ExtGnu;
 
53047
class PragmaOnceUnitState;
 
53048
class PragmaOnce;
 
53049
class CMatchSyntax;
 
53050
namespace Puma {
 
53051
 
 
53052
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
53053
class FileUnit : public Unit {
 
53054
#line 53055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53055
  friend class ::CCExprResolve;
 
53056
  friend class ::CExprResolve;
 
53057
  friend class ::WinIfExists;
 
53058
  friend class ::WinImportHandler;
 
53059
  friend class ::WinMacros;
 
53060
  friend class ::WinAsm;
 
53061
  friend class ::WinDeclSpecs;
 
53062
  friend class ::WinMemberExplSpec;
 
53063
  friend class ::WinTypeKeywords;
 
53064
  friend class ::WinFriend;
 
53065
  friend class ::ExtAC;
 
53066
  friend class ::ExtACBuilderCoupling;
 
53067
  friend class ::ExtACSyntaxCoupling;
 
53068
  friend class ::ExtACTree;
 
53069
  friend class ::ExtACKeywords;
 
53070
  friend class ::ExtGnu;
 
53071
  friend class ::PragmaOnceUnitState;
 
53072
  friend class ::PragmaOnce;
 
53073
  friend class ::CMatchSyntax;
 
53074
 
 
53075
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
53076
 
 
53077
  char *_lastLocation; 
 
53078
  char *_absolutePath;
 
53079
  
 
53080
  Project *_project;
 
53081
  bool _isBelow;
 
53082
 
 
53083
public:
 
53084
  FileUnit ();
 
53085
  FileUnit (Unit &);
 
53086
  FileUnit (const List &);
 
53087
  virtual ~FileUnit ();
 
53088
            
 
53089
  virtual void name (const char *);        
 
53090
  void setLocation (const char *);    
 
53091
        
 
53092
  char *lastLocation () const;
 
53093
  char *absolutePath () const;
 
53094
  bool isFile () const;
 
53095
  
 
53096
  // Generates the absolute pathname to the file.
 
53097
  static char *absolutePath (const char *);
 
53098
  static char *resolvePath (const char *);
 
53099
  
 
53100
  // File belongs to given project?
 
53101
  bool belongsTo (Project &);
 
53102
};
 
53103
 
 
53104
inline FileUnit::FileUnit () : 
 
53105
  Unit (), 
 
53106
  _lastLocation ((char*)0), 
 
53107
  _absolutePath ((char*)0),
 
53108
  _project (0),
 
53109
  _isBelow (false)
 
53110
 {}
 
53111
inline FileUnit::FileUnit (Unit &unit) : 
 
53112
  Unit (unit), 
 
53113
  _lastLocation ((char*)0), 
 
53114
  _absolutePath ((char*)0),
 
53115
  _project (0),
 
53116
  _isBelow (false)
 
53117
 {}
 
53118
inline FileUnit::FileUnit (const List &list) : 
 
53119
  Unit (list), 
 
53120
  _lastLocation ((char*)0), 
 
53121
  _absolutePath ((char*)0),
 
53122
  _project (0),
 
53123
  _isBelow (false)  
 
53124
 {}
 
53125
inline FileUnit::~FileUnit () 
 
53126
 { if (_lastLocation) delete[] _lastLocation; 
 
53127
   if (_absolutePath) delete[] _absolutePath; }
 
53128
            
 
53129
inline char *FileUnit::lastLocation () const 
 
53130
 { return _lastLocation; }
 
53131
inline char *FileUnit::absolutePath () const 
 
53132
 { return _absolutePath; }
 
53133
inline bool FileUnit::isFile () const 
 
53134
 { return true; }
 
53135
 
 
53136
 
 
53137
} // namespace Puma
 
53138
 
 
53139
#endif /* __FileUnit__ */
 
53140
 
 
53141
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53142
// *****************************************
 
53143
// AspectC++ keyword handling in the scanner
 
53144
// *****************************************
 
53145
 
 
53146
#line 53147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53147
class CCExprResolve;
 
53148
class CExprResolve;
 
53149
class WinIfExists;
 
53150
class WinImportHandler;
 
53151
class WinMacros;
 
53152
class WinAsm;
 
53153
class WinDeclSpecs;
 
53154
class WinMemberExplSpec;
 
53155
class WinTypeKeywords;
 
53156
class WinFriend;
 
53157
class ExtAC;
 
53158
class ExtACBuilderCoupling;
 
53159
class ExtACSyntaxCoupling;
 
53160
class ExtACTree;
 
53161
class ExtGnu;
 
53162
class PragmaOnceUnitState;
 
53163
class PragmaOnce;
 
53164
class CMatchSyntax;
 
53165
 
 
53166
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53167
class ExtACKeywords {
 
53168
#line 53169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53169
 
 
53170
public:
 
53171
  static ExtACKeywords *aspectof () {
 
53172
    static ExtACKeywords __instance;
44145
53173
    return &__instance;
44146
53174
  }
44147
 
  static CMatchSyntax *aspectOf () {
 
53175
  static ExtACKeywords *aspectOf () {
44148
53176
    return aspectof ();
44149
53177
  }
44150
53178
private:
44151
53179
 
44152
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
53180
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
44153
53181
 
44154
 
#line 44155 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53182
#line 53183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53183
  friend class ::CCExprResolve;
 
53184
  friend class ::CExprResolve;
44155
53185
  friend class ::WinIfExists;
44156
53186
  friend class ::WinImportHandler;
44157
53187
  friend class ::WinMacros;
44158
 
  friend class ::ExtGnu;
 
53188
  friend class ::WinAsm;
 
53189
  friend class ::WinDeclSpecs;
 
53190
  friend class ::WinMemberExplSpec;
 
53191
  friend class ::WinTypeKeywords;
 
53192
  friend class ::WinFriend;
44159
53193
  friend class ::ExtAC;
44160
53194
  friend class ::ExtACBuilderCoupling;
44161
53195
  friend class ::ExtACSyntaxCoupling;
44162
53196
  friend class ::ExtACTree;
44163
 
  friend class ::ExtACKeywords;
44164
 
  friend class ::WinAsm;
44165
 
  friend class ::WinDeclSpecs;
44166
 
  friend class ::WinMemberExplSpec;
44167
 
  friend class ::WinTypeKeywords;
 
53197
  friend class ::ExtGnu;
44168
53198
  friend class ::PragmaOnceUnitState;
44169
53199
  friend class ::PragmaOnce;
44170
 
  friend class ::CCExprResolve;
44171
 
  friend class ::CExprResolve;
44172
 
 
44173
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44174
 
 
44175
 
  
44176
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44177
 
 
44178
 
  
44179
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44180
 
  
44181
 
  
44182
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44183
 
 
44184
 
  
44185
 
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44186
 
 
44187
 
 
44188
 
protected:
44189
 
  // flag to enable/disable parsing match expressions
44190
 
  bool match_expr;
44191
 
 
44192
 
protected:
44193
 
  CMatchSyntax () : match_expr (false) {}
44194
 
  
44195
 
  // introduce wildcard rules to CSyntax and CCSyntax
44196
 
  
44197
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44198
 
 
44199
 
  
44200
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44201
 
 
44202
 
 
44203
 
  // extend CBuilder
44204
 
  
44205
 
#line 70 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44206
 
 
44207
 
 
44208
 
  // extend CSemantic
44209
 
  
44210
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44211
 
 
44212
 
 
44213
 
  // let first parse wildcards before parsing anything else
44214
 
  
44215
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44216
 
 
44217
 
public: template<class JoinPoint> void __a0_around 
44218
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44219
 
 
44220
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44221
 
(JoinPoint *tjp)
44222
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44223
 
 {
44224
 
#line 44225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44225
 
 
44226
 
  JoinPoint *&thisJoinPoint = tjp;
44227
 
 
44228
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44229
 
 
44230
 
#line 44231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44231
 
 
44232
 
  typedef typename JoinPoint::That __JP_That;
44233
 
  typedef typename JoinPoint::Target __JP_Target;
44234
 
  typedef typename JoinPoint::Result __JP_Result;
44235
 
 
44236
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44237
 
 
44238
 
    if (match_expr &&
44239
 
        thisJoinPoint->that ()->parse (&__JP_That
44240
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44241
 
::wildcards)) 
44242
 
      *(CTree**)thisJoinPoint->result () = 
44243
 
        thisJoinPoint->that ()->builder ().get_node (); 
44244
 
    else 
44245
 
      thisJoinPoint->action ().trigger (); 
44246
 
  }
44247
 
#line 44248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44248
 
 
44249
 
protected:
44250
 
 
44251
 
#line 96 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44252
 
 
44253
 
 
44254
 
  // extend the syntax to parse ANYs
44255
 
 
44256
 
  
44257
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44258
 
 
44259
 
public: template<class JoinPoint> void __a1_around 
44260
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44261
 
 
44262
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44263
 
(JoinPoint *tjp)
44264
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44265
 
 {
44266
 
#line 44267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44267
 
 
44268
 
  JoinPoint *&thisJoinPoint = tjp;
44269
 
 
44270
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44271
 
 
44272
 
#line 44273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44273
 
 
44274
 
  typedef typename JoinPoint::That __JP_That;
44275
 
  typedef typename JoinPoint::Target __JP_Target;
44276
 
  typedef typename JoinPoint::Result __JP_Result;
44277
 
 
44278
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44279
 
 
44280
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_EXPR)) {
44281
 
      thisJoinPoint->that ()->parse (&__JP_That
44282
 
#line 103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44283
 
::wc_extension); 
44284
 
      *(CTree**)thisJoinPoint->result () = 
44285
 
        thisJoinPoint->that ()->builder ().any (); 
44286
 
    } else 
44287
 
      thisJoinPoint->action ().trigger (); 
44288
 
  }
44289
 
#line 44290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44290
 
 
44291
 
protected:
44292
 
 
44293
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44294
 
 
44295
 
 
44296
 
  
44297
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44298
 
 
44299
 
public: template<class JoinPoint> void __a2_around 
44300
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44301
 
 
44302
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44303
 
(JoinPoint *tjp)
44304
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44305
 
 {
44306
 
#line 44307 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44307
 
 
44308
 
  JoinPoint *&thisJoinPoint = tjp;
44309
 
 
44310
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44311
 
 
44312
 
#line 44313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44313
 
 
44314
 
  typedef typename JoinPoint::That __JP_That;
44315
 
  typedef typename JoinPoint::Target __JP_Target;
44316
 
  typedef typename JoinPoint::Result __JP_Result;
44317
 
 
44318
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44319
 
 
44320
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_EXPR_LIST)) {
44321
 
      thisJoinPoint->that ()->parse (&__JP_That
44322
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44323
 
::wc_extension); 
44324
 
      *(CTree**)thisJoinPoint->result () = 
44325
 
        thisJoinPoint->that ()->builder ().any_list (); 
44326
 
    } else 
44327
 
      thisJoinPoint->action ().trigger (); 
44328
 
  }
44329
 
#line 44330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44330
 
 
44331
 
protected:
44332
 
 
44333
 
#line 118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44334
 
 
44335
 
 
44336
 
  
44337
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44338
 
 
44339
 
public: template<class JoinPoint> void __a3_around 
44340
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44341
 
 
44342
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44343
 
(JoinPoint *tjp)
44344
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44345
 
 {
44346
 
#line 44347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44347
 
 
44348
 
  JoinPoint *&thisJoinPoint = tjp;
44349
 
 
44350
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44351
 
 
44352
 
#line 44353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44353
 
 
44354
 
  typedef typename JoinPoint::That __JP_That;
44355
 
  typedef typename JoinPoint::Target __JP_Target;
44356
 
  typedef typename JoinPoint::Result __JP_Result;
44357
 
 
44358
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44359
 
 
44360
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_ID_EXPR)) {
44361
 
      thisJoinPoint->that ()->parse (&__JP_That
44362
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44363
 
::wc_extension); 
44364
 
      *(CTree**)thisJoinPoint->result () = 
44365
 
        thisJoinPoint->that ()->builder ().any (); 
44366
 
    } else 
44367
 
      thisJoinPoint->action ().trigger (); 
44368
 
  }
44369
 
#line 44370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44370
 
 
44371
 
protected:
44372
 
 
44373
 
#line 128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44374
 
 
44375
 
 
44376
 
  
44377
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44378
 
 
44379
 
public: template<class JoinPoint> void __a4_around 
44380
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44381
 
 
44382
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44383
 
(JoinPoint *tjp)
44384
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44385
 
 {
44386
 
#line 44387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44387
 
 
44388
 
  JoinPoint *&thisJoinPoint = tjp;
44389
 
 
44390
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44391
 
 
44392
 
#line 44393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44393
 
 
44394
 
  typedef typename JoinPoint::That __JP_That;
44395
 
  typedef typename JoinPoint::Target __JP_Target;
44396
 
  typedef typename JoinPoint::Result __JP_Result;
44397
 
 
44398
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44399
 
 
44400
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_IDENTIFIER)) {
44401
 
      thisJoinPoint->that ()->parse (&__JP_That
44402
 
#line 133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44403
 
::wc_extension); 
44404
 
      *(CTree**)thisJoinPoint->result () = 
44405
 
        thisJoinPoint->that ()->builder ().any (); 
44406
 
    } else 
44407
 
      thisJoinPoint->action ().trigger (); 
44408
 
  }
44409
 
#line 44410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44410
 
 
44411
 
protected:
44412
 
 
44413
 
#line 138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44414
 
 
44415
 
 
44416
 
  
44417
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44418
 
 
44419
 
public: template<class JoinPoint> void __a5_after 
44420
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44421
 
 
44422
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44423
 
(JoinPoint *tjp)
44424
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44425
 
 {
44426
 
#line 44427 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44427
 
 
44428
 
  typedef typename JoinPoint::That __JP_That;
44429
 
  typedef typename JoinPoint::Target __JP_Target;
44430
 
  typedef typename JoinPoint::Result __JP_Result;
44431
 
 
44432
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44433
 
 
44434
 
      tjp->that ()->_decl_spec_1.set (TOK_ANY_DECL_SPEC);
44435
 
  }
44436
 
#line 44437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44437
 
 
44438
 
protected:
44439
 
 
44440
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44441
 
 
44442
 
  
44443
 
  
44444
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44445
 
 
44446
 
public: template<class JoinPoint> void __a6_after 
44447
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44448
 
 
44449
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44450
 
(JoinPoint *tjp)
44451
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44452
 
 {
44453
 
#line 44454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44454
 
 
44455
 
  typedef typename JoinPoint::That __JP_That;
44456
 
  typedef typename JoinPoint::Target __JP_Target;
44457
 
  typedef typename JoinPoint::Result __JP_Result;
44458
 
 
44459
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44460
 
 
44461
 
    CTree *&result = *(CTree**)tjp->result ();
44462
 
    if (match_expr && !result &&
44463
 
        tjp->that ()->parse (TOK_ANY_DECL_SPEC) &&
44464
 
        tjp->that ()->parse (&__JP_That
44465
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44466
 
::wc_extension)) {
44467
 
      result = tjp->that ()->builder().any ();
44468
 
    }
44469
 
  }
44470
 
#line 44471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44471
 
 
44472
 
protected:
44473
 
 
44474
 
#line 153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44475
 
 
44476
 
 
44477
 
  
44478
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44479
 
 
44480
 
public: template<class JoinPoint> void __a7_around 
44481
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44482
 
 
44483
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44484
 
(JoinPoint *tjp)
44485
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44486
 
 {
44487
 
#line 44488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44488
 
 
44489
 
  JoinPoint *&thisJoinPoint = tjp;
44490
 
 
44491
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44492
 
 
44493
 
#line 44494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44494
 
 
44495
 
  typedef typename JoinPoint::That __JP_That;
44496
 
  typedef typename JoinPoint::Target __JP_Target;
44497
 
  typedef typename JoinPoint::Result __JP_Result;
44498
 
 
44499
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44500
 
 
44501
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_DECL_SPEC_SEQ)) {
44502
 
      thisJoinPoint->that ()->parse (&__JP_That
44503
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44504
 
::wc_extension); 
44505
 
      *(CTree**)thisJoinPoint->result () = 
44506
 
        thisJoinPoint->that ()->builder ().any_list (); 
44507
 
    } else 
44508
 
      thisJoinPoint->action ().trigger (); 
44509
 
  }
44510
 
#line 44511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44511
 
 
44512
 
protected:
44513
 
 
44514
 
#line 163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44515
 
 
44516
 
 
44517
 
  
44518
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44519
 
 
44520
 
public: template<class JoinPoint> void __a8_around 
44521
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44522
 
 
44523
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44524
 
(JoinPoint *tjp)
44525
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44526
 
 {
44527
 
#line 44528 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44528
 
 
44529
 
  JoinPoint *&thisJoinPoint = tjp;
44530
 
 
44531
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44532
 
 
44533
 
#line 44534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44534
 
 
44535
 
  typedef typename JoinPoint::That __JP_That;
44536
 
  typedef typename JoinPoint::Target __JP_Target;
44537
 
  typedef typename JoinPoint::Result __JP_Result;
44538
 
 
44539
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44540
 
 
44541
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT_DECLARATOR_LIST)) {
44542
 
      thisJoinPoint->that ()->parse (&__JP_That
44543
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44544
 
::wc_extension); 
44545
 
      *(CTree**)thisJoinPoint->result () = 
44546
 
        thisJoinPoint->that ()->builder ().any_list (); 
44547
 
    } else 
44548
 
      thisJoinPoint->action ().trigger (); 
44549
 
  }
44550
 
#line 44551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44551
 
 
44552
 
protected:
44553
 
 
44554
 
#line 173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44555
 
 
44556
 
 
44557
 
  
44558
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44559
 
 
44560
 
public: template<class JoinPoint> void __a9_around 
44561
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44562
 
 
44563
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44564
 
(JoinPoint *tjp)
44565
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44566
 
 {
44567
 
#line 44568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44568
 
 
44569
 
  JoinPoint *&thisJoinPoint = tjp;
44570
 
 
44571
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44572
 
 
44573
 
#line 44574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44574
 
 
44575
 
  typedef typename JoinPoint::That __JP_That;
44576
 
  typedef typename JoinPoint::Target __JP_Target;
44577
 
  typedef typename JoinPoint::Result __JP_Result;
44578
 
 
44579
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44580
 
 
44581
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT_DECLARATOR)) {
44582
 
      thisJoinPoint->that ()->parse (&__JP_That
44583
 
#line 178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44584
 
::wc_extension); 
44585
 
      *(CTree**)thisJoinPoint->result () = 
44586
 
        thisJoinPoint->that ()->builder ().any (); 
44587
 
    } else 
44588
 
      thisJoinPoint->action ().trigger (); 
44589
 
  }
44590
 
#line 44591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44591
 
 
44592
 
protected:
44593
 
 
44594
 
#line 183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44595
 
 
44596
 
 
44597
 
  
44598
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44599
 
 
44600
 
public: template<class JoinPoint> void __a10_around 
44601
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44602
 
 
44603
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44604
 
(JoinPoint *tjp)
44605
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44606
 
 {
44607
 
#line 44608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44608
 
 
44609
 
  JoinPoint *&thisJoinPoint = tjp;
44610
 
 
44611
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44612
 
 
44613
 
#line 44614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44614
 
 
44615
 
  typedef typename JoinPoint::That __JP_That;
44616
 
  typedef typename JoinPoint::Target __JP_Target;
44617
 
  typedef typename JoinPoint::Result __JP_Result;
44618
 
 
44619
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44620
 
 
44621
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_DECLARATOR)) {
44622
 
      thisJoinPoint->that ()->parse (&__JP_That
44623
 
#line 188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44624
 
::wc_extension); 
44625
 
      *(CTree**)thisJoinPoint->result () = 
44626
 
        thisJoinPoint->that ()->builder ().any (); 
44627
 
    } else 
44628
 
      thisJoinPoint->action ().trigger (); 
44629
 
  }
44630
 
#line 44631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44631
 
 
44632
 
protected:
44633
 
 
44634
 
#line 193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44635
 
 
44636
 
 
44637
 
  
44638
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44639
 
 
44640
 
public: template<class JoinPoint> void __a11_around 
44641
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44642
 
 
44643
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44644
 
(JoinPoint *tjp)
44645
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44646
 
 {
44647
 
#line 44648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44648
 
 
44649
 
  JoinPoint *&thisJoinPoint = tjp;
44650
 
 
44651
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44652
 
 
44653
 
#line 44654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44654
 
 
44655
 
  typedef typename JoinPoint::That __JP_That;
44656
 
  typedef typename JoinPoint::Target __JP_Target;
44657
 
  typedef typename JoinPoint::Result __JP_Result;
44658
 
 
44659
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44660
 
 
44661
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT)) {
44662
 
      thisJoinPoint->that ()->parse (&__JP_That
44663
 
#line 198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44664
 
::wc_extension); 
44665
 
      *(CTree**)thisJoinPoint->result () = 
44666
 
        thisJoinPoint->that ()->builder ().any (); 
44667
 
    } else 
44668
 
      thisJoinPoint->action ().trigger (); 
44669
 
  }
44670
 
#line 44671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44671
 
 
44672
 
protected:
44673
 
 
44674
 
#line 203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44675
 
 
44676
 
 
44677
 
  
44678
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44679
 
 
44680
 
public: template<class JoinPoint> void __a12_around 
44681
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44682
 
 
44683
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44684
 
(JoinPoint *tjp)
44685
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44686
 
 {
44687
 
#line 44688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44688
 
 
44689
 
  JoinPoint *&thisJoinPoint = tjp;
44690
 
 
44691
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44692
 
 
44693
 
#line 44694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44694
 
 
44695
 
  typedef typename JoinPoint::That __JP_That;
44696
 
  typedef typename JoinPoint::Target __JP_Target;
44697
 
  typedef typename JoinPoint::Result __JP_Result;
44698
 
 
44699
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44700
 
 
44701
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_ARG_DECL_SEQ)) {
44702
 
      thisJoinPoint->that ()->parse (&__JP_That
44703
 
#line 208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44704
 
::wc_extension); 
44705
 
      *(CTree**)thisJoinPoint->result () = 
44706
 
        thisJoinPoint->that ()->builder ().any_list (); 
44707
 
    } else 
44708
 
      thisJoinPoint->action ().trigger (); 
44709
 
  }
44710
 
#line 44711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44711
 
 
44712
 
protected:
44713
 
 
44714
 
#line 213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44715
 
 
44716
 
 
44717
 
  
44718
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44719
 
 
44720
 
public: template<class JoinPoint> void __a13_around 
44721
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44722
 
 
44723
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44724
 
(JoinPoint *tjp)
44725
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44726
 
 {
44727
 
#line 44728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44728
 
 
44729
 
  JoinPoint *&thisJoinPoint = tjp;
44730
 
 
44731
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44732
 
 
44733
 
#line 44734 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44734
 
 
44735
 
  typedef typename JoinPoint::That __JP_That;
44736
 
  typedef typename JoinPoint::Target __JP_Target;
44737
 
  typedef typename JoinPoint::Result __JP_Result;
44738
 
 
44739
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44740
 
 
44741
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_FCT_BODY)) {
44742
 
      thisJoinPoint->that ()->parse (&__JP_That
44743
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44744
 
::wc_extension); 
44745
 
      *(CTree**)thisJoinPoint->result () = 
44746
 
        thisJoinPoint->that ()->builder ().any (); 
44747
 
    } else 
44748
 
      thisJoinPoint->action ().trigger (); 
44749
 
  }
44750
 
#line 44751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44751
 
 
44752
 
protected:
44753
 
 
44754
 
#line 223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44755
 
 
44756
 
 
44757
 
  
44758
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44759
 
 
44760
 
public: template<class JoinPoint> void __a14_around 
44761
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44762
 
 
44763
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44764
 
(JoinPoint *tjp)
44765
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44766
 
 {
44767
 
#line 44768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44768
 
 
44769
 
  JoinPoint *&thisJoinPoint = tjp;
44770
 
 
44771
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44772
 
 
44773
 
#line 44774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44774
 
 
44775
 
  typedef typename JoinPoint::That __JP_That;
44776
 
  typedef typename JoinPoint::Target __JP_Target;
44777
 
  typedef typename JoinPoint::Result __JP_Result;
44778
 
 
44779
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44780
 
 
44781
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_CLASS_SPEC)) {
44782
 
      thisJoinPoint->that ()->parse (&__JP_That
44783
 
#line 228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44784
 
::wc_extension); 
44785
 
      *(CTree**)thisJoinPoint->result () = 
44786
 
        thisJoinPoint->that ()->builder ().any (); 
44787
 
    } else 
44788
 
      thisJoinPoint->action ().trigger (); 
44789
 
  }
44790
 
#line 44791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44791
 
 
44792
 
protected:
44793
 
 
44794
 
#line 233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44795
 
 
44796
 
 
44797
 
  
44798
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44799
 
 
44800
 
public: template<class JoinPoint> void __a15_around 
44801
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44802
 
 
44803
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44804
 
(JoinPoint *tjp)
44805
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44806
 
 {
44807
 
#line 44808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44808
 
 
44809
 
  JoinPoint *&thisJoinPoint = tjp;
44810
 
 
44811
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44812
 
 
44813
 
#line 44814 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44814
 
 
44815
 
  typedef typename JoinPoint::That __JP_That;
44816
 
  typedef typename JoinPoint::Target __JP_Target;
44817
 
  typedef typename JoinPoint::Result __JP_Result;
44818
 
 
44819
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44820
 
 
44821
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEMBER_SPEC)) {
44822
 
      thisJoinPoint->that ()->parse (&__JP_That
44823
 
#line 238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44824
 
::wc_extension); 
44825
 
      *(CTree**)thisJoinPoint->result () = 
44826
 
        thisJoinPoint->that ()->builder ().any_list (); 
44827
 
    } else 
44828
 
      thisJoinPoint->action ().trigger (); 
44829
 
  }
44830
 
#line 44831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44831
 
 
44832
 
protected:
44833
 
 
44834
 
#line 243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44835
 
 
44836
 
 
44837
 
  
44838
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44839
 
 
44840
 
public: template<class JoinPoint> void __a16_around 
44841
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44842
 
 
44843
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44844
 
(JoinPoint *tjp)
44845
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44846
 
 {
44847
 
#line 44848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44848
 
 
44849
 
  JoinPoint *&thisJoinPoint = tjp;
44850
 
 
44851
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44852
 
 
44853
 
#line 44854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44854
 
 
44855
 
  typedef typename JoinPoint::That __JP_That;
44856
 
  typedef typename JoinPoint::Target __JP_Target;
44857
 
  typedef typename JoinPoint::Result __JP_Result;
44858
 
 
44859
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44860
 
 
44861
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEMBER_DECL)) {
44862
 
      thisJoinPoint->that ()->parse (&__JP_That
44863
 
#line 248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44864
 
::wc_extension); 
44865
 
      *(CTree**)thisJoinPoint->result () = 
44866
 
        thisJoinPoint->that ()->builder ().any (); 
44867
 
    } else 
44868
 
      thisJoinPoint->action ().trigger (); 
44869
 
  }
44870
 
#line 44871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44871
 
 
44872
 
protected:
44873
 
 
44874
 
#line 253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44875
 
 
44876
 
 
44877
 
  
44878
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44879
 
 
44880
 
public: template<class JoinPoint> void __a17_around 
44881
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44882
 
 
44883
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44884
 
(JoinPoint *tjp)
44885
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44886
 
 {
44887
 
#line 44888 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44888
 
 
44889
 
  JoinPoint *&thisJoinPoint = tjp;
44890
 
 
44891
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44892
 
 
44893
 
#line 44894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44894
 
 
44895
 
  typedef typename JoinPoint::That __JP_That;
44896
 
  typedef typename JoinPoint::Target __JP_Target;
44897
 
  typedef typename JoinPoint::Result __JP_Result;
44898
 
 
44899
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44900
 
 
44901
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_STMT)) {
44902
 
      thisJoinPoint->that ()->parse (&__JP_That
44903
 
#line 258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44904
 
::wc_extension); 
44905
 
      *(CTree**)thisJoinPoint->result () = 
44906
 
        thisJoinPoint->that ()->builder ().any (); 
44907
 
    } else 
44908
 
      thisJoinPoint->action ().trigger (); 
44909
 
  }
44910
 
#line 44911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44911
 
 
44912
 
protected:
44913
 
 
44914
 
#line 263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44915
 
 
44916
 
 
44917
 
  
44918
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44919
 
 
44920
 
public: template<class JoinPoint> void __a18_around 
44921
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44922
 
 
44923
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44924
 
(JoinPoint *tjp)
44925
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44926
 
 {
44927
 
#line 44928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44928
 
 
44929
 
  JoinPoint *&thisJoinPoint = tjp;
44930
 
 
44931
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44932
 
 
44933
 
#line 44934 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44934
 
 
44935
 
  typedef typename JoinPoint::That __JP_That;
44936
 
  typedef typename JoinPoint::Target __JP_Target;
44937
 
  typedef typename JoinPoint::Result __JP_Result;
44938
 
 
44939
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44940
 
 
44941
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_STMT_SEQ)) {
44942
 
      thisJoinPoint->that ()->parse (&__JP_That
44943
 
#line 268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44944
 
::wc_extension); 
44945
 
      *(CTree**)thisJoinPoint->result () = 
44946
 
        thisJoinPoint->that ()->builder ().any_list (); 
44947
 
    } else 
44948
 
      thisJoinPoint->action ().trigger (); 
44949
 
  }
44950
 
#line 44951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44951
 
 
44952
 
protected:
44953
 
 
44954
 
#line 273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44955
 
 
44956
 
 
44957
 
  
44958
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44959
 
 
44960
 
public: template<class JoinPoint> void __a19_around 
44961
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44962
 
 
44963
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44964
 
(JoinPoint *tjp)
44965
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44966
 
 {
44967
 
#line 44968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44968
 
 
44969
 
  JoinPoint *&thisJoinPoint = tjp;
44970
 
 
44971
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44972
 
 
44973
 
#line 44974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44974
 
 
44975
 
  typedef typename JoinPoint::That __JP_That;
44976
 
  typedef typename JoinPoint::Target __JP_Target;
44977
 
  typedef typename JoinPoint::Result __JP_Result;
44978
 
 
44979
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44980
 
 
44981
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_BASE_CLAUSE)) {
44982
 
      thisJoinPoint->that ()->parse (&__JP_That
44983
 
#line 278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44984
 
::wc_extension); 
44985
 
      *(CTree**)thisJoinPoint->result () = 
44986
 
        thisJoinPoint->that ()->builder ().any_list (); 
44987
 
    } else 
44988
 
      thisJoinPoint->action ().trigger (); 
44989
 
  }
44990
 
#line 44991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
44991
 
 
44992
 
protected:
44993
 
 
44994
 
#line 283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44995
 
 
44996
 
 
44997
 
  
44998
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
44999
 
 
45000
 
public: template<class JoinPoint> void __a20_around 
45001
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45002
 
 
45003
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45004
 
(JoinPoint *tjp)
45005
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45006
 
 {
45007
 
#line 45008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45008
 
 
45009
 
  JoinPoint *&thisJoinPoint = tjp;
45010
 
 
45011
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45012
 
 
45013
 
#line 45014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45014
 
 
45015
 
  typedef typename JoinPoint::That __JP_That;
45016
 
  typedef typename JoinPoint::Target __JP_Target;
45017
 
  typedef typename JoinPoint::Result __JP_Result;
45018
 
 
45019
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45020
 
 
45021
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_CTOR_INIT)) {
45022
 
      thisJoinPoint->that ()->parse (&__JP_That
45023
 
#line 288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45024
 
::wc_extension); 
45025
 
      *(CTree**)thisJoinPoint->result () = 
45026
 
        thisJoinPoint->that ()->builder ().any (); 
45027
 
    } else 
45028
 
      thisJoinPoint->action ().trigger (); 
45029
 
  }
45030
 
#line 45031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45031
 
 
45032
 
protected:
45033
 
 
45034
 
#line 293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45035
 
 
45036
 
 
45037
 
  
45038
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45039
 
 
45040
 
public: template<class JoinPoint> void __a21_around 
45041
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45042
 
 
45043
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45044
 
(JoinPoint *tjp)
45045
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45046
 
 {
45047
 
#line 45048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45048
 
 
45049
 
  JoinPoint *&thisJoinPoint = tjp;
45050
 
 
45051
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45052
 
 
45053
 
#line 45054 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45054
 
 
45055
 
  typedef typename JoinPoint::That __JP_That;
45056
 
  typedef typename JoinPoint::Target __JP_Target;
45057
 
  typedef typename JoinPoint::Result __JP_Result;
45058
 
 
45059
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45060
 
 
45061
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEM_INIT)) {
45062
 
      thisJoinPoint->that ()->parse (&__JP_That
45063
 
#line 298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45064
 
::wc_extension); 
45065
 
      *(CTree**)thisJoinPoint->result () = 
45066
 
        thisJoinPoint->that ()->builder ().any (); 
45067
 
    } else 
45068
 
      thisJoinPoint->action ().trigger (); 
45069
 
  }
45070
 
#line 45071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45071
 
 
45072
 
protected:
45073
 
 
45074
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45075
 
 
45076
 
 
45077
 
  // extend the syntax to be able to parse match trees
45078
 
 
45079
 
  
45080
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45081
 
 
45082
 
public: template<class JoinPoint> void __a22_around 
45083
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45084
 
 
45085
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45086
 
(JoinPoint *tjp)
45087
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45088
 
 {
45089
 
#line 45090 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45090
 
 
45091
 
  JoinPoint *&thisJoinPoint = tjp;
45092
 
 
45093
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45094
 
 
45095
 
#line 45096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45096
 
 
45097
 
  typedef typename JoinPoint::That __JP_That;
45098
 
  typedef typename JoinPoint::Target __JP_Target;
45099
 
  typedef typename JoinPoint::Result __JP_Result;
45100
 
 
45101
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45102
 
 
45103
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_TYPEDEF)) {
45104
 
      *(CTree**)thisJoinPoint->result () = 
45105
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
45106
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
45107
 
    } else 
45108
 
      thisJoinPoint->action ().trigger (); 
45109
 
  }
45110
 
#line 45111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45111
 
 
45112
 
protected:
45113
 
 
45114
 
#line 315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45115
 
 
45116
 
 
45117
 
  
45118
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45119
 
 
45120
 
public: template<class JoinPoint> void __a23_around 
45121
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45122
 
 
45123
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45124
 
(JoinPoint *tjp)
45125
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45126
 
 {
45127
 
#line 45128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45128
 
 
45129
 
  JoinPoint *&thisJoinPoint = tjp;
45130
 
 
45131
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45132
 
 
45133
 
#line 45134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45134
 
 
45135
 
  typedef typename JoinPoint::That __JP_That;
45136
 
  typedef typename JoinPoint::Target __JP_Target;
45137
 
  typedef typename JoinPoint::Result __JP_Result;
45138
 
 
45139
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45140
 
 
45141
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_CLASS)) {
45142
 
      *(CTree**)thisJoinPoint->result () = 
45143
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
45144
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
45145
 
    } else 
45146
 
      thisJoinPoint->action ().trigger (); 
45147
 
  }
45148
 
#line 45149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45149
 
 
45150
 
protected:
45151
 
 
45152
 
#line 325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45153
 
 
45154
 
 
45155
 
  
45156
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45157
 
 
45158
 
public: template<class JoinPoint> void __a24_around 
45159
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45160
 
 
45161
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45162
 
(JoinPoint *tjp)
45163
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45164
 
 {
45165
 
#line 45166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45166
 
 
45167
 
  JoinPoint *&thisJoinPoint = tjp;
45168
 
 
45169
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45170
 
 
45171
 
#line 45172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45172
 
 
45173
 
  typedef typename JoinPoint::That __JP_That;
45174
 
  typedef typename JoinPoint::Target __JP_Target;
45175
 
  typedef typename JoinPoint::Result __JP_Result;
45176
 
 
45177
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45178
 
 
45179
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_ENUM)) {
45180
 
      *(CTree**)thisJoinPoint->result () = 
45181
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
45182
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
45183
 
    } else 
45184
 
      thisJoinPoint->action ().trigger (); 
45185
 
  }
45186
 
#line 45187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45187
 
 
45188
 
protected:
45189
 
 
45190
 
#line 335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45191
 
 
45192
 
 
45193
 
  // configure parsing match expressions
45194
 
  
45195
 
  
45196
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45197
 
 
45198
 
public: void __a25_before 
45199
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45200
 
 
45201
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45202
 
(Config &config)
45203
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45204
 
 {
45205
 
    match_expr = (config.Option ("--match-expr"));
45206
 
  }
45207
 
#line 45208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45208
 
 
45209
 
protected:
45210
 
 
45211
 
#line 342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45212
 
 
 
53200
  friend class ::CMatchSyntax;
 
53201
 
 
53202
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53203
 
 
53204
 
 
53205
  bool _prj_keywords;
 
53206
  Puma::CProject *_project; // active project
 
53207
  
 
53208
protected:
 
53209
  ExtACKeywords () : _prj_keywords (false) {}
 
53210
  
 
53211
public:
 
53212
  // allow/forbid AspectC++ keywords in normal project files
 
53213
  void prj_keywords (bool kw) { _prj_keywords = kw; }
 
53214
  
 
53215
  
 
53216
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53217
 
 
53218
public: void __a0_before 
 
53219
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53220
 
 
53221
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53222
(Puma::CProject &project)
 
53223
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53224
 {
 
53225
    _project = &project;
 
53226
  }
 
53227
  
 
53228
  
 
53229
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53230
 
 
53231
public: template<class JoinPoint> void __a1_before 
 
53232
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53233
 
 
53234
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53235
(JoinPoint *tjp, Puma::Unit &unit)
 
53236
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53237
 {
 
53238
#line 53239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53239
 
 
53240
  typedef typename JoinPoint::That __JP_That;
 
53241
  typedef typename JoinPoint::Target __JP_Target;
 
53242
  typedef typename JoinPoint::Result __JP_Result;
 
53243
 
 
53244
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53245
 
 
53246
    if (!unit.isFile ())
 
53247
      return;
 
53248
      
 
53249
    bool ac_kw = _prj_keywords;
 
53250
    // in external files the AspectC++ keywords are always identifiers
 
53251
    if (!((Puma::FileUnit*)&unit)->belongsTo (*_project)) {
 
53252
      ac_kw = false;
 
53253
    }
 
53254
    // in aspect headers keywords are keywords
 
53255
    else if (unit.name () &&
 
53256
      strcmp (unit.name () + strlen (unit.name ()) - 3, ".ah") == 0) {
 
53257
      ac_kw = true;
 
53258
    }
 
53259
    // finally the right flag
 
53260
    tjp->that ()->allow_aspectc (ac_kw);
 
53261
  }
 
53262
  
 
53263
  
 
53264
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53265
 
 
53266
public: template<class JoinPoint> void __a2_before 
 
53267
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53268
 
 
53269
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53270
(JoinPoint *tjp)
 
53271
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53272
 {
 
53273
#line 53274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53274
 
 
53275
  typedef typename JoinPoint::That __JP_That;
 
53276
  typedef typename JoinPoint::Target __JP_Target;
 
53277
  typedef typename JoinPoint::Result __JP_Result;
 
53278
 
 
53279
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53280
 
 
53281
    _project = tjp->that ();
 
53282
  }
45213
53283
};
45214
 
#line 45215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53284
#line 53285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
45215
53285
 
45216
53286
namespace AC {
45217
53287
  template <class JoinPoint>
45218
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp) {
45219
 
    ::CMatchSyntax::aspectof()->__a0_around (tjp);
45220
 
  }
45221
 
  template <class JoinPoint>
45222
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp) {
45223
 
    ::CMatchSyntax::aspectof()->__a1_around (tjp);
45224
 
  }
45225
 
  template <class JoinPoint>
45226
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp) {
45227
 
    ::CMatchSyntax::aspectof()->__a2_around (tjp);
45228
 
  }
45229
 
  template <class JoinPoint>
45230
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp) {
45231
 
    ::CMatchSyntax::aspectof()->__a3_around (tjp);
45232
 
  }
45233
 
  template <class JoinPoint>
45234
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp) {
45235
 
    ::CMatchSyntax::aspectof()->__a4_around (tjp);
45236
 
  }
45237
 
  template <class JoinPoint>
45238
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp) {
45239
 
    ::CMatchSyntax::aspectof()->__a5_after (tjp);
45240
 
  }
45241
 
  template <class JoinPoint>
45242
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp) {
45243
 
    ::CMatchSyntax::aspectof()->__a6_after (tjp);
45244
 
  }
45245
 
  template <class JoinPoint>
45246
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp) {
45247
 
    ::CMatchSyntax::aspectof()->__a7_around (tjp);
45248
 
  }
45249
 
  template <class JoinPoint>
45250
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp) {
45251
 
    ::CMatchSyntax::aspectof()->__a8_around (tjp);
45252
 
  }
45253
 
  template <class JoinPoint>
45254
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp) {
45255
 
    ::CMatchSyntax::aspectof()->__a9_around (tjp);
45256
 
  }
45257
 
  template <class JoinPoint>
45258
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp) {
45259
 
    ::CMatchSyntax::aspectof()->__a10_around (tjp);
45260
 
  }
45261
 
  template <class JoinPoint>
45262
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp) {
45263
 
    ::CMatchSyntax::aspectof()->__a11_around (tjp);
45264
 
  }
45265
 
  template <class JoinPoint>
45266
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp) {
45267
 
    ::CMatchSyntax::aspectof()->__a12_around (tjp);
45268
 
  }
45269
 
  template <class JoinPoint>
45270
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp) {
45271
 
    ::CMatchSyntax::aspectof()->__a13_around (tjp);
45272
 
  }
45273
 
  template <class JoinPoint>
45274
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp) {
45275
 
    ::CMatchSyntax::aspectof()->__a14_around (tjp);
45276
 
  }
45277
 
  template <class JoinPoint>
45278
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp) {
45279
 
    ::CMatchSyntax::aspectof()->__a15_around (tjp);
45280
 
  }
45281
 
  template <class JoinPoint>
45282
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp) {
45283
 
    ::CMatchSyntax::aspectof()->__a16_around (tjp);
45284
 
  }
45285
 
  template <class JoinPoint>
45286
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp) {
45287
 
    ::CMatchSyntax::aspectof()->__a17_around (tjp);
45288
 
  }
45289
 
  template <class JoinPoint>
45290
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp) {
45291
 
    ::CMatchSyntax::aspectof()->__a18_around (tjp);
45292
 
  }
45293
 
  template <class JoinPoint>
45294
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp) {
45295
 
    ::CMatchSyntax::aspectof()->__a19_around (tjp);
45296
 
  }
45297
 
  template <class JoinPoint>
45298
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp) {
45299
 
    ::CMatchSyntax::aspectof()->__a20_around (tjp);
45300
 
  }
45301
 
  template <class JoinPoint>
45302
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp) {
45303
 
    ::CMatchSyntax::aspectof()->__a21_around (tjp);
45304
 
  }
45305
 
  template <class JoinPoint>
45306
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp) {
45307
 
    ::CMatchSyntax::aspectof()->__a22_around (tjp);
45308
 
  }
45309
 
  template <class JoinPoint>
45310
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp) {
45311
 
    ::CMatchSyntax::aspectof()->__a23_around (tjp);
45312
 
  }
45313
 
  template <class JoinPoint>
45314
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp) {
45315
 
    ::CMatchSyntax::aspectof()->__a24_around (tjp);
45316
 
  }
45317
 
  template <class JoinPoint, class Binding>
45318
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp) {
45319
 
    typedef typename Binding::template Arg<0> Arg0;
45320
 
    ::CMatchSyntax::aspectof()->__a25_before ((Puma::Config &)Arg0::val (tjp));
 
53288
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
 
53289
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
 
53290
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
 
53291
  }
 
53292
  template <class JoinPoint>
 
53293
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
 
53294
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
 
53295
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
 
53296
  }
 
53297
  template <class JoinPoint>
 
53298
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
 
53299
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
45321
53300
  }
45322
53301
45323
53302
 
45324
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45325
 
 
45326
 
 
45327
 
// introduce wildcard rules to CSyntax
45328
 
 
45329
 
#line 356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45330
 
 
45331
 
 
45332
 
// introduce wildcard rules to CCSyntax
45333
 
 
45334
 
#line 362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45335
 
 
45336
 
 
45337
 
// extend CBuilder
45338
 
 
45339
 
#line 378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45340
 
 
45341
 
 
45342
 
 
45343
 
#line 400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45344
 
 
45345
 
         
45346
 
 
45347
 
#line 414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45348
 
 
45349
 
 
45350
 
 
45351
 
#line 420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45352
 
 
45353
 
 
45354
 
 
45355
 
#line 426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45356
 
 
45357
 
 
45358
 
 
45359
 
#line 432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45360
 
 
45361
 
 
45362
 
 
45363
 
#line 437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45364
 
 
45365
 
 
45366
 
/*****************************************************************************/
45367
 
/*                                                                           */
45368
 
/*                              wildcard rules                               */
45369
 
/*                                                                           */
45370
 
/*****************************************************************************/
45371
 
 
45372
 
 
45373
 
#line 449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45374
 
 
45375
 
 
45376
 
 
45377
 
#line 470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45378
 
 
45379
 
 
45380
 
 
45381
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45382
 
 
45383
 
 
45384
 
 
45385
 
#line 481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45386
 
 
45387
 
 
45388
 
 
45389
 
#line 487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45390
 
 
45391
 
 
45392
 
 
45393
 
#line 494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45394
 
 
45395
 
 
45396
 
 
45397
 
#line 510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45398
 
 
45399
 
            
45400
 
 
45401
 
#line 523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45402
 
 
45403
 
 
45404
 
 
45405
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45406
 
 
45407
 
 
45408
 
 
45409
 
#line 540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45410
 
 
45411
 
 
45412
 
 
45413
 
#line 550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45414
 
 
45415
 
 
45416
 
 
45417
 
#line 563 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45418
 
 
45419
 
 
45420
 
 
45421
 
#line 569 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45422
 
 
45423
 
 
45424
 
 
45425
 
#line 575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
45426
 
 
45427
 
 
45428
 
#endif /* __CMatchSyntax_ah__ */
45429
 
 
45430
 
#line 19 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
 
53303
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
53304
  
 
53305
 
 
53306
#endif /* __ext_ac_keywords_ah__ */
 
53307
 
 
53308
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
45431
53309
#endif
45432
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__)
45433
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
53310
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
53311
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
45434
53312
 
45435
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
53313
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
45436
53314
// This file is part of PUMA.
45437
53315
// Copyright (C) 1999-2003  The PUMA developer team.
45438
53316
//                                                                
45455
53333
#define __ext_gnu_h__
45456
53334
 
45457
53335
 
45458
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
45459
 
 
45460
 
#line 45461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45461
 
 
45462
 
#line 5 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
45463
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
45464
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
45465
 
 
45466
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
53336
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
45467
53337
// This file is part of PUMA.
45468
53338
// Copyright (C) 1999-2003  The PUMA developer team.
45469
53339
//                                                                
45488
53358
namespace Puma {
45489
53359
 
45490
53360
// Syntax tree node hierarchy:
 
53361
class   CT_GnuAsmSpec;       // derived from CTree
45491
53362
class   CT_GnuAsmDef;        // derived from CT_AsmDef
45492
53363
class   CT_GnuAsmOperand;    // derived from CTree
45493
53364
class     CT_GnuAsmOperands; // derived from CT_List
45497
53368
} // namespace Puma
45498
53369
 
45499
53370
 
45500
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53371
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45501
53372
 
45502
 
#line 45503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53373
#line 53374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
45503
53374
 
45504
53375
#ifndef __ac_fwd_ExtACTree__
45505
53376
#define __ac_fwd_ExtACTree__
45506
53377
class ExtACTree;
45507
53378
namespace AC {
45508
53379
  template <class JoinPoint>
45509
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
53380
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
45510
53381
  template <class JoinPoint>
45511
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
53382
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
45512
53383
}
45513
53384
#endif
45514
53385
 
45515
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
45516
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
53386
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
53387
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
45517
53388
#endif
45518
53389
 
45519
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45520
 
 
45521
 
#line 45522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
45522
 
 
45523
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45524
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
45525
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
45526
 
 
45527
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53390
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45528
53391
// This file is part of PUMA.
45529
53392
// Copyright (C) 1999-2003  The PUMA developer team.
45530
53393
//                                                                
45569
53432
class     CT_DefaultStmt;
45570
53433
class     CT_TryStmt;
45571
53434
class   CT_Expression;
 
53435
class     CT_Call;
 
53436
class       CT_CallExpr;
 
53437
class       CT_ImplicitCall;
45572
53438
class     CT_ThrowExpr;
45573
53439
class     CT_NewExpr;
45574
53440
class     CT_DeleteExpr;
45589
53455
class     CT_IfThenExpr;
45590
53456
class     CT_CmpdLiteral;
45591
53457
class     CT_IndexExpr;
45592
 
class     CT_CallExpr;
45593
53458
class     CT_CastExpr;
45594
53459
class     CT_StaticCast;
45595
53460
class       CT_ConstCast;
45636
53501
class     CT_NamespaceDef;
45637
53502
class     CT_NamespaceAliasDef;
45638
53503
class     CT_UsingDirective;
 
53504
class     CT_Condition;
45639
53505
class   CT_List;
45640
53506
class     CT_CmpdStmt;
45641
53507
class     CT_DeclSpecSeq;
45666
53532
class     CT_TemplateArgList;
45667
53533
class   CT_Token;
45668
53534
class   CT_Error;
45669
 
class   CT_Condition;
45670
53535
class   CT_BaseSpec;
45671
53536
class   CT_AccessSpec;
45672
53537
class   CT_ArrayDelimiter;
45706
53571
/*                                                                           */
45707
53572
/*****************************************************************************/
45708
53573
 
45709
 
 
45710
 
#line 45711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53574
/** \file
 
53575
 *  C/C++ syntax tree classes.
 
53576
 *  \see Puma::CTree */
 
53577
 
 
53578
/** \class CTree CTree.h Puma/CTree.h
 
53579
 *  Base class for all C/C++ syntax tree classes. */
 
53580
 
 
53581
#line 53582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
45711
53582
} // closed Puma
 
53583
class CCExprResolve;
 
53584
class CExprResolve;
45712
53585
class WinIfExists;
45713
53586
class WinImportHandler;
45714
53587
class WinMacros;
45715
 
class CMatchSyntax;
45716
 
class ExtGnu;
 
53588
class WinAsm;
 
53589
class WinDeclSpecs;
 
53590
class WinMemberExplSpec;
 
53591
class WinTypeKeywords;
 
53592
class WinFriend;
45717
53593
class ExtAC;
45718
53594
class ExtACBuilderCoupling;
45719
53595
class ExtACSyntaxCoupling;
45720
53596
class ExtACTree;
45721
53597
class ExtACKeywords;
45722
 
class WinAsm;
45723
 
class WinDeclSpecs;
45724
 
class WinMemberExplSpec;
45725
 
class WinTypeKeywords;
 
53598
class ExtGnu;
45726
53599
class PragmaOnceUnitState;
45727
53600
class PragmaOnce;
45728
 
class CCExprResolve;
45729
 
class CExprResolve;
45730
 
namespace Puma {
45731
 
 
45732
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53601
class CMatchSyntax;
 
53602
namespace Puma {
 
53603
 
 
53604
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53605
 
 
53606
#line 53607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53607
} // closed Puma
 
53608
 
 
53609
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
53610
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
53611
#include "CCExprResolveH.ah"
 
53612
#endif
 
53613
namespace Puma {
 
53614
 
 
53615
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53616
 
 
53617
#line 53618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53618
} // closed Puma
 
53619
 
 
53620
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
53621
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
53622
#include "CExprResolveH.ah"
 
53623
#endif
 
53624
namespace Puma {
 
53625
 
 
53626
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45733
53627
class CTree {
45734
 
#line 45735 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53628
#line 53629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53629
  friend class ::CCExprResolve;
 
53630
  friend class ::CExprResolve;
45735
53631
  friend class ::WinIfExists;
45736
53632
  friend class ::WinImportHandler;
45737
53633
  friend class ::WinMacros;
45738
 
  friend class ::CMatchSyntax;
45739
 
  friend class ::ExtGnu;
 
53634
  friend class ::WinAsm;
 
53635
  friend class ::WinDeclSpecs;
 
53636
  friend class ::WinMemberExplSpec;
 
53637
  friend class ::WinTypeKeywords;
 
53638
  friend class ::WinFriend;
45740
53639
  friend class ::ExtAC;
45741
53640
  friend class ::ExtACBuilderCoupling;
45742
53641
  friend class ::ExtACSyntaxCoupling;
45743
53642
  friend class ::ExtACTree;
45744
53643
  friend class ::ExtACKeywords;
45745
 
  friend class ::WinAsm;
45746
 
  friend class ::WinDeclSpecs;
45747
 
  friend class ::WinMemberExplSpec;
45748
 
  friend class ::WinTypeKeywords;
 
53644
  friend class ::ExtGnu;
45749
53645
  friend class ::PragmaOnceUnitState;
45750
53646
  friend class ::PragmaOnce;
45751
 
  friend class ::CCExprResolve;
45752
 
  friend class ::CExprResolve;
45753
 
 
45754
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53647
  friend class ::CMatchSyntax;
 
53648
 
 
53649
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53650
 
 
53651
  CTree * _parent;
45755
53652
 
45756
53653
public:
45757
53654
  /*DEBUG*/static int alloc;
45758
53655
  /*DEBUG*/static int release;
45759
53656
 
45760
53657
protected:
45761
 
  CTree *Son (CTree * const *, int, int) const;
45762
 
  int Sons (CTree * const *, int) const;
45763
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
53658
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
53659
   *  \param sons The sons array.
 
53660
   *  \param len Length of the sons array.
 
53661
   *  \param n Index of the son.
 
53662
   *  \return The n-th son or NULL. */
 
53663
  CTree *Son (CTree * const *sons, int len, int n) const;
 
53664
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
53665
   *  \param sons The sons array.
 
53666
   *  \param len Length of the sons array. */
 
53667
  int Sons (CTree * const *sons, int len) const;
 
53668
  /** Replace a son.
 
53669
   *  \param sons The sons array.
 
53670
   *  \param len Length of the sons array.
 
53671
   *  \param old_son The son to replace.
 
53672
   *  \param new_son The new son. */
 
53673
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
53674
  /** Replace a son if it equals the given son.
 
53675
   *  \param son The actual son.
 
53676
   *  \param old_son The son to replace, must match the actual son.
 
53677
   *  \param new_son The new son, overwrites the actual son. */
 
53678
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
53679
  /** Add a new son.
 
53680
   *  \param son The actual son.
 
53681
   *  \param new_son The new son, overwrites the actual son. */
 
53682
  void AddSon (CTree *&son, CTree *new_son);
 
53683
  /** Set the parent tree node.
 
53684
   *  \param parent The new parent tree node. */
 
53685
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
53686
  /** Set the parent tree node of the given tree node.
 
53687
   *  \param node The tree node.
 
53688
   *  \param parent The new parent. */
 
53689
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
45764
53690
  
45765
53691
protected:
45766
 
  CTree () { /*DEBUG*/alloc++; }
 
53692
  /** Default constructor. */
 
53693
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
45767
53694
 
45768
53695
public:
 
53696
  /** Destructor. */
45769
53697
  virtual ~CTree () { /*DEBUG*/release++; }
 
53698
  /** Get the number of sons. */
45770
53699
  virtual int Sons () const = 0;
 
53700
  /** Get the n-th son.
 
53701
   *  \param n The index of the son.
 
53702
   *  \return The n-th son or NULL. */
45771
53703
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
53704
  /** Get the node name (node identifier). */
45772
53705
  virtual const char *NodeName () const = 0;
 
53706
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
53707
   *  \return The token or NULL. */
45773
53708
  virtual Token *token () const;
 
53709
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
53710
   *  \return The token or NULL. */
45774
53711
  virtual Token *end_token () const;
 
53712
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
53713
   *  \return The token node or NULL. */
45775
53714
  virtual CT_Token *token_node () const;
 
53715
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
53716
   *  \return The token node or NULL. */
45776
53717
  virtual CT_Token *end_token_node () const;
45777
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
53718
  /** Replace a son.
 
53719
   *  \param old_son The son to replace.
 
53720
   *  \param new_son The son with which to replace. */
 
53721
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
53722
  /** Get the parent node.
 
53723
   *  \return The parent node or NULL. */
 
53724
  virtual CTree *Parent () const { return (CTree*)_parent; }
45778
53725
 
45779
53726
public: // semantic information
 
53727
  /** Get the semantic type of the node.
 
53728
   *  \return The type object or NULL. */
45780
53729
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
53730
  /** Get the calculated value of the expression.
 
53731
   *  \return The value object or NULL. */
45781
53732
  virtual CExprValue *Value () const { return (CExprValue*)0; }
45782
53733
  
 
53734
  /** Get the semantic scope of the node.
 
53735
   *  \return The scope object or NULL. */
 
53736
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
53737
  /** Get the semantic value of the node.
 
53738
   *  \return The value object or NULL. */
45783
53739
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
53740
  /** Get the semantic object of the node.
 
53741
   *  \return The semantic object or NULL. */
45784
53742
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
45785
53743
  
45786
53744
public: // node classification function
 
53745
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
53746
   *  \return The CT_SimpleName node or NULL. */
45787
53747
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
53748
  /** Get a pointer to CT_String if the current node represents a string.
 
53749
   *  \return The CT_String node or NULL. */
 
53750
  virtual CT_String *IsString () { return 0; }
 
53751
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
53752
   *  \return The CT_Declarator pointer or NULL. */
45788
53753
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
53754
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
53755
   *  \return The CT_Statement pointer or NULL. */
 
53756
  virtual CT_Statement *IsStatement () { return 0; }
 
53757
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
53758
   *  \return The CT_Expression pointer or NULL. */
 
53759
  virtual CT_Expression *IsExpression () { return 0; }
 
53760
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
53761
   *  \return The CT_Decl pointer or NULL. */
 
53762
  virtual CT_Decl *IsDeclaration () { return 0; }
 
53763
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
53764
   *  \return The CT_Call pointer or NULL. */
 
53765
  virtual CT_Call *IsCall () { return 0; }
45789
53766
   private:
45790
53767
  typedef CTree CCExprResolveCTree;
45791
53768
 
45792
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
53769
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45793
53770
 public :
45794
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
53771
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45795
53772
  typedef CTree CExprResolveCTree;
45796
53773
 
45797
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
53774
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45798
53775
 public :
45799
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45800
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53776
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
53777
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45801
53778
};
45802
53779
 
 
53780
/** \class CT_Error CTree.h Puma/CTree.h
 
53781
 *  Error tree node that is inserted into the tree for syntactic constructs
 
53782
 *  that could not be parsed. */
45803
53783
 
45804
 
#line 45805 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53784
#line 53785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
45805
53785
} // closed Puma
 
53786
class CCExprResolve;
 
53787
class CExprResolve;
45806
53788
class WinIfExists;
45807
53789
class WinImportHandler;
45808
53790
class WinMacros;
45809
 
class CMatchSyntax;
45810
 
class ExtGnu;
 
53791
class WinAsm;
 
53792
class WinDeclSpecs;
 
53793
class WinMemberExplSpec;
 
53794
class WinTypeKeywords;
 
53795
class WinFriend;
45811
53796
class ExtAC;
45812
53797
class ExtACBuilderCoupling;
45813
53798
class ExtACSyntaxCoupling;
45814
53799
class ExtACTree;
45815
53800
class ExtACKeywords;
45816
 
class WinAsm;
45817
 
class WinDeclSpecs;
45818
 
class WinMemberExplSpec;
45819
 
class WinTypeKeywords;
 
53801
class ExtGnu;
45820
53802
class PragmaOnceUnitState;
45821
53803
class PragmaOnce;
45822
 
class CCExprResolve;
45823
 
class CExprResolve;
 
53804
class CMatchSyntax;
45824
53805
namespace Puma {
45825
53806
 
45826
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53807
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45827
53808
class CT_Error : public CTree {
45828
 
#line 45829 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53809
#line 53810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53810
  friend class ::CCExprResolve;
 
53811
  friend class ::CExprResolve;
45829
53812
  friend class ::WinIfExists;
45830
53813
  friend class ::WinImportHandler;
45831
53814
  friend class ::WinMacros;
45832
 
  friend class ::CMatchSyntax;
45833
 
  friend class ::ExtGnu;
 
53815
  friend class ::WinAsm;
 
53816
  friend class ::WinDeclSpecs;
 
53817
  friend class ::WinMemberExplSpec;
 
53818
  friend class ::WinTypeKeywords;
 
53819
  friend class ::WinFriend;
45834
53820
  friend class ::ExtAC;
45835
53821
  friend class ::ExtACBuilderCoupling;
45836
53822
  friend class ::ExtACSyntaxCoupling;
45837
53823
  friend class ::ExtACTree;
45838
53824
  friend class ::ExtACKeywords;
45839
 
  friend class ::WinAsm;
45840
 
  friend class ::WinDeclSpecs;
45841
 
  friend class ::WinMemberExplSpec;
45842
 
  friend class ::WinTypeKeywords;
 
53825
  friend class ::ExtGnu;
45843
53826
  friend class ::PragmaOnceUnitState;
45844
53827
  friend class ::PragmaOnce;
45845
 
  friend class ::CCExprResolve;
45846
 
  friend class ::CExprResolve;
 
53828
  friend class ::CMatchSyntax;
45847
53829
 
45848
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53830
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45849
53831
 
45850
53832
public:
 
53833
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45851
53834
  static const char *NodeId ();
 
53835
  /** Get the name of the node. Can be compared with NodeId(). */
45852
53836
  const char *NodeName () const { return NodeId (); }
 
53837
  /** Get the number of sons. */
45853
53838
  int Sons () const { return 0; }
45854
53839
};
45855
53840
 
 
53841
/** \class CT_Token CTree.h Puma/CTree.h
 
53842
 *  Tree node representing a single token in the source code. */
45856
53843
 
45857
 
#line 45858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53844
#line 53845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
45858
53845
} // closed Puma
 
53846
class CCExprResolve;
 
53847
class CExprResolve;
45859
53848
class WinIfExists;
45860
53849
class WinImportHandler;
45861
53850
class WinMacros;
45862
 
class CMatchSyntax;
45863
 
class ExtGnu;
 
53851
class WinAsm;
 
53852
class WinDeclSpecs;
 
53853
class WinMemberExplSpec;
 
53854
class WinTypeKeywords;
 
53855
class WinFriend;
45864
53856
class ExtAC;
45865
53857
class ExtACBuilderCoupling;
45866
53858
class ExtACSyntaxCoupling;
45867
53859
class ExtACTree;
45868
53860
class ExtACKeywords;
45869
 
class WinAsm;
45870
 
class WinDeclSpecs;
45871
 
class WinMemberExplSpec;
45872
 
class WinTypeKeywords;
 
53861
class ExtGnu;
45873
53862
class PragmaOnceUnitState;
45874
53863
class PragmaOnce;
45875
 
class CCExprResolve;
45876
 
class CExprResolve;
 
53864
class CMatchSyntax;
45877
53865
namespace Puma {
45878
53866
 
45879
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53867
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45880
53868
class CT_Token : public CTree {
45881
 
#line 45882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53869
#line 53870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53870
  friend class ::CCExprResolve;
 
53871
  friend class ::CExprResolve;
45882
53872
  friend class ::WinIfExists;
45883
53873
  friend class ::WinImportHandler;
45884
53874
  friend class ::WinMacros;
45885
 
  friend class ::CMatchSyntax;
45886
 
  friend class ::ExtGnu;
 
53875
  friend class ::WinAsm;
 
53876
  friend class ::WinDeclSpecs;
 
53877
  friend class ::WinMemberExplSpec;
 
53878
  friend class ::WinTypeKeywords;
 
53879
  friend class ::WinFriend;
45887
53880
  friend class ::ExtAC;
45888
53881
  friend class ::ExtACBuilderCoupling;
45889
53882
  friend class ::ExtACSyntaxCoupling;
45890
53883
  friend class ::ExtACTree;
45891
53884
  friend class ::ExtACKeywords;
45892
 
  friend class ::WinAsm;
45893
 
  friend class ::WinDeclSpecs;
45894
 
  friend class ::WinMemberExplSpec;
45895
 
  friend class ::WinTypeKeywords;
 
53885
  friend class ::ExtGnu;
45896
53886
  friend class ::PragmaOnceUnitState;
45897
53887
  friend class ::PragmaOnce;
45898
 
  friend class ::CCExprResolve;
45899
 
  friend class ::CExprResolve;
 
53888
  friend class ::CMatchSyntax;
45900
53889
 
45901
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53890
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45902
53891
 
45903
53892
  Token *_token;
45904
53893
  unsigned long int _number;
45905
53894
  
45906
53895
public:
45907
 
  CT_Token (Token *t, unsigned long int n = 0) : 
45908
 
    _token (t), _number (n) {}
 
53896
  /** Constructor. 
 
53897
   *  \param token The represented token.
 
53898
   *  \param number The token number (a consecutive number). */
 
53899
  CT_Token (Token *token, unsigned long int number = 0) : 
 
53900
    _token (token), _number (number) {}
 
53901
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45909
53902
  static const char *NodeId ();
 
53903
  /** Get the name of the node. Can be compared with NodeId(). */
45910
53904
  const char *NodeName () const { return NodeId (); }
 
53905
  /** Get the number of sons. */
45911
53906
  int Sons () const { return 0; }
 
53907
  /** Get the represented token. */
45912
53908
  Token *token () const { return _token; }
 
53909
  /** Get the represented token. */
45913
53910
  Token *end_token () const { return _token; }
 
53911
  /** Get this. */
45914
53912
  CT_Token *token_node () const { return (CT_Token*)this; }
 
53913
  /** Get this. */
45915
53914
  CT_Token *end_token_node () const { return (CT_Token*)this; }
45916
 
  void Number (unsigned long int n) { _number = n; }
 
53915
  /** Set the token number. 
 
53916
   *  \param number The token number. */ 
 
53917
  void Number (unsigned long int number) { _number = number; }
 
53918
  /** Get the token number. Can be used to indentify this token. */
45917
53919
  unsigned long int Number () const { return _number; }
45918
 
  // special new / delete with reusing memory
 
53920
  
 
53921
public:
 
53922
  /** Own new operator reusing memory. */
45919
53923
  void *operator new (size_t);
45920
 
  void  operator delete (void *);
 
53924
  /** Own delete operator. */
 
53925
  void operator delete (void *);
45921
53926
};
45922
53927
 
45923
53928
/*****************************************************************************/
45926
53931
/*                                                                           */
45927
53932
/*****************************************************************************/
45928
53933
 
 
53934
/** \class CT_List CTree.h Puma/CTree.h
 
53935
 *  Base class for tree nodes representing lists. */
45929
53936
 
45930
 
#line 45931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53937
#line 53938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
45931
53938
} // closed Puma
 
53939
class CCExprResolve;
 
53940
class CExprResolve;
45932
53941
class WinIfExists;
45933
53942
class WinImportHandler;
45934
53943
class WinMacros;
45935
 
class CMatchSyntax;
45936
 
class ExtGnu;
 
53944
class WinAsm;
 
53945
class WinDeclSpecs;
 
53946
class WinMemberExplSpec;
 
53947
class WinTypeKeywords;
 
53948
class WinFriend;
45937
53949
class ExtAC;
45938
53950
class ExtACBuilderCoupling;
45939
53951
class ExtACSyntaxCoupling;
45940
53952
class ExtACTree;
45941
53953
class ExtACKeywords;
45942
 
class WinAsm;
45943
 
class WinDeclSpecs;
45944
 
class WinMemberExplSpec;
45945
 
class WinTypeKeywords;
 
53954
class ExtGnu;
45946
53955
class PragmaOnceUnitState;
45947
53956
class PragmaOnce;
45948
 
class CCExprResolve;
45949
 
class CExprResolve;
 
53957
class CMatchSyntax;
45950
53958
namespace Puma {
45951
53959
 
45952
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53960
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45953
53961
class CT_List : public CTree {
45954
 
#line 45955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
53962
#line 53963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
53963
  friend class ::CCExprResolve;
 
53964
  friend class ::CExprResolve;
45955
53965
  friend class ::WinIfExists;
45956
53966
  friend class ::WinImportHandler;
45957
53967
  friend class ::WinMacros;
45958
 
  friend class ::CMatchSyntax;
45959
 
  friend class ::ExtGnu;
 
53968
  friend class ::WinAsm;
 
53969
  friend class ::WinDeclSpecs;
 
53970
  friend class ::WinMemberExplSpec;
 
53971
  friend class ::WinTypeKeywords;
 
53972
  friend class ::WinFriend;
45960
53973
  friend class ::ExtAC;
45961
53974
  friend class ::ExtACBuilderCoupling;
45962
53975
  friend class ::ExtACSyntaxCoupling;
45963
53976
  friend class ::ExtACTree;
45964
53977
  friend class ::ExtACKeywords;
45965
 
  friend class ::WinAsm;
45966
 
  friend class ::WinDeclSpecs;
45967
 
  friend class ::WinMemberExplSpec;
45968
 
  friend class ::WinTypeKeywords;
 
53978
  friend class ::ExtGnu;
45969
53979
  friend class ::PragmaOnceUnitState;
45970
53980
  friend class ::PragmaOnce;
45971
 
  friend class ::CCExprResolve;
45972
 
  friend class ::CExprResolve;
 
53981
  friend class ::CMatchSyntax;
45973
53982
 
45974
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53983
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45975
53984
 
45976
53985
  Array<CTree*> _sons;
45977
53986
  int _properties;
45978
53987
 
45979
53988
protected:
 
53989
  /** Constructor.
 
53990
   *  \param size The initial list size.
 
53991
   *  \param incr The initial increment count. 
 
53992
   *  \param props The list properties (bit array). */
45980
53993
  CT_List(int size = 5, int incr = 5, int props = 0) : 
45981
53994
    _sons (size, incr), _properties (props) {}
45982
53995
 
45983
53996
public:
 
53997
  /** List properties. */
45984
53998
  enum {
45985
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
45986
 
    CLOSE = 2,
45987
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
45988
 
    SEPARATORS = 4,   // the list has separators like ','
45989
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
45990
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
45991
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
45992
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
53999
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
54000
    CLOSE = 2,        /** List has an end token */
 
54001
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
54002
    SEPARATORS = 4,   /** List has separators, like ',' */
 
54003
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
54004
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
54005
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
54006
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
45993
54007
  };
45994
54008
 
 
54009
  /** Get the number of list entries. */
45995
54010
  int Entries () const;
45996
 
  CTree *Entry (int no) const;
 
54011
  /** Get the n-th list entry.
 
54012
   *  \param n The index of the entry. 
 
54013
   *  \return The list entry or NULL. */
 
54014
  CTree *Entry (int n) const;
 
54015
  /** Get the number of sons. */
45997
54016
  int Sons () const { return _sons.length (); }
 
54017
  /** Get the n-th son.
 
54018
   *  \param n The index of the son. 
 
54019
   *  \return The n-th son or NULL. */
45998
54020
  CTree *Son (int n) const { return _sons.lookup (n); }
 
54021
  /** Get the list properties. */
45999
54022
  int GetProperties () const { return _properties; }
 
54023
  /** Add a list property.
 
54024
   *  \param p The property to add. */
46000
54025
  void AddProperties (int p) { _properties |= p; }
46001
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
46002
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
46003
 
  void InsertSon (CTree *, CTree *);  // before given son
46004
 
  void ReplaceSon (CTree *, CTree *);
46005
 
  void RemoveSon (CTree *);
 
54026
  /** Add a son.
 
54027
   *  \param s The son to add. */
 
54028
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
54029
  /** Prepend a son.
 
54030
   *  \param s The son to prepend. */
 
54031
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
54032
  /** Insert a son before another son.
 
54033
   *  \param before The son to insert the new son before.
 
54034
   *  \param son The son to insert. */
 
54035
  void InsertSon (CTree *before, CTree *son); 
 
54036
  /** Replace a son.
 
54037
   *  \param old_son The son to replace.
 
54038
   *  \param new_son The new son. */
 
54039
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
54040
  /** Remove a son.
 
54041
   *  \param son The son to remove. */
 
54042
  void RemoveSon (CTree *son);
 
54043
  /** Insert a son at the given index. 
 
54044
   *  \param idx The index at which to insert.
 
54045
   *  \param s The son to insert. */
46006
54046
  void InsertSon (int idx, CTree *s)
46007
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
54047
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
54048
  /** Replace the son at the given index.
 
54049
   *  \param idx The index of the son to replace.
 
54050
   *  \param s The new son. */
46008
54051
  void ReplaceSon (int idx, CTree *s) 
46009
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
54052
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
54053
  /** Remove the son at the given index. 
 
54054
   *  \param idx The index of the son to remove. */
46010
54055
  void RemoveSon (int idx) 
46011
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
54056
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
46012
54057
};
46013
54058
 
 
54059
/** \class CT_ExprList CTree.h Puma/CTree.h
 
54060
 *  Tree node representing an expression list. */
46014
54061
 
46015
 
#line 46016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54062
#line 54063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46016
54063
} // closed Puma
 
54064
class CCExprResolve;
 
54065
class CExprResolve;
46017
54066
class WinIfExists;
46018
54067
class WinImportHandler;
46019
54068
class WinMacros;
46020
 
class CMatchSyntax;
46021
 
class ExtGnu;
 
54069
class WinAsm;
 
54070
class WinDeclSpecs;
 
54071
class WinMemberExplSpec;
 
54072
class WinTypeKeywords;
 
54073
class WinFriend;
46022
54074
class ExtAC;
46023
54075
class ExtACBuilderCoupling;
46024
54076
class ExtACSyntaxCoupling;
46025
54077
class ExtACTree;
46026
54078
class ExtACKeywords;
46027
 
class WinAsm;
46028
 
class WinDeclSpecs;
46029
 
class WinMemberExplSpec;
46030
 
class WinTypeKeywords;
 
54079
class ExtGnu;
46031
54080
class PragmaOnceUnitState;
46032
54081
class PragmaOnce;
46033
 
class CCExprResolve;
46034
 
class CExprResolve;
 
54082
class CMatchSyntax;
46035
54083
namespace Puma {
46036
54084
 
46037
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54085
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46038
54086
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
46039
 
#line 46040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54087
#line 54088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54088
  friend class ::CCExprResolve;
 
54089
  friend class ::CExprResolve;
46040
54090
  friend class ::WinIfExists;
46041
54091
  friend class ::WinImportHandler;
46042
54092
  friend class ::WinMacros;
46043
 
  friend class ::CMatchSyntax;
46044
 
  friend class ::ExtGnu;
 
54093
  friend class ::WinAsm;
 
54094
  friend class ::WinDeclSpecs;
 
54095
  friend class ::WinMemberExplSpec;
 
54096
  friend class ::WinTypeKeywords;
 
54097
  friend class ::WinFriend;
46045
54098
  friend class ::ExtAC;
46046
54099
  friend class ::ExtACBuilderCoupling;
46047
54100
  friend class ::ExtACSyntaxCoupling;
46048
54101
  friend class ::ExtACTree;
46049
54102
  friend class ::ExtACKeywords;
46050
 
  friend class ::WinAsm;
46051
 
  friend class ::WinDeclSpecs;
46052
 
  friend class ::WinMemberExplSpec;
46053
 
  friend class ::WinTypeKeywords;
 
54103
  friend class ::ExtGnu;
46054
54104
  friend class ::PragmaOnceUnitState;
46055
54105
  friend class ::PragmaOnce;
46056
 
  friend class ::CCExprResolve;
46057
 
  friend class ::CExprResolve;
 
54106
  friend class ::CMatchSyntax;
46058
54107
 
46059
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54108
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46060
54109
 
46061
54110
public:
 
54111
  /** Constructor. */
46062
54112
  CT_ExprList () { AddProperties (SEPARATORS); }
 
54113
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46063
54114
  static const char *NodeId ();
 
54115
  /** Get the name of the node. Can be compared with NodeId(). */
46064
54116
  const char *NodeName () const { return NodeId (); }
46065
54117
 
 
54118
  /** Get the type of the last expression in the expression list.
 
54119
   *  \return The type or NULL. */
46066
54120
  CTypeInfo *Type () const { return type; }
 
54121
  /** Get the value of the last expression in the expression list.
 
54122
   *  \return The value of NULL. */
46067
54123
  CExprValue *Value () const { return value; }
 
54124
  /** Get the semantic value of the node. */
46068
54125
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
54126
  /** Get the semantic object of the node. */
46069
54127
  CSemObject *SemObject () const { return (CSemObject*)this; }
46070
54128
};
46071
54129
 
 
54130
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
54131
 *  Tree node representing a list of declarators. */
46072
54132
 
46073
 
#line 46074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54133
#line 54134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46074
54134
} // closed Puma
 
54135
class CCExprResolve;
 
54136
class CExprResolve;
46075
54137
class WinIfExists;
46076
54138
class WinImportHandler;
46077
54139
class WinMacros;
46078
 
class CMatchSyntax;
46079
 
class ExtGnu;
 
54140
class WinAsm;
 
54141
class WinDeclSpecs;
 
54142
class WinMemberExplSpec;
 
54143
class WinTypeKeywords;
 
54144
class WinFriend;
46080
54145
class ExtAC;
46081
54146
class ExtACBuilderCoupling;
46082
54147
class ExtACSyntaxCoupling;
46083
54148
class ExtACTree;
46084
54149
class ExtACKeywords;
46085
 
class WinAsm;
46086
 
class WinDeclSpecs;
46087
 
class WinMemberExplSpec;
46088
 
class WinTypeKeywords;
 
54150
class ExtGnu;
46089
54151
class PragmaOnceUnitState;
46090
54152
class PragmaOnce;
46091
 
class CCExprResolve;
46092
 
class CExprResolve;
 
54153
class CMatchSyntax;
46093
54154
namespace Puma {
46094
54155
 
46095
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54156
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46096
54157
class CT_DeclaratorList : public CT_List {
46097
 
#line 46098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54158
#line 54159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54159
  friend class ::CCExprResolve;
 
54160
  friend class ::CExprResolve;
46098
54161
  friend class ::WinIfExists;
46099
54162
  friend class ::WinImportHandler;
46100
54163
  friend class ::WinMacros;
46101
 
  friend class ::CMatchSyntax;
46102
 
  friend class ::ExtGnu;
 
54164
  friend class ::WinAsm;
 
54165
  friend class ::WinDeclSpecs;
 
54166
  friend class ::WinMemberExplSpec;
 
54167
  friend class ::WinTypeKeywords;
 
54168
  friend class ::WinFriend;
46103
54169
  friend class ::ExtAC;
46104
54170
  friend class ::ExtACBuilderCoupling;
46105
54171
  friend class ::ExtACSyntaxCoupling;
46106
54172
  friend class ::ExtACTree;
46107
54173
  friend class ::ExtACKeywords;
46108
 
  friend class ::WinAsm;
46109
 
  friend class ::WinDeclSpecs;
46110
 
  friend class ::WinMemberExplSpec;
46111
 
  friend class ::WinTypeKeywords;
 
54174
  friend class ::ExtGnu;
46112
54175
  friend class ::PragmaOnceUnitState;
46113
54176
  friend class ::PragmaOnce;
46114
 
  friend class ::CCExprResolve;
46115
 
  friend class ::CExprResolve;
 
54177
  friend class ::CMatchSyntax;
46116
54178
 
46117
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54179
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46118
54180
 
46119
54181
public:
 
54182
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46120
54183
  static const char *NodeId ();
 
54184
  /** Get the name of the node. Can be compared with NodeId(). */
46121
54185
  const char *NodeName () const { return NodeId (); }
46122
54186
};
46123
54187
 
 
54188
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
54189
 *  Tree node representing a list of enumerator constants. */
46124
54190
 
46125
 
#line 46126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54191
#line 54192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46126
54192
} // closed Puma
 
54193
class CCExprResolve;
 
54194
class CExprResolve;
46127
54195
class WinIfExists;
46128
54196
class WinImportHandler;
46129
54197
class WinMacros;
46130
 
class CMatchSyntax;
46131
 
class ExtGnu;
 
54198
class WinAsm;
 
54199
class WinDeclSpecs;
 
54200
class WinMemberExplSpec;
 
54201
class WinTypeKeywords;
 
54202
class WinFriend;
46132
54203
class ExtAC;
46133
54204
class ExtACBuilderCoupling;
46134
54205
class ExtACSyntaxCoupling;
46135
54206
class ExtACTree;
46136
54207
class ExtACKeywords;
46137
 
class WinAsm;
46138
 
class WinDeclSpecs;
46139
 
class WinMemberExplSpec;
46140
 
class WinTypeKeywords;
 
54208
class ExtGnu;
46141
54209
class PragmaOnceUnitState;
46142
54210
class PragmaOnce;
46143
 
class CCExprResolve;
46144
 
class CExprResolve;
 
54211
class CMatchSyntax;
46145
54212
namespace Puma {
46146
54213
 
46147
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54214
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46148
54215
class CT_EnumeratorList : public CT_List {
46149
 
#line 46150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54216
#line 54217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54217
  friend class ::CCExprResolve;
 
54218
  friend class ::CExprResolve;
46150
54219
  friend class ::WinIfExists;
46151
54220
  friend class ::WinImportHandler;
46152
54221
  friend class ::WinMacros;
46153
 
  friend class ::CMatchSyntax;
46154
 
  friend class ::ExtGnu;
 
54222
  friend class ::WinAsm;
 
54223
  friend class ::WinDeclSpecs;
 
54224
  friend class ::WinMemberExplSpec;
 
54225
  friend class ::WinTypeKeywords;
 
54226
  friend class ::WinFriend;
46155
54227
  friend class ::ExtAC;
46156
54228
  friend class ::ExtACBuilderCoupling;
46157
54229
  friend class ::ExtACSyntaxCoupling;
46158
54230
  friend class ::ExtACTree;
46159
54231
  friend class ::ExtACKeywords;
46160
 
  friend class ::WinAsm;
46161
 
  friend class ::WinDeclSpecs;
46162
 
  friend class ::WinMemberExplSpec;
46163
 
  friend class ::WinTypeKeywords;
 
54232
  friend class ::ExtGnu;
46164
54233
  friend class ::PragmaOnceUnitState;
46165
54234
  friend class ::PragmaOnce;
46166
 
  friend class ::CCExprResolve;
46167
 
  friend class ::CExprResolve;
 
54235
  friend class ::CMatchSyntax;
46168
54236
 
46169
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54237
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46170
54238
 
46171
54239
public:
 
54240
  /** Constructor. */
46172
54241
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
54242
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46173
54243
  static const char *NodeId ();
 
54244
  /** Get the name of the node. Can be compared with NodeId(). */
46174
54245
  const char *NodeName () const { return NodeId (); }
46175
54246
};
46176
54247
   
 
54248
/** \class CT_DeclList CTree.h Puma/CTree.h
 
54249
 *  Tree node representing a list of declarations. */
46177
54250
 
46178
 
#line 46179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54251
#line 54252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46179
54252
} // closed Puma
 
54253
class CCExprResolve;
 
54254
class CExprResolve;
46180
54255
class WinIfExists;
46181
54256
class WinImportHandler;
46182
54257
class WinMacros;
46183
 
class CMatchSyntax;
46184
 
class ExtGnu;
 
54258
class WinAsm;
 
54259
class WinDeclSpecs;
 
54260
class WinMemberExplSpec;
 
54261
class WinTypeKeywords;
 
54262
class WinFriend;
46185
54263
class ExtAC;
46186
54264
class ExtACBuilderCoupling;
46187
54265
class ExtACSyntaxCoupling;
46188
54266
class ExtACTree;
46189
54267
class ExtACKeywords;
46190
 
class WinAsm;
46191
 
class WinDeclSpecs;
46192
 
class WinMemberExplSpec;
46193
 
class WinTypeKeywords;
 
54268
class ExtGnu;
46194
54269
class PragmaOnceUnitState;
46195
54270
class PragmaOnce;
46196
 
class CCExprResolve;
46197
 
class CExprResolve;
 
54271
class CMatchSyntax;
46198
54272
namespace Puma {
46199
54273
 
46200
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54274
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46201
54275
class CT_DeclList : public CT_List {
46202
 
#line 46203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54276
#line 54277 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54277
  friend class ::CCExprResolve;
 
54278
  friend class ::CExprResolve;
46203
54279
  friend class ::WinIfExists;
46204
54280
  friend class ::WinImportHandler;
46205
54281
  friend class ::WinMacros;
46206
 
  friend class ::CMatchSyntax;
46207
 
  friend class ::ExtGnu;
 
54282
  friend class ::WinAsm;
 
54283
  friend class ::WinDeclSpecs;
 
54284
  friend class ::WinMemberExplSpec;
 
54285
  friend class ::WinTypeKeywords;
 
54286
  friend class ::WinFriend;
46208
54287
  friend class ::ExtAC;
46209
54288
  friend class ::ExtACBuilderCoupling;
46210
54289
  friend class ::ExtACSyntaxCoupling;
46211
54290
  friend class ::ExtACTree;
46212
54291
  friend class ::ExtACKeywords;
46213
 
  friend class ::WinAsm;
46214
 
  friend class ::WinDeclSpecs;
46215
 
  friend class ::WinMemberExplSpec;
46216
 
  friend class ::WinTypeKeywords;
 
54292
  friend class ::ExtGnu;
46217
54293
  friend class ::PragmaOnceUnitState;
46218
54294
  friend class ::PragmaOnce;
46219
 
  friend class ::CCExprResolve;
46220
 
  friend class ::CExprResolve;
 
54295
  friend class ::CMatchSyntax;
46221
54296
 
46222
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54297
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46223
54298
 
46224
54299
public:
 
54300
  /** Constructor. 
 
54301
   *  \param size The initial size of the list.
 
54302
   *  \param incr The initial increment count of the list. */
46225
54303
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
54304
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46226
54305
  static const char *NodeId ();
 
54306
  /** Get the name of the node. Can be compared with NodeId(). */
46227
54307
  const char *NodeName () const { return NodeId (); }
 
54308
  /** Set the linkage specifiers to each declaration in the list.
 
54309
   *  \param l The linkage specifiers node. */
46228
54310
  void Linkage (CT_LinkageSpec *l);
46229
54311
};
46230
54312
 
 
54313
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
54314
 *  Tree node representing a sequence of declaration specifiers. */
46231
54315
 
46232
 
#line 46233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54316
#line 54317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46233
54317
} // closed Puma
 
54318
class CCExprResolve;
 
54319
class CExprResolve;
46234
54320
class WinIfExists;
46235
54321
class WinImportHandler;
46236
54322
class WinMacros;
46237
 
class CMatchSyntax;
46238
 
class ExtGnu;
 
54323
class WinAsm;
 
54324
class WinDeclSpecs;
 
54325
class WinMemberExplSpec;
 
54326
class WinTypeKeywords;
 
54327
class WinFriend;
46239
54328
class ExtAC;
46240
54329
class ExtACBuilderCoupling;
46241
54330
class ExtACSyntaxCoupling;
46242
54331
class ExtACTree;
46243
54332
class ExtACKeywords;
46244
 
class WinAsm;
46245
 
class WinDeclSpecs;
46246
 
class WinMemberExplSpec;
46247
 
class WinTypeKeywords;
 
54333
class ExtGnu;
46248
54334
class PragmaOnceUnitState;
46249
54335
class PragmaOnce;
46250
 
class CCExprResolve;
46251
 
class CExprResolve;
 
54336
class CMatchSyntax;
46252
54337
namespace Puma {
46253
54338
 
46254
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54339
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46255
54340
class CT_DeclSpecSeq : public CT_List {
46256
 
#line 46257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54341
#line 54342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54342
  friend class ::CCExprResolve;
 
54343
  friend class ::CExprResolve;
46257
54344
  friend class ::WinIfExists;
46258
54345
  friend class ::WinImportHandler;
46259
54346
  friend class ::WinMacros;
46260
 
  friend class ::CMatchSyntax;
46261
 
  friend class ::ExtGnu;
 
54347
  friend class ::WinAsm;
 
54348
  friend class ::WinDeclSpecs;
 
54349
  friend class ::WinMemberExplSpec;
 
54350
  friend class ::WinTypeKeywords;
 
54351
  friend class ::WinFriend;
46262
54352
  friend class ::ExtAC;
46263
54353
  friend class ::ExtACBuilderCoupling;
46264
54354
  friend class ::ExtACSyntaxCoupling;
46265
54355
  friend class ::ExtACTree;
46266
54356
  friend class ::ExtACKeywords;
46267
 
  friend class ::WinAsm;
46268
 
  friend class ::WinDeclSpecs;
46269
 
  friend class ::WinMemberExplSpec;
46270
 
  friend class ::WinTypeKeywords;
 
54357
  friend class ::ExtGnu;
46271
54358
  friend class ::PragmaOnceUnitState;
46272
54359
  friend class ::PragmaOnce;
46273
 
  friend class ::CCExprResolve;
46274
 
  friend class ::CExprResolve;
 
54360
  friend class ::CMatchSyntax;
46275
54361
 
46276
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54362
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46277
54363
 
46278
54364
public:
 
54365
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46279
54366
  static const char *NodeId ();
 
54367
  /** Get the name of the node. Can be compared with NodeId(). */
46280
54368
  const char *NodeName () const { return NodeId (); }
46281
54369
};
46282
54370
 
 
54371
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
54372
 *  Tree node representing a compound statement. */
46283
54373
 
46284
 
#line 46285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54374
#line 54375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46285
54375
} // closed Puma
 
54376
class CCExprResolve;
 
54377
class CExprResolve;
46286
54378
class WinIfExists;
46287
54379
class WinImportHandler;
46288
54380
class WinMacros;
46289
 
class CMatchSyntax;
46290
 
class ExtGnu;
 
54381
class WinAsm;
 
54382
class WinDeclSpecs;
 
54383
class WinMemberExplSpec;
 
54384
class WinTypeKeywords;
 
54385
class WinFriend;
46291
54386
class ExtAC;
46292
54387
class ExtACBuilderCoupling;
46293
54388
class ExtACSyntaxCoupling;
46294
54389
class ExtACTree;
46295
54390
class ExtACKeywords;
46296
 
class WinAsm;
46297
 
class WinDeclSpecs;
46298
 
class WinMemberExplSpec;
46299
 
class WinTypeKeywords;
 
54391
class ExtGnu;
46300
54392
class PragmaOnceUnitState;
46301
54393
class PragmaOnce;
46302
 
class CCExprResolve;
46303
 
class CExprResolve;
 
54394
class CMatchSyntax;
46304
54395
namespace Puma {
46305
54396
 
46306
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54397
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46307
54398
class CT_CmpdStmt : public CT_List, public CSemScope {
46308
 
#line 46309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54399
#line 54400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54400
  friend class ::CCExprResolve;
 
54401
  friend class ::CExprResolve;
46309
54402
  friend class ::WinIfExists;
46310
54403
  friend class ::WinImportHandler;
46311
54404
  friend class ::WinMacros;
46312
 
  friend class ::CMatchSyntax;
46313
 
  friend class ::ExtGnu;
 
54405
  friend class ::WinAsm;
 
54406
  friend class ::WinDeclSpecs;
 
54407
  friend class ::WinMemberExplSpec;
 
54408
  friend class ::WinTypeKeywords;
 
54409
  friend class ::WinFriend;
46314
54410
  friend class ::ExtAC;
46315
54411
  friend class ::ExtACBuilderCoupling;
46316
54412
  friend class ::ExtACSyntaxCoupling;
46317
54413
  friend class ::ExtACTree;
46318
54414
  friend class ::ExtACKeywords;
46319
 
  friend class ::WinAsm;
46320
 
  friend class ::WinDeclSpecs;
46321
 
  friend class ::WinMemberExplSpec;
46322
 
  friend class ::WinTypeKeywords;
 
54415
  friend class ::ExtGnu;
46323
54416
  friend class ::PragmaOnceUnitState;
46324
54417
  friend class ::PragmaOnce;
46325
 
  friend class ::CCExprResolve;
46326
 
  friend class ::CExprResolve;
 
54418
  friend class ::CMatchSyntax;
46327
54419
 
46328
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54420
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46329
54421
 
46330
54422
public:
 
54423
  /* Constructor. */
46331
54424
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
54425
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46332
54426
  static const char *NodeId ();
 
54427
  /** Get the name of the node. Can be compared with NodeId(). */
46333
54428
  const char *NodeName () const { return NodeId (); }
 
54429
  /** Get the local scope of the compound statement. */
 
54430
  CSemScope *SemScope () const { return (CSemScope*)this; }
46334
54431
};
46335
54432
 
 
54433
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
54434
 *  Tree node representing an exception handler sequence. */
46336
54435
 
46337
 
#line 46338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54436
#line 54437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46338
54437
} // closed Puma
 
54438
class CCExprResolve;
 
54439
class CExprResolve;
46339
54440
class WinIfExists;
46340
54441
class WinImportHandler;
46341
54442
class WinMacros;
46342
 
class CMatchSyntax;
46343
 
class ExtGnu;
 
54443
class WinAsm;
 
54444
class WinDeclSpecs;
 
54445
class WinMemberExplSpec;
 
54446
class WinTypeKeywords;
 
54447
class WinFriend;
46344
54448
class ExtAC;
46345
54449
class ExtACBuilderCoupling;
46346
54450
class ExtACSyntaxCoupling;
46347
54451
class ExtACTree;
46348
54452
class ExtACKeywords;
46349
 
class WinAsm;
46350
 
class WinDeclSpecs;
46351
 
class WinMemberExplSpec;
46352
 
class WinTypeKeywords;
 
54453
class ExtGnu;
46353
54454
class PragmaOnceUnitState;
46354
54455
class PragmaOnce;
46355
 
class CCExprResolve;
46356
 
class CExprResolve;
 
54456
class CMatchSyntax;
46357
54457
namespace Puma {
46358
54458
 
46359
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54459
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46360
54460
class CT_HandlerSeq : public CT_List {
46361
 
#line 46362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54461
#line 54462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54462
  friend class ::CCExprResolve;
 
54463
  friend class ::CExprResolve;
46362
54464
  friend class ::WinIfExists;
46363
54465
  friend class ::WinImportHandler;
46364
54466
  friend class ::WinMacros;
46365
 
  friend class ::CMatchSyntax;
46366
 
  friend class ::ExtGnu;
 
54467
  friend class ::WinAsm;
 
54468
  friend class ::WinDeclSpecs;
 
54469
  friend class ::WinMemberExplSpec;
 
54470
  friend class ::WinTypeKeywords;
 
54471
  friend class ::WinFriend;
46367
54472
  friend class ::ExtAC;
46368
54473
  friend class ::ExtACBuilderCoupling;
46369
54474
  friend class ::ExtACSyntaxCoupling;
46370
54475
  friend class ::ExtACTree;
46371
54476
  friend class ::ExtACKeywords;
46372
 
  friend class ::WinAsm;
46373
 
  friend class ::WinDeclSpecs;
46374
 
  friend class ::WinMemberExplSpec;
46375
 
  friend class ::WinTypeKeywords;
 
54477
  friend class ::ExtGnu;
46376
54478
  friend class ::PragmaOnceUnitState;
46377
54479
  friend class ::PragmaOnce;
46378
 
  friend class ::CCExprResolve;
46379
 
  friend class ::CExprResolve;
 
54480
  friend class ::CMatchSyntax;
46380
54481
 
46381
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54482
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46382
54483
 
46383
54484
public:
 
54485
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46384
54486
  static const char *NodeId ();
 
54487
  /** Get the name of the node. Can be compared with NodeId(). */
46385
54488
  const char *NodeName () const { return NodeId (); }
46386
54489
};
46387
54490
 
 
54491
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
54492
 *  Tree node representing a template parameter list. */
46388
54493
 
46389
 
#line 46390 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54494
#line 54495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46390
54495
} // closed Puma
 
54496
class CCExprResolve;
 
54497
class CExprResolve;
46391
54498
class WinIfExists;
46392
54499
class WinImportHandler;
46393
54500
class WinMacros;
46394
 
class CMatchSyntax;
46395
 
class ExtGnu;
 
54501
class WinAsm;
 
54502
class WinDeclSpecs;
 
54503
class WinMemberExplSpec;
 
54504
class WinTypeKeywords;
 
54505
class WinFriend;
46396
54506
class ExtAC;
46397
54507
class ExtACBuilderCoupling;
46398
54508
class ExtACSyntaxCoupling;
46399
54509
class ExtACTree;
46400
54510
class ExtACKeywords;
46401
 
class WinAsm;
46402
 
class WinDeclSpecs;
46403
 
class WinMemberExplSpec;
46404
 
class WinTypeKeywords;
 
54511
class ExtGnu;
46405
54512
class PragmaOnceUnitState;
46406
54513
class PragmaOnce;
46407
 
class CCExprResolve;
46408
 
class CExprResolve;
 
54514
class CMatchSyntax;
46409
54515
namespace Puma {
46410
54516
 
46411
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54517
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46412
54518
class CT_TemplateParamList : public CT_List, public CSemScope {
46413
 
#line 46414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54519
#line 54520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54520
  friend class ::CCExprResolve;
 
54521
  friend class ::CExprResolve;
46414
54522
  friend class ::WinIfExists;
46415
54523
  friend class ::WinImportHandler;
46416
54524
  friend class ::WinMacros;
46417
 
  friend class ::CMatchSyntax;
46418
 
  friend class ::ExtGnu;
 
54525
  friend class ::WinAsm;
 
54526
  friend class ::WinDeclSpecs;
 
54527
  friend class ::WinMemberExplSpec;
 
54528
  friend class ::WinTypeKeywords;
 
54529
  friend class ::WinFriend;
46419
54530
  friend class ::ExtAC;
46420
54531
  friend class ::ExtACBuilderCoupling;
46421
54532
  friend class ::ExtACSyntaxCoupling;
46422
54533
  friend class ::ExtACTree;
46423
54534
  friend class ::ExtACKeywords;
46424
 
  friend class ::WinAsm;
46425
 
  friend class ::WinDeclSpecs;
46426
 
  friend class ::WinMemberExplSpec;
46427
 
  friend class ::WinTypeKeywords;
 
54535
  friend class ::ExtGnu;
46428
54536
  friend class ::PragmaOnceUnitState;
46429
54537
  friend class ::PragmaOnce;
46430
 
  friend class ::CCExprResolve;
46431
 
  friend class ::CExprResolve;
 
54538
  friend class ::CMatchSyntax;
46432
54539
 
46433
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54540
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46434
54541
 
46435
54542
public:
46436
54543
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
54544
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46437
54545
  static const char *NodeId ();
 
54546
  /** Get the name of the node. Can be compared with NodeId(). */
46438
54547
  const char *NodeName () const { return NodeId (); }
 
54548
  /** Get the scope of the template parameter list. */
 
54549
  CSemScope *SemScope () const { return (CSemScope*)this; }
46439
54550
};
46440
54551
 
 
54552
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
54553
 *  Tree node representing a template argument list. */
46441
54554
 
46442
 
#line 46443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54555
#line 54556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46443
54556
} // closed Puma
 
54557
class CCExprResolve;
 
54558
class CExprResolve;
46444
54559
class WinIfExists;
46445
54560
class WinImportHandler;
46446
54561
class WinMacros;
46447
 
class CMatchSyntax;
46448
 
class ExtGnu;
 
54562
class WinAsm;
 
54563
class WinDeclSpecs;
 
54564
class WinMemberExplSpec;
 
54565
class WinTypeKeywords;
 
54566
class WinFriend;
46449
54567
class ExtAC;
46450
54568
class ExtACBuilderCoupling;
46451
54569
class ExtACSyntaxCoupling;
46452
54570
class ExtACTree;
46453
54571
class ExtACKeywords;
46454
 
class WinAsm;
46455
 
class WinDeclSpecs;
46456
 
class WinMemberExplSpec;
46457
 
class WinTypeKeywords;
 
54572
class ExtGnu;
46458
54573
class PragmaOnceUnitState;
46459
54574
class PragmaOnce;
46460
 
class CCExprResolve;
46461
 
class CExprResolve;
 
54575
class CMatchSyntax;
46462
54576
namespace Puma {
46463
54577
 
46464
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54578
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46465
54579
class CT_TemplateArgList : public CT_List {
46466
 
#line 46467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54580
#line 54581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54581
  friend class ::CCExprResolve;
 
54582
  friend class ::CExprResolve;
46467
54583
  friend class ::WinIfExists;
46468
54584
  friend class ::WinImportHandler;
46469
54585
  friend class ::WinMacros;
46470
 
  friend class ::CMatchSyntax;
46471
 
  friend class ::ExtGnu;
 
54586
  friend class ::WinAsm;
 
54587
  friend class ::WinDeclSpecs;
 
54588
  friend class ::WinMemberExplSpec;
 
54589
  friend class ::WinTypeKeywords;
 
54590
  friend class ::WinFriend;
46472
54591
  friend class ::ExtAC;
46473
54592
  friend class ::ExtACBuilderCoupling;
46474
54593
  friend class ::ExtACSyntaxCoupling;
46475
54594
  friend class ::ExtACTree;
46476
54595
  friend class ::ExtACKeywords;
46477
 
  friend class ::WinAsm;
46478
 
  friend class ::WinDeclSpecs;
46479
 
  friend class ::WinMemberExplSpec;
46480
 
  friend class ::WinTypeKeywords;
 
54596
  friend class ::ExtGnu;
46481
54597
  friend class ::PragmaOnceUnitState;
46482
54598
  friend class ::PragmaOnce;
46483
 
  friend class ::CCExprResolve;
46484
 
  friend class ::CExprResolve;
 
54599
  friend class ::CMatchSyntax;
46485
54600
 
46486
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54601
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46487
54602
 
46488
54603
public:
 
54604
  /** Constructor. */
46489
54605
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
54606
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46490
54607
  static const char *NodeId ();
 
54608
  /** Get the name of the node. Can be compared with NodeId(). */
46491
54609
  const char *NodeName () const { return NodeId (); }
46492
54610
};
46493
54611
 
46497
54615
/*                                                                           */
46498
54616
/*****************************************************************************/
46499
54617
 
 
54618
/** \class CT_Expression CTree.h Puma/CTree.h
 
54619
 *  Base class for all expression tree nodes. */
46500
54620
 
46501
 
#line 46502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54621
#line 54622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46502
54622
} // closed Puma
 
54623
class CCExprResolve;
 
54624
class CExprResolve;
46503
54625
class WinIfExists;
46504
54626
class WinImportHandler;
46505
54627
class WinMacros;
46506
 
class CMatchSyntax;
46507
 
class ExtGnu;
 
54628
class WinAsm;
 
54629
class WinDeclSpecs;
 
54630
class WinMemberExplSpec;
 
54631
class WinTypeKeywords;
 
54632
class WinFriend;
46508
54633
class ExtAC;
46509
54634
class ExtACBuilderCoupling;
46510
54635
class ExtACSyntaxCoupling;
46511
54636
class ExtACTree;
46512
54637
class ExtACKeywords;
46513
 
class WinAsm;
46514
 
class WinDeclSpecs;
46515
 
class WinMemberExplSpec;
46516
 
class WinTypeKeywords;
 
54638
class ExtGnu;
46517
54639
class PragmaOnceUnitState;
46518
54640
class PragmaOnce;
46519
 
class CCExprResolve;
46520
 
class CExprResolve;
46521
 
namespace Puma {
46522
 
 
46523
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54641
class CMatchSyntax;
 
54642
namespace Puma {
 
54643
 
 
54644
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54645
 
 
54646
#line 54647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54647
} // closed Puma
 
54648
 
 
54649
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54650
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54651
#include "CCExprResolveH.ah"
 
54652
#endif
 
54653
namespace Puma {
 
54654
 
 
54655
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54656
 
 
54657
#line 54658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54658
} // closed Puma
 
54659
 
 
54660
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54661
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54662
#include "CExprResolveH.ah"
 
54663
#endif
 
54664
namespace Puma {
 
54665
 
 
54666
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46524
54667
class CT_Expression : public CTree, public CSemValue {
46525
 
#line 46526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54668
#line 54669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54669
  friend class ::CCExprResolve;
 
54670
  friend class ::CExprResolve;
46526
54671
  friend class ::WinIfExists;
46527
54672
  friend class ::WinImportHandler;
46528
54673
  friend class ::WinMacros;
46529
 
  friend class ::CMatchSyntax;
46530
 
  friend class ::ExtGnu;
 
54674
  friend class ::WinAsm;
 
54675
  friend class ::WinDeclSpecs;
 
54676
  friend class ::WinMemberExplSpec;
 
54677
  friend class ::WinTypeKeywords;
 
54678
  friend class ::WinFriend;
46531
54679
  friend class ::ExtAC;
46532
54680
  friend class ::ExtACBuilderCoupling;
46533
54681
  friend class ::ExtACSyntaxCoupling;
46534
54682
  friend class ::ExtACTree;
46535
54683
  friend class ::ExtACKeywords;
46536
 
  friend class ::WinAsm;
46537
 
  friend class ::WinDeclSpecs;
46538
 
  friend class ::WinMemberExplSpec;
46539
 
  friend class ::WinTypeKeywords;
 
54684
  friend class ::ExtGnu;
46540
54685
  friend class ::PragmaOnceUnitState;
46541
54686
  friend class ::PragmaOnce;
46542
 
  friend class ::CCExprResolve;
46543
 
  friend class ::CExprResolve;
 
54687
  friend class ::CMatchSyntax;
46544
54688
 
46545
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54689
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46546
54690
 
46547
54691
protected:
 
54692
  /** Constructor. */
46548
54693
  CT_Expression () {}
46549
54694
 
46550
54695
public:
 
54696
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46551
54697
  static const char *NodeId ();
 
54698
  /** Get the name of the node. Can be compared with NodeId(). */
46552
54699
  const char *NodeName () const { return NodeId (); }
 
54700
  /** Get the type of the expression.
 
54701
   *  \return The type information object or NULL. */
46553
54702
  CTypeInfo *Type () const { return type; }
 
54703
  /** Get the value of the expression.
 
54704
   *  \return The value object or NULL. */
46554
54705
  CExprValue *Value () const { return value; }
 
54706
  /** Get the semantic value information of the expression.
 
54707
   *  \return The value object or NULL. */
46555
54708
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
54709
  /** Get this. */
 
54710
  virtual CT_Expression *IsExpression () { return this; }
46556
54711
   private:
46557
54712
  typedef CT_Expression CCExprResolveExpr;
46558
54713
 
46559
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54714
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46560
54715
 public :
46561
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
54716
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46562
54717
  typedef CT_Expression CExprResolveExpr;
46563
54718
 
46564
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46565
 
 public :
46566
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46567
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46568
 
};
46569
 
 
46570
 
 
46571
 
#line 46572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
46572
 
} // closed Puma
46573
 
class WinIfExists;
46574
 
class WinImportHandler;
46575
 
class WinMacros;
46576
 
class CMatchSyntax;
46577
 
class ExtGnu;
46578
 
class ExtAC;
46579
 
class ExtACBuilderCoupling;
46580
 
class ExtACSyntaxCoupling;
46581
 
class ExtACTree;
46582
 
class ExtACKeywords;
46583
 
class WinAsm;
46584
 
class WinDeclSpecs;
46585
 
class WinMemberExplSpec;
46586
 
class WinTypeKeywords;
46587
 
class PragmaOnceUnitState;
46588
 
class PragmaOnce;
46589
 
class CCExprResolve;
46590
 
class CExprResolve;
46591
 
namespace Puma {
46592
 
 
46593
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54719
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54720
 public :
 
54721
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54722
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54723
};
 
54724
 
 
54725
/** \class CT_Call CTree.h Puma/CTree.h
 
54726
 *  Tree node representing explicit or implicit function calls 
 
54727
 *  including built-in or user-defined functions and overloaded
 
54728
 *  operators. */
 
54729
 
 
54730
#line 54731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54731
} // closed Puma
 
54732
class CCExprResolve;
 
54733
class CExprResolve;
 
54734
class WinIfExists;
 
54735
class WinImportHandler;
 
54736
class WinMacros;
 
54737
class WinAsm;
 
54738
class WinDeclSpecs;
 
54739
class WinMemberExplSpec;
 
54740
class WinTypeKeywords;
 
54741
class WinFriend;
 
54742
class ExtAC;
 
54743
class ExtACBuilderCoupling;
 
54744
class ExtACSyntaxCoupling;
 
54745
class ExtACTree;
 
54746
class ExtACKeywords;
 
54747
class ExtGnu;
 
54748
class PragmaOnceUnitState;
 
54749
class PragmaOnce;
 
54750
class CMatchSyntax;
 
54751
namespace Puma {
 
54752
 
 
54753
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54754
 
 
54755
#line 54756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54756
} // closed Puma
 
54757
 
 
54758
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54759
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54760
#include "CCExprResolveH.ah"
 
54761
#endif
 
54762
namespace Puma {
 
54763
 
 
54764
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54765
 
 
54766
#line 54767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54767
} // closed Puma
 
54768
 
 
54769
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54770
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54771
#include "CExprResolveH.ah"
 
54772
#endif
 
54773
namespace Puma {
 
54774
 
 
54775
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54776
class CT_Call : public CT_Expression, public CSemObject {
 
54777
#line 54778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54778
  friend class ::CCExprResolve;
 
54779
  friend class ::CExprResolve;
 
54780
  friend class ::WinIfExists;
 
54781
  friend class ::WinImportHandler;
 
54782
  friend class ::WinMacros;
 
54783
  friend class ::WinAsm;
 
54784
  friend class ::WinDeclSpecs;
 
54785
  friend class ::WinMemberExplSpec;
 
54786
  friend class ::WinTypeKeywords;
 
54787
  friend class ::WinFriend;
 
54788
  friend class ::ExtAC;
 
54789
  friend class ::ExtACBuilderCoupling;
 
54790
  friend class ::ExtACSyntaxCoupling;
 
54791
  friend class ::ExtACTree;
 
54792
  friend class ::ExtACKeywords;
 
54793
  friend class ::ExtGnu;
 
54794
  friend class ::PragmaOnceUnitState;
 
54795
  friend class ::PragmaOnce;
 
54796
  friend class ::CMatchSyntax;
 
54797
 
 
54798
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54799
 
 
54800
protected:
 
54801
  /** Constructor. */
 
54802
  CT_Call () {}
 
54803
  
 
54804
public:
 
54805
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54806
  static const char *NodeId ();
 
54807
  /** Get the name of the node. Can be compared with NodeId(). */
 
54808
  const char *NodeName () const { return NodeId (); }
 
54809
  /** Get the semantic information of the call.
 
54810
   *  \return The semantic information or NULL. */
 
54811
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
54812
  /** Get this. */
 
54813
  CT_Call *IsCall () { return this; }
 
54814
   private:
 
54815
  typedef CT_Call CCExprResolveExpr;
 
54816
 
 
54817
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54818
 public :
 
54819
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
54820
  typedef CT_Call CExprResolveExpr;
 
54821
 
 
54822
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54823
 public :
 
54824
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54825
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54826
};
 
54827
 
 
54828
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
54829
 *  Tree node representing implicit function calls detected by
 
54830
 *  the semantic analysis. */
 
54831
 
 
54832
#line 54833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54833
} // closed Puma
 
54834
class CCExprResolve;
 
54835
class CExprResolve;
 
54836
class WinIfExists;
 
54837
class WinImportHandler;
 
54838
class WinMacros;
 
54839
class WinAsm;
 
54840
class WinDeclSpecs;
 
54841
class WinMemberExplSpec;
 
54842
class WinTypeKeywords;
 
54843
class WinFriend;
 
54844
class ExtAC;
 
54845
class ExtACBuilderCoupling;
 
54846
class ExtACSyntaxCoupling;
 
54847
class ExtACTree;
 
54848
class ExtACKeywords;
 
54849
class ExtGnu;
 
54850
class PragmaOnceUnitState;
 
54851
class PragmaOnce;
 
54852
class CMatchSyntax;
 
54853
namespace Puma {
 
54854
 
 
54855
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54856
 
 
54857
#line 54858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54858
} // closed Puma
 
54859
 
 
54860
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54861
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54862
#include "CCExprResolveH.ah"
 
54863
#endif
 
54864
namespace Puma {
 
54865
 
 
54866
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54867
 
 
54868
#line 54869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54869
} // closed Puma
 
54870
 
 
54871
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54872
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54873
#include "CExprResolveH.ah"
 
54874
#endif
 
54875
namespace Puma {
 
54876
 
 
54877
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54878
class CT_ImplicitCall : public CT_Call {
 
54879
#line 54880 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54880
  friend class ::CCExprResolve;
 
54881
  friend class ::CExprResolve;
 
54882
  friend class ::WinIfExists;
 
54883
  friend class ::WinImportHandler;
 
54884
  friend class ::WinMacros;
 
54885
  friend class ::WinAsm;
 
54886
  friend class ::WinDeclSpecs;
 
54887
  friend class ::WinMemberExplSpec;
 
54888
  friend class ::WinTypeKeywords;
 
54889
  friend class ::WinFriend;
 
54890
  friend class ::ExtAC;
 
54891
  friend class ::ExtACBuilderCoupling;
 
54892
  friend class ::ExtACSyntaxCoupling;
 
54893
  friend class ::ExtACTree;
 
54894
  friend class ::ExtACKeywords;
 
54895
  friend class ::ExtGnu;
 
54896
  friend class ::PragmaOnceUnitState;
 
54897
  friend class ::PragmaOnce;
 
54898
  friend class ::CMatchSyntax;
 
54899
 
 
54900
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54901
 
 
54902
  CTree *_arg;
 
54903
 
 
54904
public:
 
54905
  /** Constructor.
 
54906
   *  \param arg The call argument. */
 
54907
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
54908
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54909
  static const char *NodeId ();
 
54910
  /** Get the name of the node. Can be compared with NodeId(). */
 
54911
  const char *NodeName () const { return NodeId (); }
 
54912
  /** Get the number of sons. */
 
54913
  int Sons () const { return 1; }
 
54914
  /** Get the n-th son.
 
54915
   *  \param n The index of the son.
 
54916
   *  \return The n-th son or NULL. */
 
54917
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
54918
  /** Replace a son.
 
54919
   *  \param old_son The son to replace.
 
54920
   *  \param new_son The new son. */
 
54921
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
54922
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
54923
   private:
 
54924
  typedef CT_ImplicitCall CCExprResolveExpr;
 
54925
 
 
54926
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54927
 public :
 
54928
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
54929
  typedef CT_ImplicitCall CExprResolveExpr;
 
54930
 
 
54931
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54932
 public :
 
54933
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54934
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54935
};
 
54936
 
 
54937
/** \class CT_String CTree.h Puma/CTree.h
 
54938
 *  Tree node representing a string literal. */
 
54939
 
 
54940
#line 54941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54941
} // closed Puma
 
54942
class CCExprResolve;
 
54943
class CExprResolve;
 
54944
class WinIfExists;
 
54945
class WinImportHandler;
 
54946
class WinMacros;
 
54947
class WinAsm;
 
54948
class WinDeclSpecs;
 
54949
class WinMemberExplSpec;
 
54950
class WinTypeKeywords;
 
54951
class WinFriend;
 
54952
class ExtAC;
 
54953
class ExtACBuilderCoupling;
 
54954
class ExtACSyntaxCoupling;
 
54955
class ExtACTree;
 
54956
class ExtACKeywords;
 
54957
class ExtGnu;
 
54958
class PragmaOnceUnitState;
 
54959
class PragmaOnce;
 
54960
class CMatchSyntax;
 
54961
namespace Puma {
 
54962
 
 
54963
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54964
 
 
54965
#line 54966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54966
} // closed Puma
 
54967
 
 
54968
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54969
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54970
#include "CCExprResolveH.ah"
 
54971
#endif
 
54972
namespace Puma {
 
54973
 
 
54974
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54975
 
 
54976
#line 54977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54977
} // closed Puma
 
54978
 
 
54979
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54980
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54981
#include "CExprResolveH.ah"
 
54982
#endif
 
54983
namespace Puma {
 
54984
 
 
54985
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46594
54986
class CT_String : public CT_List, public CSemValue {
46595
 
#line 46596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
54987
#line 54988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
54988
  friend class ::CCExprResolve;
 
54989
  friend class ::CExprResolve;
46596
54990
  friend class ::WinIfExists;
46597
54991
  friend class ::WinImportHandler;
46598
54992
  friend class ::WinMacros;
46599
 
  friend class ::CMatchSyntax;
46600
 
  friend class ::ExtGnu;
 
54993
  friend class ::WinAsm;
 
54994
  friend class ::WinDeclSpecs;
 
54995
  friend class ::WinMemberExplSpec;
 
54996
  friend class ::WinTypeKeywords;
 
54997
  friend class ::WinFriend;
46601
54998
  friend class ::ExtAC;
46602
54999
  friend class ::ExtACBuilderCoupling;
46603
55000
  friend class ::ExtACSyntaxCoupling;
46604
55001
  friend class ::ExtACTree;
46605
55002
  friend class ::ExtACKeywords;
46606
 
  friend class ::WinAsm;
46607
 
  friend class ::WinDeclSpecs;
46608
 
  friend class ::WinMemberExplSpec;
46609
 
  friend class ::WinTypeKeywords;
 
55003
  friend class ::ExtGnu;
46610
55004
  friend class ::PragmaOnceUnitState;
46611
55005
  friend class ::PragmaOnce;
46612
 
  friend class ::CCExprResolve;
46613
 
  friend class ::CExprResolve;
 
55006
  friend class ::CMatchSyntax;
46614
55007
 
46615
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55008
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46616
55009
 
46617
55010
public:
 
55011
  /** Constructor. 
 
55012
   *  \param size The number of sub-strings. */
46618
55013
  CT_String (int size) : CT_List (size, 1) {}
 
55014
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46619
55015
  static const char *NodeId ();
 
55016
  /** Get the name of the node. Can be compared with NodeId(). */
46620
55017
  const char *NodeName () const { return NodeId (); }
46621
55018
 
 
55019
  /** Get the type of the string. 
 
55020
   *  \return The type or NULL. */
46622
55021
  CTypeInfo *Type () const { return type; }
 
55022
  /** Get the string value.
 
55023
   *  \return The value or NULL. */
46623
55024
  CExprValue *Value () const { return value; }
 
55025
  /** Get the semantic value info object.
 
55026
   *  \return The semantic value object or NULL. */
46624
55027
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
55028
  /** Get this. */
 
55029
  virtual CT_String *IsString () { return this; }
46625
55030
   private:
46626
55031
  typedef CT_String CCExprResolveExpr;
46627
55032
 
46628
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55033
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46629
55034
 public :
46630
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55035
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46631
55036
  typedef CT_String CExprResolveExpr;
46632
55037
 
46633
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55038
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46634
55039
 public :
46635
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46636
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55040
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55041
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46637
55042
};
46638
55043
 
 
55044
/** \class CT_WideString CTree.h Puma/CTree.h
 
55045
 *  Tree node representing a wide string literal. */
46639
55046
 
46640
 
#line 46641 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55047
#line 55048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46641
55048
} // closed Puma
 
55049
class CCExprResolve;
 
55050
class CExprResolve;
46642
55051
class WinIfExists;
46643
55052
class WinImportHandler;
46644
55053
class WinMacros;
46645
 
class CMatchSyntax;
46646
 
class ExtGnu;
 
55054
class WinAsm;
 
55055
class WinDeclSpecs;
 
55056
class WinMemberExplSpec;
 
55057
class WinTypeKeywords;
 
55058
class WinFriend;
46647
55059
class ExtAC;
46648
55060
class ExtACBuilderCoupling;
46649
55061
class ExtACSyntaxCoupling;
46650
55062
class ExtACTree;
46651
55063
class ExtACKeywords;
46652
 
class WinAsm;
46653
 
class WinDeclSpecs;
46654
 
class WinMemberExplSpec;
46655
 
class WinTypeKeywords;
 
55064
class ExtGnu;
46656
55065
class PragmaOnceUnitState;
46657
55066
class PragmaOnce;
46658
 
class CCExprResolve;
46659
 
class CExprResolve;
46660
 
namespace Puma {
46661
 
 
46662
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55067
class CMatchSyntax;
 
55068
namespace Puma {
 
55069
 
 
55070
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55071
 
 
55072
#line 55073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55073
} // closed Puma
 
55074
 
 
55075
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55076
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55077
#include "CCExprResolveH.ah"
 
55078
#endif
 
55079
namespace Puma {
 
55080
 
 
55081
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55082
 
 
55083
#line 55084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55084
} // closed Puma
 
55085
 
 
55086
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55087
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55088
#include "CExprResolveH.ah"
 
55089
#endif
 
55090
namespace Puma {
 
55091
 
 
55092
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46663
55093
class CT_WideString : public CT_String {
46664
 
#line 46665 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55094
#line 55095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55095
  friend class ::CCExprResolve;
 
55096
  friend class ::CExprResolve;
46665
55097
  friend class ::WinIfExists;
46666
55098
  friend class ::WinImportHandler;
46667
55099
  friend class ::WinMacros;
46668
 
  friend class ::CMatchSyntax;
46669
 
  friend class ::ExtGnu;
 
55100
  friend class ::WinAsm;
 
55101
  friend class ::WinDeclSpecs;
 
55102
  friend class ::WinMemberExplSpec;
 
55103
  friend class ::WinTypeKeywords;
 
55104
  friend class ::WinFriend;
46670
55105
  friend class ::ExtAC;
46671
55106
  friend class ::ExtACBuilderCoupling;
46672
55107
  friend class ::ExtACSyntaxCoupling;
46673
55108
  friend class ::ExtACTree;
46674
55109
  friend class ::ExtACKeywords;
46675
 
  friend class ::WinAsm;
46676
 
  friend class ::WinDeclSpecs;
46677
 
  friend class ::WinMemberExplSpec;
46678
 
  friend class ::WinTypeKeywords;
 
55110
  friend class ::ExtGnu;
46679
55111
  friend class ::PragmaOnceUnitState;
46680
55112
  friend class ::PragmaOnce;
46681
 
  friend class ::CCExprResolve;
46682
 
  friend class ::CExprResolve;
 
55113
  friend class ::CMatchSyntax;
46683
55114
 
46684
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55115
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46685
55116
 
46686
55117
public:
 
55118
  /** Constructor.
 
55119
   *  \param size The number of sub-strings. */
46687
55120
  CT_WideString (int size) : CT_String (size) {}
 
55121
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46688
55122
  static const char *NodeId ();
 
55123
  /** Get the name of the node. Can be compared with NodeId(). */
46689
55124
  const char *NodeName () const { return NodeId (); }
46690
55125
   private:
46691
55126
  typedef CT_WideString CCExprResolveExpr;
46692
55127
 
46693
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55128
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46694
55129
 public :
46695
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55130
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46696
55131
  typedef CT_WideString CExprResolveExpr;
46697
55132
 
46698
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55133
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46699
55134
 public :
46700
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46701
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55135
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55136
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46702
55137
};
46703
55138
 
 
55139
/** \class CT_Integer CTree.h Puma/CTree.h
 
55140
 *  Tree node representing an integer constant. */
46704
55141
 
46705
 
#line 46706 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55142
#line 55143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46706
55143
} // closed Puma
 
55144
class CCExprResolve;
 
55145
class CExprResolve;
46707
55146
class WinIfExists;
46708
55147
class WinImportHandler;
46709
55148
class WinMacros;
46710
 
class CMatchSyntax;
46711
 
class ExtGnu;
 
55149
class WinAsm;
 
55150
class WinDeclSpecs;
 
55151
class WinMemberExplSpec;
 
55152
class WinTypeKeywords;
 
55153
class WinFriend;
46712
55154
class ExtAC;
46713
55155
class ExtACBuilderCoupling;
46714
55156
class ExtACSyntaxCoupling;
46715
55157
class ExtACTree;
46716
55158
class ExtACKeywords;
46717
 
class WinAsm;
46718
 
class WinDeclSpecs;
46719
 
class WinMemberExplSpec;
46720
 
class WinTypeKeywords;
 
55159
class ExtGnu;
46721
55160
class PragmaOnceUnitState;
46722
55161
class PragmaOnce;
46723
 
class CCExprResolve;
46724
 
class CExprResolve;
46725
 
namespace Puma {
46726
 
 
46727
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55162
class CMatchSyntax;
 
55163
namespace Puma {
 
55164
 
 
55165
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55166
 
 
55167
#line 55168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55168
} // closed Puma
 
55169
 
 
55170
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55171
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55172
#include "CCExprResolveH.ah"
 
55173
#endif
 
55174
namespace Puma {
 
55175
 
 
55176
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55177
 
 
55178
#line 55179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55179
} // closed Puma
 
55180
 
 
55181
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55182
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55183
#include "CExprResolveH.ah"
 
55184
#endif
 
55185
namespace Puma {
 
55186
 
 
55187
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46728
55188
class CT_Integer : public CT_Expression {
46729
 
#line 46730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55189
#line 55190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55190
  friend class ::CCExprResolve;
 
55191
  friend class ::CExprResolve;
46730
55192
  friend class ::WinIfExists;
46731
55193
  friend class ::WinImportHandler;
46732
55194
  friend class ::WinMacros;
46733
 
  friend class ::CMatchSyntax;
46734
 
  friend class ::ExtGnu;
 
55195
  friend class ::WinAsm;
 
55196
  friend class ::WinDeclSpecs;
 
55197
  friend class ::WinMemberExplSpec;
 
55198
  friend class ::WinTypeKeywords;
 
55199
  friend class ::WinFriend;
46735
55200
  friend class ::ExtAC;
46736
55201
  friend class ::ExtACBuilderCoupling;
46737
55202
  friend class ::ExtACSyntaxCoupling;
46738
55203
  friend class ::ExtACTree;
46739
55204
  friend class ::ExtACKeywords;
46740
 
  friend class ::WinAsm;
46741
 
  friend class ::WinDeclSpecs;
46742
 
  friend class ::WinMemberExplSpec;
46743
 
  friend class ::WinTypeKeywords;
 
55205
  friend class ::ExtGnu;
46744
55206
  friend class ::PragmaOnceUnitState;
46745
55207
  friend class ::PragmaOnce;
46746
 
  friend class ::CCExprResolve;
46747
 
  friend class ::CExprResolve;
 
55208
  friend class ::CMatchSyntax;
46748
55209
 
46749
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55210
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46750
55211
 
46751
55212
  CTree *_value;  // CT_Token
46752
55213
 
46753
55214
public:
46754
 
  CT_Integer (CTree *t) : _value (t) {}
 
55215
  /** Constructor.
 
55216
   *  \param token The token containing the integer value. */
 
55217
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
55218
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46755
55219
  static const char *NodeId ();
 
55220
  /** Get the name of the node. Can be compared with NodeId(). */
46756
55221
  const char *NodeName () const { return NodeId (); }
 
55222
  /** Get the number of sons. */
46757
55223
  int Sons () const { return _value ? 1 : 0; }
 
55224
  /** Get the n-th son.
 
55225
   *  \param n The index of the son.
 
55226
   *  \return The n-th son or NULL. */
46758
55227
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
55228
  /** Replace a son.
 
55229
   *  \param old_son The son to replace.
 
55230
   *  \param new_son The new son. */
46759
55231
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46760
 
   { if (old_son == _value) _value = new_son; }
 
55232
   { CTree::ReplaceSon (_value, old_son, new_son); }
46761
55233
   private:
46762
55234
  typedef CT_Integer CCExprResolveExpr;
46763
55235
 
46764
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55236
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46765
55237
 public :
46766
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55238
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46767
55239
  typedef CT_Integer CExprResolveExpr;
46768
55240
 
46769
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55241
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46770
55242
 public :
46771
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46772
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55243
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55244
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46773
55245
};
46774
55246
 
 
55247
/** \class CT_Character CTree.h Puma/CTree.h
 
55248
 *  Tree node representing a single character constant. */
46775
55249
 
46776
 
#line 46777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55250
#line 55251 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46777
55251
} // closed Puma
 
55252
class CCExprResolve;
 
55253
class CExprResolve;
46778
55254
class WinIfExists;
46779
55255
class WinImportHandler;
46780
55256
class WinMacros;
46781
 
class CMatchSyntax;
46782
 
class ExtGnu;
 
55257
class WinAsm;
 
55258
class WinDeclSpecs;
 
55259
class WinMemberExplSpec;
 
55260
class WinTypeKeywords;
 
55261
class WinFriend;
46783
55262
class ExtAC;
46784
55263
class ExtACBuilderCoupling;
46785
55264
class ExtACSyntaxCoupling;
46786
55265
class ExtACTree;
46787
55266
class ExtACKeywords;
46788
 
class WinAsm;
46789
 
class WinDeclSpecs;
46790
 
class WinMemberExplSpec;
46791
 
class WinTypeKeywords;
 
55267
class ExtGnu;
46792
55268
class PragmaOnceUnitState;
46793
55269
class PragmaOnce;
46794
 
class CCExprResolve;
46795
 
class CExprResolve;
46796
 
namespace Puma {
46797
 
 
46798
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55270
class CMatchSyntax;
 
55271
namespace Puma {
 
55272
 
 
55273
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55274
 
 
55275
#line 55276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55276
} // closed Puma
 
55277
 
 
55278
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55279
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55280
#include "CCExprResolveH.ah"
 
55281
#endif
 
55282
namespace Puma {
 
55283
 
 
55284
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55285
 
 
55286
#line 55287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55287
} // closed Puma
 
55288
 
 
55289
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55290
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55291
#include "CExprResolveH.ah"
 
55292
#endif
 
55293
namespace Puma {
 
55294
 
 
55295
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46799
55296
class CT_Character : public CT_Expression {
46800
 
#line 46801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55297
#line 55298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55298
  friend class ::CCExprResolve;
 
55299
  friend class ::CExprResolve;
46801
55300
  friend class ::WinIfExists;
46802
55301
  friend class ::WinImportHandler;
46803
55302
  friend class ::WinMacros;
46804
 
  friend class ::CMatchSyntax;
46805
 
  friend class ::ExtGnu;
 
55303
  friend class ::WinAsm;
 
55304
  friend class ::WinDeclSpecs;
 
55305
  friend class ::WinMemberExplSpec;
 
55306
  friend class ::WinTypeKeywords;
 
55307
  friend class ::WinFriend;
46806
55308
  friend class ::ExtAC;
46807
55309
  friend class ::ExtACBuilderCoupling;
46808
55310
  friend class ::ExtACSyntaxCoupling;
46809
55311
  friend class ::ExtACTree;
46810
55312
  friend class ::ExtACKeywords;
46811
 
  friend class ::WinAsm;
46812
 
  friend class ::WinDeclSpecs;
46813
 
  friend class ::WinMemberExplSpec;
46814
 
  friend class ::WinTypeKeywords;
 
55313
  friend class ::ExtGnu;
46815
55314
  friend class ::PragmaOnceUnitState;
46816
55315
  friend class ::PragmaOnce;
46817
 
  friend class ::CCExprResolve;
46818
 
  friend class ::CExprResolve;
 
55316
  friend class ::CMatchSyntax;
46819
55317
 
46820
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55318
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46821
55319
 
46822
55320
  CTree *_value;  // CT_Token
46823
55321
 
46824
55322
public:
46825
 
  CT_Character (CTree *t) : _value (t) {}
 
55323
  /** Constructor.
 
55324
   *  \param token The token containing the character value. */
 
55325
  CT_Character (CTree *token) { AddSon (_value, token); }
 
55326
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46826
55327
  static const char *NodeId ();
 
55328
  /** Get the name of the node. Can be compared with NodeId(). */
46827
55329
  const char *NodeName () const { return NodeId (); }
 
55330
  /** Get the number of sons. */
46828
55331
  int Sons () const { return 1; }
 
55332
  /** Get the n-th son.
 
55333
   *  \param n The index of the son.
 
55334
   *  \return The n-th son or NULL. */
46829
55335
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
55336
  /** Replace a son.
 
55337
   *  \param old_son The son to replace.
 
55338
   *  \param new_son The new son. */
46830
55339
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46831
 
   { if (old_son == _value) _value = new_son; }
 
55340
   { CTree::ReplaceSon (_value, old_son, new_son); }
46832
55341
   private:
46833
55342
  typedef CT_Character CCExprResolveExpr;
46834
55343
 
46835
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55344
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46836
55345
 public :
46837
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55346
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46838
55347
  typedef CT_Character CExprResolveExpr;
46839
55348
 
46840
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55349
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46841
55350
 public :
46842
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46843
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55351
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55352
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46844
55353
};
46845
55354
 
 
55355
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
55356
 *  Tree node representing a wide character constant. */
46846
55357
 
46847
 
#line 46848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55358
#line 55359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46848
55359
} // closed Puma
 
55360
class CCExprResolve;
 
55361
class CExprResolve;
46849
55362
class WinIfExists;
46850
55363
class WinImportHandler;
46851
55364
class WinMacros;
46852
 
class CMatchSyntax;
46853
 
class ExtGnu;
 
55365
class WinAsm;
 
55366
class WinDeclSpecs;
 
55367
class WinMemberExplSpec;
 
55368
class WinTypeKeywords;
 
55369
class WinFriend;
46854
55370
class ExtAC;
46855
55371
class ExtACBuilderCoupling;
46856
55372
class ExtACSyntaxCoupling;
46857
55373
class ExtACTree;
46858
55374
class ExtACKeywords;
46859
 
class WinAsm;
46860
 
class WinDeclSpecs;
46861
 
class WinMemberExplSpec;
46862
 
class WinTypeKeywords;
 
55375
class ExtGnu;
46863
55376
class PragmaOnceUnitState;
46864
55377
class PragmaOnce;
46865
 
class CCExprResolve;
46866
 
class CExprResolve;
46867
 
namespace Puma {
46868
 
 
46869
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55378
class CMatchSyntax;
 
55379
namespace Puma {
 
55380
 
 
55381
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55382
 
 
55383
#line 55384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55384
} // closed Puma
 
55385
 
 
55386
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55387
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55388
#include "CCExprResolveH.ah"
 
55389
#endif
 
55390
namespace Puma {
 
55391
 
 
55392
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55393
 
 
55394
#line 55395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55395
} // closed Puma
 
55396
 
 
55397
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55398
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55399
#include "CExprResolveH.ah"
 
55400
#endif
 
55401
namespace Puma {
 
55402
 
 
55403
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46870
55404
class CT_WideCharacter : public CT_Character {
46871
 
#line 46872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55405
#line 55406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55406
  friend class ::CCExprResolve;
 
55407
  friend class ::CExprResolve;
46872
55408
  friend class ::WinIfExists;
46873
55409
  friend class ::WinImportHandler;
46874
55410
  friend class ::WinMacros;
46875
 
  friend class ::CMatchSyntax;
46876
 
  friend class ::ExtGnu;
 
55411
  friend class ::WinAsm;
 
55412
  friend class ::WinDeclSpecs;
 
55413
  friend class ::WinMemberExplSpec;
 
55414
  friend class ::WinTypeKeywords;
 
55415
  friend class ::WinFriend;
46877
55416
  friend class ::ExtAC;
46878
55417
  friend class ::ExtACBuilderCoupling;
46879
55418
  friend class ::ExtACSyntaxCoupling;
46880
55419
  friend class ::ExtACTree;
46881
55420
  friend class ::ExtACKeywords;
46882
 
  friend class ::WinAsm;
46883
 
  friend class ::WinDeclSpecs;
46884
 
  friend class ::WinMemberExplSpec;
46885
 
  friend class ::WinTypeKeywords;
 
55421
  friend class ::ExtGnu;
46886
55422
  friend class ::PragmaOnceUnitState;
46887
55423
  friend class ::PragmaOnce;
46888
 
  friend class ::CCExprResolve;
46889
 
  friend class ::CExprResolve;
46890
 
 
46891
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46892
 
 
46893
 
  CTree *_value;  // CT_Token
 
55424
  friend class ::CMatchSyntax;
 
55425
 
 
55426
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46894
55427
 
46895
55428
public:
46896
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
55429
  /** Constructor.
 
55430
   *  \param token The token containing the wide character value. */
 
55431
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
55432
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46897
55433
  static const char *NodeId ();
 
55434
  /** Get the name of the node. Can be compared with NodeId(). */
46898
55435
  const char *NodeName () const { return NodeId (); }
46899
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46900
 
   { if (old_son == _value) _value = new_son; }
46901
55436
   private:
46902
55437
  typedef CT_WideCharacter CCExprResolveExpr;
46903
55438
 
46904
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55439
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46905
55440
 public :
46906
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55441
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46907
55442
  typedef CT_WideCharacter CExprResolveExpr;
46908
55443
 
46909
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55444
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46910
55445
 public :
46911
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46912
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55446
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55447
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46913
55448
};
46914
55449
 
 
55450
/** \class CT_Float CTree.h Puma/CTree.h
 
55451
 *  Tree node representing a floating point constant. */
46915
55452
 
46916
 
#line 46917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55453
#line 55454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46917
55454
} // closed Puma
 
55455
class CCExprResolve;
 
55456
class CExprResolve;
46918
55457
class WinIfExists;
46919
55458
class WinImportHandler;
46920
55459
class WinMacros;
46921
 
class CMatchSyntax;
46922
 
class ExtGnu;
 
55460
class WinAsm;
 
55461
class WinDeclSpecs;
 
55462
class WinMemberExplSpec;
 
55463
class WinTypeKeywords;
 
55464
class WinFriend;
46923
55465
class ExtAC;
46924
55466
class ExtACBuilderCoupling;
46925
55467
class ExtACSyntaxCoupling;
46926
55468
class ExtACTree;
46927
55469
class ExtACKeywords;
46928
 
class WinAsm;
46929
 
class WinDeclSpecs;
46930
 
class WinMemberExplSpec;
46931
 
class WinTypeKeywords;
 
55470
class ExtGnu;
46932
55471
class PragmaOnceUnitState;
46933
55472
class PragmaOnce;
46934
 
class CCExprResolve;
46935
 
class CExprResolve;
46936
 
namespace Puma {
46937
 
 
46938
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55473
class CMatchSyntax;
 
55474
namespace Puma {
 
55475
 
 
55476
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55477
 
 
55478
#line 55479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55479
} // closed Puma
 
55480
 
 
55481
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55482
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55483
#include "CCExprResolveH.ah"
 
55484
#endif
 
55485
namespace Puma {
 
55486
 
 
55487
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55488
 
 
55489
#line 55490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55490
} // closed Puma
 
55491
 
 
55492
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55493
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55494
#include "CExprResolveH.ah"
 
55495
#endif
 
55496
namespace Puma {
 
55497
 
 
55498
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46939
55499
class CT_Float : public CT_Expression {
46940
 
#line 46941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55500
#line 55501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55501
  friend class ::CCExprResolve;
 
55502
  friend class ::CExprResolve;
46941
55503
  friend class ::WinIfExists;
46942
55504
  friend class ::WinImportHandler;
46943
55505
  friend class ::WinMacros;
46944
 
  friend class ::CMatchSyntax;
46945
 
  friend class ::ExtGnu;
 
55506
  friend class ::WinAsm;
 
55507
  friend class ::WinDeclSpecs;
 
55508
  friend class ::WinMemberExplSpec;
 
55509
  friend class ::WinTypeKeywords;
 
55510
  friend class ::WinFriend;
46946
55511
  friend class ::ExtAC;
46947
55512
  friend class ::ExtACBuilderCoupling;
46948
55513
  friend class ::ExtACSyntaxCoupling;
46949
55514
  friend class ::ExtACTree;
46950
55515
  friend class ::ExtACKeywords;
46951
 
  friend class ::WinAsm;
46952
 
  friend class ::WinDeclSpecs;
46953
 
  friend class ::WinMemberExplSpec;
46954
 
  friend class ::WinTypeKeywords;
 
55516
  friend class ::ExtGnu;
46955
55517
  friend class ::PragmaOnceUnitState;
46956
55518
  friend class ::PragmaOnce;
46957
 
  friend class ::CCExprResolve;
46958
 
  friend class ::CExprResolve;
 
55519
  friend class ::CMatchSyntax;
46959
55520
 
46960
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55521
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46961
55522
 
46962
55523
  CTree *_value;  // CT_Token
46963
55524
 
46964
55525
public:
46965
 
  CT_Float (CTree *t) : _value (t) {}
 
55526
  /** Constructor.
 
55527
   *  \param token The token containing the floating point value. */
 
55528
  CT_Float (CTree *token) { AddSon (_value, token); }
 
55529
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46966
55530
  static const char *NodeId ();
 
55531
  /** Get the name of the node. Can be compared with NodeId(). */
46967
55532
  const char *NodeName () const { return NodeId (); }
 
55533
  /** Get the number of sons. */
46968
55534
  int Sons () const { return 1; }
 
55535
  /** Get the n-th son.
 
55536
   *  \param n The index of the son.
 
55537
   *  \return The n-th son or NULL. */
46969
55538
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
55539
  /** Replace a son.
 
55540
   *  \param old_son The son to replace.
 
55541
   *  \param new_son The new son. */
46970
55542
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46971
 
   { if (old_son == _value) _value = new_son; }
 
55543
   { CTree::ReplaceSon (_value, old_son, new_son); }
46972
55544
   private:
46973
55545
  typedef CT_Float CCExprResolveExpr;
46974
55546
 
46975
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55547
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46976
55548
 public :
46977
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55549
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46978
55550
  typedef CT_Float CExprResolveExpr;
46979
55551
 
46980
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55552
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46981
55553
 public :
46982
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46983
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55554
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55555
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46984
55556
};
46985
55557
 
 
55558
/** \class CT_Bool CTree.h Puma/CTree.h
 
55559
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
46986
55560
 
46987
 
#line 46988 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55561
#line 55562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
46988
55562
} // closed Puma
 
55563
class CCExprResolve;
 
55564
class CExprResolve;
46989
55565
class WinIfExists;
46990
55566
class WinImportHandler;
46991
55567
class WinMacros;
46992
 
class CMatchSyntax;
46993
 
class ExtGnu;
 
55568
class WinAsm;
 
55569
class WinDeclSpecs;
 
55570
class WinMemberExplSpec;
 
55571
class WinTypeKeywords;
 
55572
class WinFriend;
46994
55573
class ExtAC;
46995
55574
class ExtACBuilderCoupling;
46996
55575
class ExtACSyntaxCoupling;
46997
55576
class ExtACTree;
46998
55577
class ExtACKeywords;
46999
 
class WinAsm;
47000
 
class WinDeclSpecs;
47001
 
class WinMemberExplSpec;
47002
 
class WinTypeKeywords;
 
55578
class ExtGnu;
47003
55579
class PragmaOnceUnitState;
47004
55580
class PragmaOnce;
47005
 
class CCExprResolve;
47006
 
class CExprResolve;
47007
 
namespace Puma {
47008
 
 
47009
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55581
class CMatchSyntax;
 
55582
namespace Puma {
 
55583
 
 
55584
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55585
 
 
55586
#line 55587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55587
} // closed Puma
 
55588
 
 
55589
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55590
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55591
#include "CCExprResolveH.ah"
 
55592
#endif
 
55593
namespace Puma {
 
55594
 
 
55595
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55596
 
 
55597
#line 55598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55598
} // closed Puma
 
55599
 
 
55600
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55601
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55602
#include "CExprResolveH.ah"
 
55603
#endif
 
55604
namespace Puma {
 
55605
 
 
55606
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47010
55607
class CT_Bool : public CT_Expression {
47011
 
#line 47012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55608
#line 55609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55609
  friend class ::CCExprResolve;
 
55610
  friend class ::CExprResolve;
47012
55611
  friend class ::WinIfExists;
47013
55612
  friend class ::WinImportHandler;
47014
55613
  friend class ::WinMacros;
47015
 
  friend class ::CMatchSyntax;
47016
 
  friend class ::ExtGnu;
 
55614
  friend class ::WinAsm;
 
55615
  friend class ::WinDeclSpecs;
 
55616
  friend class ::WinMemberExplSpec;
 
55617
  friend class ::WinTypeKeywords;
 
55618
  friend class ::WinFriend;
47017
55619
  friend class ::ExtAC;
47018
55620
  friend class ::ExtACBuilderCoupling;
47019
55621
  friend class ::ExtACSyntaxCoupling;
47020
55622
  friend class ::ExtACTree;
47021
55623
  friend class ::ExtACKeywords;
47022
 
  friend class ::WinAsm;
47023
 
  friend class ::WinDeclSpecs;
47024
 
  friend class ::WinMemberExplSpec;
47025
 
  friend class ::WinTypeKeywords;
 
55624
  friend class ::ExtGnu;
47026
55625
  friend class ::PragmaOnceUnitState;
47027
55626
  friend class ::PragmaOnce;
47028
 
  friend class ::CCExprResolve;
47029
 
  friend class ::CExprResolve;
 
55627
  friend class ::CMatchSyntax;
47030
55628
 
47031
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55629
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47032
55630
 
47033
55631
  CTree *_value;  // CT_Token
47034
55632
 
47035
55633
public:
47036
 
  CT_Bool (CTree *t) : _value (t) {}
 
55634
  /** Constructor.
 
55635
   *  \param token The token containing the boolean value. */
 
55636
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
55637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47037
55638
  static const char *NodeId ();
 
55639
  /** Get the name of the node. Can be compared with NodeId(). */
47038
55640
  const char *NodeName () const { return NodeId (); }
 
55641
  /** Get the number of sons. */
47039
55642
  int Sons () const { return 1; }
 
55643
  /** Get the n-th son.
 
55644
   *  \param n The index of the son.
 
55645
   *  \return The n-th son or NULL. */
47040
55646
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
55647
  /** Replace a son.
 
55648
   *  \param old_son The son to replace.
 
55649
   *  \param new_son The new son. */
47041
55650
  void ReplaceSon (CTree *old_son, CTree *new_son) 
47042
 
   { if (old_son == _value) _value = new_son; }
 
55651
   { CTree::ReplaceSon (_value, old_son, new_son); }
47043
55652
   private:
47044
55653
  typedef CT_Bool CCExprResolveExpr;
47045
55654
 
47046
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55655
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47047
55656
 public :
47048
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55657
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47049
55658
  typedef CT_Bool CExprResolveExpr;
47050
55659
 
47051
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55660
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47052
55661
 public :
47053
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47054
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55662
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55663
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47055
55664
};
47056
55665
 
 
55666
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
55667
 *  Tree node representing a braced expression, e.g. (a+b). */
47057
55668
 
47058
 
#line 47059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55669
#line 55670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47059
55670
} // closed Puma
 
55671
class CCExprResolve;
 
55672
class CExprResolve;
47060
55673
class WinIfExists;
47061
55674
class WinImportHandler;
47062
55675
class WinMacros;
47063
 
class CMatchSyntax;
47064
 
class ExtGnu;
 
55676
class WinAsm;
 
55677
class WinDeclSpecs;
 
55678
class WinMemberExplSpec;
 
55679
class WinTypeKeywords;
 
55680
class WinFriend;
47065
55681
class ExtAC;
47066
55682
class ExtACBuilderCoupling;
47067
55683
class ExtACSyntaxCoupling;
47068
55684
class ExtACTree;
47069
55685
class ExtACKeywords;
47070
 
class WinAsm;
47071
 
class WinDeclSpecs;
47072
 
class WinMemberExplSpec;
47073
 
class WinTypeKeywords;
 
55686
class ExtGnu;
47074
55687
class PragmaOnceUnitState;
47075
55688
class PragmaOnce;
47076
 
class CCExprResolve;
47077
 
class CExprResolve;
47078
 
namespace Puma {
47079
 
 
47080
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55689
class CMatchSyntax;
 
55690
namespace Puma {
 
55691
 
 
55692
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55693
 
 
55694
#line 55695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55695
} // closed Puma
 
55696
 
 
55697
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55698
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55699
#include "CCExprResolveH.ah"
 
55700
#endif
 
55701
namespace Puma {
 
55702
 
 
55703
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55704
 
 
55705
#line 55706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55706
} // closed Puma
 
55707
 
 
55708
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55709
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55710
#include "CExprResolveH.ah"
 
55711
#endif
 
55712
namespace Puma {
 
55713
 
 
55714
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47081
55715
class CT_BracedExpr : public CT_Expression {
47082
 
#line 47083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55716
#line 55717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55717
  friend class ::CCExprResolve;
 
55718
  friend class ::CExprResolve;
47083
55719
  friend class ::WinIfExists;
47084
55720
  friend class ::WinImportHandler;
47085
55721
  friend class ::WinMacros;
47086
 
  friend class ::CMatchSyntax;
47087
 
  friend class ::ExtGnu;
 
55722
  friend class ::WinAsm;
 
55723
  friend class ::WinDeclSpecs;
 
55724
  friend class ::WinMemberExplSpec;
 
55725
  friend class ::WinTypeKeywords;
 
55726
  friend class ::WinFriend;
47088
55727
  friend class ::ExtAC;
47089
55728
  friend class ::ExtACBuilderCoupling;
47090
55729
  friend class ::ExtACSyntaxCoupling;
47091
55730
  friend class ::ExtACTree;
47092
55731
  friend class ::ExtACKeywords;
47093
 
  friend class ::WinAsm;
47094
 
  friend class ::WinDeclSpecs;
47095
 
  friend class ::WinMemberExplSpec;
47096
 
  friend class ::WinTypeKeywords;
 
55732
  friend class ::ExtGnu;
47097
55733
  friend class ::PragmaOnceUnitState;
47098
55734
  friend class ::PragmaOnce;
47099
 
  friend class ::CCExprResolve;
47100
 
  friend class ::CExprResolve;
 
55735
  friend class ::CMatchSyntax;
47101
55736
 
47102
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55737
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47103
55738
 
47104
55739
  CTree *sons[3]; // open, expr, close
47105
55740
 
47106
55741
public:
 
55742
  /** Constructor.
 
55743
   *  \param o The opening brace.
 
55744
   *  \param e The enclosed expression.
 
55745
   *  \param c The closing brace. */
47107
55746
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
47108
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
55747
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
47109
55748
  }
 
55749
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47110
55750
  static const char *NodeId ();
 
55751
  /** Get the name of the node. Can be compared with NodeId(). */
47111
55752
  const char *NodeName () const { return NodeId (); }
 
55753
  /** Get the number of sons. */
47112
55754
  int Sons () const { return 3; }
 
55755
  /** Get the n-th son.
 
55756
   *  \param n The index of the son.
 
55757
   *  \return The n-th son or NULL. */
47113
55758
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
55759
  /** Get the enclosed expression. */
47114
55760
  CTree *Expr () const { return sons[1]; }
 
55761
  /** Get the type of the enclosed expression. */
47115
55762
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
55763
  /** Get the value of the enclosed expression. */
47116
55764
  CExprValue *Value () const { return Expr ()->Value (); }
 
55765
  /** Get the semantic value object. */
47117
55766
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
55767
  /** Replace a son.
 
55768
   *  \param old_son The son to replace.
 
55769
   *  \param new_son The new son. */
47118
55770
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47119
55771
    CTree::ReplaceSon (sons, 3, old_son, new_son);
47120
55772
  }
47121
55773
   private:
47122
55774
  typedef CT_BracedExpr CCExprResolveExpr;
47123
55775
 
47124
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55776
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47125
55777
 public :
47126
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55778
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47127
55779
  typedef CT_BracedExpr CExprResolveExpr;
47128
55780
 
47129
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55781
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47130
55782
 public :
47131
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47132
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55783
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55784
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47133
55785
};
47134
55786
 
 
55787
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
55788
 *  Base class for all tree nodes representing a name. */
47135
55789
 
47136
 
#line 47137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55790
#line 55791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47137
55791
} // closed Puma
 
55792
class CCExprResolve;
 
55793
class CExprResolve;
47138
55794
class WinIfExists;
47139
55795
class WinImportHandler;
47140
55796
class WinMacros;
47141
 
class CMatchSyntax;
47142
 
class ExtGnu;
 
55797
class WinAsm;
 
55798
class WinDeclSpecs;
 
55799
class WinMemberExplSpec;
 
55800
class WinTypeKeywords;
 
55801
class WinFriend;
47143
55802
class ExtAC;
47144
55803
class ExtACBuilderCoupling;
47145
55804
class ExtACSyntaxCoupling;
47146
55805
class ExtACTree;
47147
55806
class ExtACKeywords;
47148
 
class WinAsm;
47149
 
class WinDeclSpecs;
47150
 
class WinMemberExplSpec;
47151
 
class WinTypeKeywords;
 
55807
class ExtGnu;
47152
55808
class PragmaOnceUnitState;
47153
55809
class PragmaOnce;
47154
 
class CCExprResolve;
47155
 
class CExprResolve;
47156
 
namespace Puma {
47157
 
 
47158
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55810
class CMatchSyntax;
 
55811
namespace Puma {
 
55812
 
 
55813
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55814
 
 
55815
#line 55816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55816
} // closed Puma
 
55817
 
 
55818
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55819
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55820
#include "CCExprResolveH.ah"
 
55821
#endif
 
55822
namespace Puma {
 
55823
 
 
55824
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55825
 
 
55826
#line 55827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55827
} // closed Puma
 
55828
 
 
55829
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55830
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55831
#include "CExprResolveH.ah"
 
55832
#endif
 
55833
namespace Puma {
 
55834
 
 
55835
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47159
55836
class CT_SimpleName : public CT_List, public Printable, 
47160
55837
                      public CSemValue, public CSemObject {
47161
 
#line 47162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55838
#line 55839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55839
  friend class ::CCExprResolve;
 
55840
  friend class ::CExprResolve;
47162
55841
  friend class ::WinIfExists;
47163
55842
  friend class ::WinImportHandler;
47164
55843
  friend class ::WinMacros;
47165
 
  friend class ::CMatchSyntax;
47166
 
  friend class ::ExtGnu;
 
55844
  friend class ::WinAsm;
 
55845
  friend class ::WinDeclSpecs;
 
55846
  friend class ::WinMemberExplSpec;
 
55847
  friend class ::WinTypeKeywords;
 
55848
  friend class ::WinFriend;
47167
55849
  friend class ::ExtAC;
47168
55850
  friend class ::ExtACBuilderCoupling;
47169
55851
  friend class ::ExtACSyntaxCoupling;
47170
55852
  friend class ::ExtACTree;
47171
55853
  friend class ::ExtACKeywords;
47172
 
  friend class ::WinAsm;
47173
 
  friend class ::WinDeclSpecs;
47174
 
  friend class ::WinMemberExplSpec;
47175
 
  friend class ::WinTypeKeywords;
 
55854
  friend class ::ExtGnu;
47176
55855
  friend class ::PragmaOnceUnitState;
47177
55856
  friend class ::PragmaOnce;
47178
 
  friend class ::CCExprResolve;
47179
 
  friend class ::CExprResolve;
 
55857
  friend class ::CMatchSyntax;
47180
55858
 
47181
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55859
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47182
55860
 
47183
55861
protected:
 
55862
  /** Constructor.
 
55863
   *  \param size The number of sub-names (for qualified names). */
47184
55864
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
55865
  /** Constructor.
 
55866
   *  \param size The number of sub-names (for qualified names). 
 
55867
   *  \param properties Additional name list properties (for root qualified names). */
47185
55868
  CT_SimpleName (int size, int properties) : 
47186
55869
    CT_List (size, 2, properties) {}
47187
55870
  
47188
55871
public:
 
55872
  /** Constructor.
 
55873
   *  \param n The sub-tree containing the name. */
47189
55874
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
55875
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47190
55876
  static const char *NodeId ();
 
55877
  /** Get the name of the node. Can be compared with NodeId(). */
47191
55878
  const char *NodeName () const { return NodeId (); }
 
55879
  /** Get the string containing the name. */
47192
55880
  virtual const char *Text () const 
47193
55881
   { return Son (Sons ()-1)->token ()->text (); }
 
55882
  /** Print the name on the given stream. 
 
55883
   *  \param os The output stream. */
47194
55884
  virtual void print (ostream &os) const { os << Text (); }
 
55885
  /** Get this. */
47195
55886
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
55887
  /** Get the type of the entity represented by the name. */
47196
55888
  CTypeInfo *Type () const { return type; }
 
55889
  /** Get the value of the entity represented by the name. */ 
47197
55890
  CExprValue *Value () const { return value; }
 
55891
  /** Get the sematic value information object. */
47198
55892
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
55893
  /** Get the sematic information object. */
47199
55894
  CSemObject *SemObject () const { return (CSemObject*)this; }
47200
 
  // special new / delete with reusing memory
47201
 
  void *operator new (size_t);
47202
 
  void  operator delete (void *);
47203
 
  // classification function
 
55895
  /** Get this. */
47204
55896
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
55897
 
 
55898
public:
 
55899
  /** Own new operator reusing memory. */
 
55900
  void *operator new (size_t);
 
55901
  /** Own delete operator. */
 
55902
  void operator delete (void *);
47205
55903
   private:
47206
55904
  typedef CT_SimpleName CCExprResolveExpr;
47207
55905
 
47208
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55906
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47209
55907
 public :
47210
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55908
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47211
55909
  typedef CT_SimpleName CExprResolveExpr;
47212
55910
 
47213
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55911
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47214
55912
 public :
47215
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47216
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55913
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55914
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47217
55915
};
47218
55916
 
 
55917
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
55918
 *  Base class for tree nodes representing a special name, like destructor names. */
47219
55919
 
47220
 
#line 47221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55920
#line 55921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47221
55921
} // closed Puma
 
55922
class CCExprResolve;
 
55923
class CExprResolve;
47222
55924
class WinIfExists;
47223
55925
class WinImportHandler;
47224
55926
class WinMacros;
47225
 
class CMatchSyntax;
47226
 
class ExtGnu;
 
55927
class WinAsm;
 
55928
class WinDeclSpecs;
 
55929
class WinMemberExplSpec;
 
55930
class WinTypeKeywords;
 
55931
class WinFriend;
47227
55932
class ExtAC;
47228
55933
class ExtACBuilderCoupling;
47229
55934
class ExtACSyntaxCoupling;
47230
55935
class ExtACTree;
47231
55936
class ExtACKeywords;
47232
 
class WinAsm;
47233
 
class WinDeclSpecs;
47234
 
class WinMemberExplSpec;
47235
 
class WinTypeKeywords;
 
55937
class ExtGnu;
47236
55938
class PragmaOnceUnitState;
47237
55939
class PragmaOnce;
47238
 
class CCExprResolve;
47239
 
class CExprResolve;
47240
 
namespace Puma {
47241
 
 
47242
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55940
class CMatchSyntax;
 
55941
namespace Puma {
 
55942
 
 
55943
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55944
 
 
55945
#line 55946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55946
} // closed Puma
 
55947
 
 
55948
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55949
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55950
#include "CCExprResolveH.ah"
 
55951
#endif
 
55952
namespace Puma {
 
55953
 
 
55954
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55955
 
 
55956
#line 55957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55957
} // closed Puma
 
55958
 
 
55959
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55960
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55961
#include "CExprResolveH.ah"
 
55962
#endif
 
55963
namespace Puma {
 
55964
 
 
55965
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47243
55966
class CT_SpecialName : public CT_SimpleName {
47244
 
#line 47245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
55967
#line 55968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
55968
  friend class ::CCExprResolve;
 
55969
  friend class ::CExprResolve;
47245
55970
  friend class ::WinIfExists;
47246
55971
  friend class ::WinImportHandler;
47247
55972
  friend class ::WinMacros;
47248
 
  friend class ::CMatchSyntax;
47249
 
  friend class ::ExtGnu;
 
55973
  friend class ::WinAsm;
 
55974
  friend class ::WinDeclSpecs;
 
55975
  friend class ::WinMemberExplSpec;
 
55976
  friend class ::WinTypeKeywords;
 
55977
  friend class ::WinFriend;
47250
55978
  friend class ::ExtAC;
47251
55979
  friend class ::ExtACBuilderCoupling;
47252
55980
  friend class ::ExtACSyntaxCoupling;
47253
55981
  friend class ::ExtACTree;
47254
55982
  friend class ::ExtACKeywords;
47255
 
  friend class ::WinAsm;
47256
 
  friend class ::WinDeclSpecs;
47257
 
  friend class ::WinMemberExplSpec;
47258
 
  friend class ::WinTypeKeywords;
 
55983
  friend class ::ExtGnu;
47259
55984
  friend class ::PragmaOnceUnitState;
47260
55985
  friend class ::PragmaOnce;
47261
 
  friend class ::CCExprResolve;
47262
 
  friend class ::CExprResolve;
 
55986
  friend class ::CMatchSyntax;
47263
55987
 
47264
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55988
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47265
55989
 
47266
55990
  char *_name;
47267
55991
  
47268
55992
protected:
 
55993
  /** Constructor.
 
55994
   *  \param size The number of sub-names (for qualified names). */
47269
55995
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
47270
55996
  
47271
55997
public:
 
55998
  /** Destructor. Deletes the name string. */
47272
55999
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
56000
  /** Get the string containing the name. */
47273
56001
  const char *Text () const { return _name; }
 
56002
  /** Set the name. The name is copied.
 
56003
   *  \param n The name. */
47274
56004
  void Name (const char *n) { 
47275
56005
    if (n) { 
47276
56006
      _name = new char[strlen(n) + 1];
47277
56007
      strcpy (_name,n);
47278
56008
    }
47279
56009
  }
47280
 
  // special new / delete with reusing memory
 
56010
 
 
56011
public:
 
56012
  /** Own new operator reusing memory. */
47281
56013
  void *operator new (size_t);
47282
 
  void  operator delete (void *);
 
56014
  /** Own delete operator. */
 
56015
  void operator delete (void *);
47283
56016
   private:
47284
56017
  typedef CT_SpecialName CCExprResolveExpr;
47285
56018
 
47286
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56019
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47287
56020
 public :
47288
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56021
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47289
56022
  typedef CT_SpecialName CExprResolveExpr;
47290
56023
 
47291
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56024
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47292
56025
 public :
47293
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47294
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56026
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56027
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47295
56028
};
47296
56029
 
 
56030
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
56031
 *  Tree node representing a private name. Private names 
 
56032
 *  are generated names for abstract declarators etc. */
47297
56033
 
47298
 
#line 47299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56034
#line 56035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47299
56035
} // closed Puma
 
56036
class CCExprResolve;
 
56037
class CExprResolve;
47300
56038
class WinIfExists;
47301
56039
class WinImportHandler;
47302
56040
class WinMacros;
47303
 
class CMatchSyntax;
47304
 
class ExtGnu;
 
56041
class WinAsm;
 
56042
class WinDeclSpecs;
 
56043
class WinMemberExplSpec;
 
56044
class WinTypeKeywords;
 
56045
class WinFriend;
47305
56046
class ExtAC;
47306
56047
class ExtACBuilderCoupling;
47307
56048
class ExtACSyntaxCoupling;
47308
56049
class ExtACTree;
47309
56050
class ExtACKeywords;
47310
 
class WinAsm;
47311
 
class WinDeclSpecs;
47312
 
class WinMemberExplSpec;
47313
 
class WinTypeKeywords;
 
56051
class ExtGnu;
47314
56052
class PragmaOnceUnitState;
47315
56053
class PragmaOnce;
47316
 
class CCExprResolve;
47317
 
class CExprResolve;
47318
 
namespace Puma {
47319
 
 
47320
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56054
class CMatchSyntax;
 
56055
namespace Puma {
 
56056
 
 
56057
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56058
 
 
56059
#line 56060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56060
} // closed Puma
 
56061
 
 
56062
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56063
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56064
#include "CCExprResolveH.ah"
 
56065
#endif
 
56066
namespace Puma {
 
56067
 
 
56068
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56069
 
 
56070
#line 56071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56071
} // closed Puma
 
56072
 
 
56073
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56074
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56075
#include "CExprResolveH.ah"
 
56076
#endif
 
56077
namespace Puma {
 
56078
 
 
56079
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47321
56080
class CT_PrivateName : public CT_SpecialName {
47322
 
#line 47323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56081
#line 56082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56082
  friend class ::CCExprResolve;
 
56083
  friend class ::CExprResolve;
47323
56084
  friend class ::WinIfExists;
47324
56085
  friend class ::WinImportHandler;
47325
56086
  friend class ::WinMacros;
47326
 
  friend class ::CMatchSyntax;
47327
 
  friend class ::ExtGnu;
 
56087
  friend class ::WinAsm;
 
56088
  friend class ::WinDeclSpecs;
 
56089
  friend class ::WinMemberExplSpec;
 
56090
  friend class ::WinTypeKeywords;
 
56091
  friend class ::WinFriend;
47328
56092
  friend class ::ExtAC;
47329
56093
  friend class ::ExtACBuilderCoupling;
47330
56094
  friend class ::ExtACSyntaxCoupling;
47331
56095
  friend class ::ExtACTree;
47332
56096
  friend class ::ExtACKeywords;
47333
 
  friend class ::WinAsm;
47334
 
  friend class ::WinDeclSpecs;
47335
 
  friend class ::WinMemberExplSpec;
47336
 
  friend class ::WinTypeKeywords;
 
56097
  friend class ::ExtGnu;
47337
56098
  friend class ::PragmaOnceUnitState;
47338
56099
  friend class ::PragmaOnce;
47339
 
  friend class ::CCExprResolve;
47340
 
  friend class ::CExprResolve;
 
56100
  friend class ::CMatchSyntax;
47341
56101
 
47342
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56102
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47343
56103
 
47344
56104
public:
 
56105
  /** Constructor.
 
56106
   *  \param n The private (generated) name. */
47345
56107
  CT_PrivateName (const char *n) { Name (n); }
 
56108
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47346
56109
  static const char *NodeId ();
 
56110
  /** Get the name of the node. Can be compared with NodeId(). */
47347
56111
  const char *NodeName () const { return NodeId (); }
 
56112
  /** Get the number of sons. */
47348
56113
  int Sons () const { return 0; }
 
56114
  /** Get the n-th son.
 
56115
   *  \param n The index of the son.
 
56116
   *  \return The n-th son or NULL. */
47349
56117
  CTree *Son (int n) const { return (CTree*)0; }
47350
 
  // special new / delete with reusing memory
 
56118
 
 
56119
public:
 
56120
  /** Own new operator reusing memory. */
47351
56121
  void *operator new (size_t);
47352
 
  void  operator delete (void *);
 
56122
  /** Own delete operator. */
 
56123
  void operator delete (void *);
47353
56124
   private:
47354
56125
  typedef CT_PrivateName CCExprResolveExpr;
47355
56126
 
47356
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56127
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47357
56128
 public :
47358
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56129
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47359
56130
  typedef CT_PrivateName CExprResolveExpr;
47360
56131
 
47361
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56132
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47362
56133
 public :
47363
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47364
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56134
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56135
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47365
56136
};
47366
56137
 
 
56138
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
56139
 *  Tree node representing a destructor name. */
47367
56140
 
47368
 
#line 47369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56141
#line 56142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47369
56142
} // closed Puma
 
56143
class CCExprResolve;
 
56144
class CExprResolve;
47370
56145
class WinIfExists;
47371
56146
class WinImportHandler;
47372
56147
class WinMacros;
47373
 
class CMatchSyntax;
47374
 
class ExtGnu;
 
56148
class WinAsm;
 
56149
class WinDeclSpecs;
 
56150
class WinMemberExplSpec;
 
56151
class WinTypeKeywords;
 
56152
class WinFriend;
47375
56153
class ExtAC;
47376
56154
class ExtACBuilderCoupling;
47377
56155
class ExtACSyntaxCoupling;
47378
56156
class ExtACTree;
47379
56157
class ExtACKeywords;
47380
 
class WinAsm;
47381
 
class WinDeclSpecs;
47382
 
class WinMemberExplSpec;
47383
 
class WinTypeKeywords;
 
56158
class ExtGnu;
47384
56159
class PragmaOnceUnitState;
47385
56160
class PragmaOnce;
47386
 
class CCExprResolve;
47387
 
class CExprResolve;
47388
 
namespace Puma {
47389
 
 
47390
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56161
class CMatchSyntax;
 
56162
namespace Puma {
 
56163
 
 
56164
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56165
 
 
56166
#line 56167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56167
} // closed Puma
 
56168
 
 
56169
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56170
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56171
#include "CCExprResolveH.ah"
 
56172
#endif
 
56173
namespace Puma {
 
56174
 
 
56175
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56176
 
 
56177
#line 56178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56178
} // closed Puma
 
56179
 
 
56180
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56181
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56182
#include "CExprResolveH.ah"
 
56183
#endif
 
56184
namespace Puma {
 
56185
 
 
56186
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47391
56187
class CT_DestructorName : public CT_SpecialName {
47392
 
#line 47393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56188
#line 56189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56189
  friend class ::CCExprResolve;
 
56190
  friend class ::CExprResolve;
47393
56191
  friend class ::WinIfExists;
47394
56192
  friend class ::WinImportHandler;
47395
56193
  friend class ::WinMacros;
47396
 
  friend class ::CMatchSyntax;
47397
 
  friend class ::ExtGnu;
 
56194
  friend class ::WinAsm;
 
56195
  friend class ::WinDeclSpecs;
 
56196
  friend class ::WinMemberExplSpec;
 
56197
  friend class ::WinTypeKeywords;
 
56198
  friend class ::WinFriend;
47398
56199
  friend class ::ExtAC;
47399
56200
  friend class ::ExtACBuilderCoupling;
47400
56201
  friend class ::ExtACSyntaxCoupling;
47401
56202
  friend class ::ExtACTree;
47402
56203
  friend class ::ExtACKeywords;
47403
 
  friend class ::WinAsm;
47404
 
  friend class ::WinDeclSpecs;
47405
 
  friend class ::WinMemberExplSpec;
47406
 
  friend class ::WinTypeKeywords;
 
56204
  friend class ::ExtGnu;
47407
56205
  friend class ::PragmaOnceUnitState;
47408
56206
  friend class ::PragmaOnce;
47409
 
  friend class ::CCExprResolve;
47410
 
  friend class ::CExprResolve;
 
56207
  friend class ::CMatchSyntax;
47411
56208
 
47412
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56209
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47413
56210
 
47414
56211
public:
47415
 
  CT_DestructorName (CTree *, CTree *);
 
56212
  /** Constructor.
 
56213
   *  \param t The tilde operator.
 
56214
   *  \param n The class name. */
 
56215
  CT_DestructorName (CTree *t, CTree *n);
 
56216
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47416
56217
  static const char *NodeId ();
 
56218
  /** Get the name of the node. Can be compared with NodeId(). */
47417
56219
  const char *NodeName () const { return NodeId (); }
47418
 
  // special new / delete with reusing memory
 
56220
 
 
56221
public:
 
56222
  /** Own new operator reusing memory. */
47419
56223
  void *operator new (size_t);
47420
 
  void  operator delete (void *);
 
56224
  /** Own delete operator. */
 
56225
  void operator delete (void *);
47421
56226
   private:
47422
56227
  typedef CT_DestructorName CCExprResolveExpr;
47423
56228
 
47424
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56229
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47425
56230
 public :
47426
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56231
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47427
56232
  typedef CT_DestructorName CExprResolveExpr;
47428
56233
 
47429
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56234
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47430
56235
 public :
47431
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47432
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56236
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56237
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47433
56238
};
47434
56239
 
 
56240
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
56241
 *  Tree node representing a template name. */
47435
56242
 
47436
 
#line 47437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56243
#line 56244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47437
56244
} // closed Puma
 
56245
class CCExprResolve;
 
56246
class CExprResolve;
47438
56247
class WinIfExists;
47439
56248
class WinImportHandler;
47440
56249
class WinMacros;
47441
 
class CMatchSyntax;
47442
 
class ExtGnu;
 
56250
class WinAsm;
 
56251
class WinDeclSpecs;
 
56252
class WinMemberExplSpec;
 
56253
class WinTypeKeywords;
 
56254
class WinFriend;
47443
56255
class ExtAC;
47444
56256
class ExtACBuilderCoupling;
47445
56257
class ExtACSyntaxCoupling;
47446
56258
class ExtACTree;
47447
56259
class ExtACKeywords;
47448
 
class WinAsm;
47449
 
class WinDeclSpecs;
47450
 
class WinMemberExplSpec;
47451
 
class WinTypeKeywords;
 
56260
class ExtGnu;
47452
56261
class PragmaOnceUnitState;
47453
56262
class PragmaOnce;
47454
 
class CCExprResolve;
47455
 
class CExprResolve;
47456
 
namespace Puma {
47457
 
 
47458
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56263
class CMatchSyntax;
 
56264
namespace Puma {
 
56265
 
 
56266
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56267
 
 
56268
#line 56269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56269
} // closed Puma
 
56270
 
 
56271
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56272
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56273
#include "CCExprResolveH.ah"
 
56274
#endif
 
56275
namespace Puma {
 
56276
 
 
56277
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56278
 
 
56279
#line 56280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56280
} // closed Puma
 
56281
 
 
56282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56284
#include "CExprResolveH.ah"
 
56285
#endif
 
56286
namespace Puma {
 
56287
 
 
56288
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47459
56289
class CT_TemplateName : public CT_SpecialName {
47460
 
#line 47461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56290
#line 56291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56291
  friend class ::CCExprResolve;
 
56292
  friend class ::CExprResolve;
47461
56293
  friend class ::WinIfExists;
47462
56294
  friend class ::WinImportHandler;
47463
56295
  friend class ::WinMacros;
47464
 
  friend class ::CMatchSyntax;
47465
 
  friend class ::ExtGnu;
 
56296
  friend class ::WinAsm;
 
56297
  friend class ::WinDeclSpecs;
 
56298
  friend class ::WinMemberExplSpec;
 
56299
  friend class ::WinTypeKeywords;
 
56300
  friend class ::WinFriend;
47466
56301
  friend class ::ExtAC;
47467
56302
  friend class ::ExtACBuilderCoupling;
47468
56303
  friend class ::ExtACSyntaxCoupling;
47469
56304
  friend class ::ExtACTree;
47470
56305
  friend class ::ExtACKeywords;
47471
 
  friend class ::WinAsm;
47472
 
  friend class ::WinDeclSpecs;
47473
 
  friend class ::WinMemberExplSpec;
47474
 
  friend class ::WinTypeKeywords;
 
56306
  friend class ::ExtGnu;
47475
56307
  friend class ::PragmaOnceUnitState;
47476
56308
  friend class ::PragmaOnce;
47477
 
  friend class ::CCExprResolve;
47478
 
  friend class ::CExprResolve;
 
56309
  friend class ::CMatchSyntax;
47479
56310
 
47480
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56311
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47481
56312
 
47482
56313
public:
 
56314
  /** Constructor.
 
56315
   *  \param n The template class or function name.
 
56316
   *  \param a The template argument list. */
47483
56317
  CT_TemplateName (CTree *n, CTree *a) 
47484
56318
   { AddSon (n); AddSon (a); }
 
56319
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47485
56320
  static const char *NodeId ();
 
56321
  /** Get the name of the node. Can be compared with NodeId(). */
47486
56322
  const char *NodeName () const { return NodeId (); }
 
56323
  /** Get the template argument list. */
47487
56324
  CT_TemplateArgList *Arguments () const 
47488
56325
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
56326
  /** Get the template class or function name. */
47489
56327
  CT_SimpleName *TemplateName () const 
47490
56328
   { return (CT_SimpleName*)Son (Sons ()-2); }
47491
56329
  // may change in the future
47492
56330
  const char *Text () const { return TemplateName ()->Text (); }
47493
 
  // special new / delete with reusing memory
 
56331
 
 
56332
public:
 
56333
  /** Own new operator reusing memory. */
47494
56334
  void *operator new (size_t);
47495
 
  void  operator delete (void *);
 
56335
  /** Own delete operator. */
 
56336
  void operator delete (void *);
47496
56337
   private:
47497
56338
  typedef CT_TemplateName CCExprResolveExpr;
47498
56339
 
47499
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56340
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47500
56341
 public :
47501
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56342
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47502
56343
  typedef CT_TemplateName CExprResolveExpr;
47503
56344
 
47504
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56345
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47505
56346
 public :
47506
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47507
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56347
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56348
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47508
56349
};
47509
56350
 
 
56351
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
56352
 *  Tree node representing the name of an overloaded operator. */
47510
56353
 
47511
 
#line 47512 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56354
#line 56355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47512
56355
} // closed Puma
 
56356
class CCExprResolve;
 
56357
class CExprResolve;
47513
56358
class WinIfExists;
47514
56359
class WinImportHandler;
47515
56360
class WinMacros;
47516
 
class CMatchSyntax;
47517
 
class ExtGnu;
 
56361
class WinAsm;
 
56362
class WinDeclSpecs;
 
56363
class WinMemberExplSpec;
 
56364
class WinTypeKeywords;
 
56365
class WinFriend;
47518
56366
class ExtAC;
47519
56367
class ExtACBuilderCoupling;
47520
56368
class ExtACSyntaxCoupling;
47521
56369
class ExtACTree;
47522
56370
class ExtACKeywords;
47523
 
class WinAsm;
47524
 
class WinDeclSpecs;
47525
 
class WinMemberExplSpec;
47526
 
class WinTypeKeywords;
 
56371
class ExtGnu;
47527
56372
class PragmaOnceUnitState;
47528
56373
class PragmaOnce;
47529
 
class CCExprResolve;
47530
 
class CExprResolve;
47531
 
namespace Puma {
47532
 
 
47533
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56374
class CMatchSyntax;
 
56375
namespace Puma {
 
56376
 
 
56377
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56378
 
 
56379
#line 56380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56380
} // closed Puma
 
56381
 
 
56382
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56383
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56384
#include "CCExprResolveH.ah"
 
56385
#endif
 
56386
namespace Puma {
 
56387
 
 
56388
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56389
 
 
56390
#line 56391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56391
} // closed Puma
 
56392
 
 
56393
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56394
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56395
#include "CExprResolveH.ah"
 
56396
#endif
 
56397
namespace Puma {
 
56398
 
 
56399
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47534
56400
class CT_OperatorName : public CT_SpecialName {
47535
 
#line 47536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56401
#line 56402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56402
  friend class ::CCExprResolve;
 
56403
  friend class ::CExprResolve;
47536
56404
  friend class ::WinIfExists;
47537
56405
  friend class ::WinImportHandler;
47538
56406
  friend class ::WinMacros;
47539
 
  friend class ::CMatchSyntax;
47540
 
  friend class ::ExtGnu;
 
56407
  friend class ::WinAsm;
 
56408
  friend class ::WinDeclSpecs;
 
56409
  friend class ::WinMemberExplSpec;
 
56410
  friend class ::WinTypeKeywords;
 
56411
  friend class ::WinFriend;
47541
56412
  friend class ::ExtAC;
47542
56413
  friend class ::ExtACBuilderCoupling;
47543
56414
  friend class ::ExtACSyntaxCoupling;
47544
56415
  friend class ::ExtACTree;
47545
56416
  friend class ::ExtACKeywords;
47546
 
  friend class ::WinAsm;
47547
 
  friend class ::WinDeclSpecs;
47548
 
  friend class ::WinMemberExplSpec;
47549
 
  friend class ::WinTypeKeywords;
 
56417
  friend class ::ExtGnu;
47550
56418
  friend class ::PragmaOnceUnitState;
47551
56419
  friend class ::PragmaOnce;
47552
 
  friend class ::CCExprResolve;
47553
 
  friend class ::CExprResolve;
 
56420
  friend class ::CMatchSyntax;
47554
56421
 
47555
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56422
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47556
56423
 
47557
56424
  int _oper;
47558
56425
 
47559
56426
public:
47560
 
  enum { // complex operators
47561
 
    FCT_CALL = -100,
47562
 
    SUBSCRIPT,
47563
 
    NEW_ARRAY,
47564
 
    DEL_ARRAY
 
56427
  /** Complex operator types. */
 
56428
  enum { 
 
56429
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
56430
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
56431
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
56432
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
47565
56433
  };
47566
56434
 
47567
56435
public:
47568
 
  CT_OperatorName (CTree *);
47569
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
56436
  /** Constructor.
 
56437
   *  \param op The token containing the operator. */
 
56438
  CT_OperatorName (CTree *op);
 
56439
  /** Constructor.
 
56440
   *  \param f The operator function keyword 'operator'.
 
56441
   *  \param op The token containing the operator. 
 
56442
   *  \param o The token of '[' or '('.
 
56443
   *  \param c The token of ']' or ')'. */
 
56444
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
56445
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47570
56446
  static const char *NodeId ();
 
56447
  /** Get the name of the node. Can be compared with NodeId(). */
47571
56448
  const char *NodeName () const { return NodeId (); }
 
56449
  /** Get the operator type (either the token type or one of 
 
56450
   *  the complex operator types). */
47572
56451
  int Operator () const { return _oper; }
47573
 
  // special new / delete with reusing memory
 
56452
 
 
56453
public:
 
56454
  /** Own new operator reusing memory. */
47574
56455
  void *operator new (size_t);
47575
 
  void  operator delete (void *);
 
56456
  /** Own delete operator. */
 
56457
  void operator delete (void *);
47576
56458
   private:
47577
56459
  typedef CT_OperatorName CCExprResolveExpr;
47578
56460
 
47579
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56461
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47580
56462
 public :
47581
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56463
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47582
56464
  typedef CT_OperatorName CExprResolveExpr;
47583
56465
 
47584
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56466
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47585
56467
 public :
47586
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47587
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56468
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56469
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47588
56470
};
47589
56471
 
 
56472
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
56473
 *  Tree node representing the name of a conversion function. */
47590
56474
 
47591
 
#line 47592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56475
#line 56476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47592
56476
} // closed Puma
 
56477
class CCExprResolve;
 
56478
class CExprResolve;
47593
56479
class WinIfExists;
47594
56480
class WinImportHandler;
47595
56481
class WinMacros;
47596
 
class CMatchSyntax;
47597
 
class ExtGnu;
 
56482
class WinAsm;
 
56483
class WinDeclSpecs;
 
56484
class WinMemberExplSpec;
 
56485
class WinTypeKeywords;
 
56486
class WinFriend;
47598
56487
class ExtAC;
47599
56488
class ExtACBuilderCoupling;
47600
56489
class ExtACSyntaxCoupling;
47601
56490
class ExtACTree;
47602
56491
class ExtACKeywords;
47603
 
class WinAsm;
47604
 
class WinDeclSpecs;
47605
 
class WinMemberExplSpec;
47606
 
class WinTypeKeywords;
 
56492
class ExtGnu;
47607
56493
class PragmaOnceUnitState;
47608
56494
class PragmaOnce;
47609
 
class CCExprResolve;
47610
 
class CExprResolve;
47611
 
namespace Puma {
47612
 
 
47613
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56495
class CMatchSyntax;
 
56496
namespace Puma {
 
56497
 
 
56498
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56499
 
 
56500
#line 56501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56501
} // closed Puma
 
56502
 
 
56503
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56504
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56505
#include "CCExprResolveH.ah"
 
56506
#endif
 
56507
namespace Puma {
 
56508
 
 
56509
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56510
 
 
56511
#line 56512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56512
} // closed Puma
 
56513
 
 
56514
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56515
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56516
#include "CExprResolveH.ah"
 
56517
#endif
 
56518
namespace Puma {
 
56519
 
 
56520
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47614
56521
class CT_ConversionName : public CT_SpecialName {
47615
 
#line 47616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56522
#line 56523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56523
  friend class ::CCExprResolve;
 
56524
  friend class ::CExprResolve;
47616
56525
  friend class ::WinIfExists;
47617
56526
  friend class ::WinImportHandler;
47618
56527
  friend class ::WinMacros;
47619
 
  friend class ::CMatchSyntax;
47620
 
  friend class ::ExtGnu;
 
56528
  friend class ::WinAsm;
 
56529
  friend class ::WinDeclSpecs;
 
56530
  friend class ::WinMemberExplSpec;
 
56531
  friend class ::WinTypeKeywords;
 
56532
  friend class ::WinFriend;
47621
56533
  friend class ::ExtAC;
47622
56534
  friend class ::ExtACBuilderCoupling;
47623
56535
  friend class ::ExtACSyntaxCoupling;
47624
56536
  friend class ::ExtACTree;
47625
56537
  friend class ::ExtACKeywords;
47626
 
  friend class ::WinAsm;
47627
 
  friend class ::WinDeclSpecs;
47628
 
  friend class ::WinMemberExplSpec;
47629
 
  friend class ::WinTypeKeywords;
 
56538
  friend class ::ExtGnu;
47630
56539
  friend class ::PragmaOnceUnitState;
47631
56540
  friend class ::PragmaOnce;
47632
 
  friend class ::CCExprResolve;
47633
 
  friend class ::CExprResolve;
 
56541
  friend class ::CMatchSyntax;
47634
56542
 
47635
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56543
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47636
56544
 
47637
56545
public:
47638
 
  CT_ConversionName (CTree *, CTree *);
 
56546
  /** Constructor.
 
56547
   *  \param f The operator function keyword 'operator'.
 
56548
   *  \param t The sub-tree containing the conversion type. */
 
56549
  CT_ConversionName (CTree *f, CTree *t);
 
56550
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47639
56551
  static const char *NodeId ();
 
56552
  /** Get the name of the node. Can be compared with NodeId(). */
47640
56553
  const char *NodeName () const { return NodeId (); }
 
56554
  /** Get the conversion type. */
47641
56555
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
47642
 
  // special new / delete with reusing memory
 
56556
 
 
56557
public:
 
56558
  /** Own new operator reusing memory. */
47643
56559
  void *operator new (size_t);
47644
 
  void  operator delete (void *);
 
56560
  /** Own delete operator. */
 
56561
  void operator delete (void *);
47645
56562
   private:
47646
56563
  typedef CT_ConversionName CCExprResolveExpr;
47647
56564
 
47648
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56565
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47649
56566
 public :
47650
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56567
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47651
56568
  typedef CT_ConversionName CExprResolveExpr;
47652
56569
 
47653
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56570
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47654
56571
 public :
47655
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47656
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56572
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56573
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47657
56574
};
47658
56575
 
 
56576
/** \class CT_QualName CTree.h Puma/CTree.h
 
56577
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
47659
56578
 
47660
 
#line 47661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56579
#line 56580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47661
56580
} // closed Puma
 
56581
class CCExprResolve;
 
56582
class CExprResolve;
47662
56583
class WinIfExists;
47663
56584
class WinImportHandler;
47664
56585
class WinMacros;
47665
 
class CMatchSyntax;
47666
 
class ExtGnu;
 
56586
class WinAsm;
 
56587
class WinDeclSpecs;
 
56588
class WinMemberExplSpec;
 
56589
class WinTypeKeywords;
 
56590
class WinFriend;
47667
56591
class ExtAC;
47668
56592
class ExtACBuilderCoupling;
47669
56593
class ExtACSyntaxCoupling;
47670
56594
class ExtACTree;
47671
56595
class ExtACKeywords;
47672
 
class WinAsm;
47673
 
class WinDeclSpecs;
47674
 
class WinMemberExplSpec;
47675
 
class WinTypeKeywords;
 
56596
class ExtGnu;
47676
56597
class PragmaOnceUnitState;
47677
56598
class PragmaOnce;
47678
 
class CCExprResolve;
47679
 
class CExprResolve;
47680
 
namespace Puma {
47681
 
 
47682
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56599
class CMatchSyntax;
 
56600
namespace Puma {
 
56601
 
 
56602
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56603
 
 
56604
#line 56605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56605
} // closed Puma
 
56606
 
 
56607
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56608
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56609
#include "CCExprResolveH.ah"
 
56610
#endif
 
56611
namespace Puma {
 
56612
 
 
56613
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56614
 
 
56615
#line 56616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56616
} // closed Puma
 
56617
 
 
56618
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56619
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56620
#include "CExprResolveH.ah"
 
56621
#endif
 
56622
namespace Puma {
 
56623
 
 
56624
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47683
56625
class CT_QualName : public CT_SimpleName {
47684
 
#line 47685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56626
#line 56627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56627
  friend class ::CCExprResolve;
 
56628
  friend class ::CExprResolve;
47685
56629
  friend class ::WinIfExists;
47686
56630
  friend class ::WinImportHandler;
47687
56631
  friend class ::WinMacros;
47688
 
  friend class ::CMatchSyntax;
47689
 
  friend class ::ExtGnu;
 
56632
  friend class ::WinAsm;
 
56633
  friend class ::WinDeclSpecs;
 
56634
  friend class ::WinMemberExplSpec;
 
56635
  friend class ::WinTypeKeywords;
 
56636
  friend class ::WinFriend;
47690
56637
  friend class ::ExtAC;
47691
56638
  friend class ::ExtACBuilderCoupling;
47692
56639
  friend class ::ExtACSyntaxCoupling;
47693
56640
  friend class ::ExtACTree;
47694
56641
  friend class ::ExtACKeywords;
47695
 
  friend class ::WinAsm;
47696
 
  friend class ::WinDeclSpecs;
47697
 
  friend class ::WinMemberExplSpec;
47698
 
  friend class ::WinTypeKeywords;
 
56642
  friend class ::ExtGnu;
47699
56643
  friend class ::PragmaOnceUnitState;
47700
56644
  friend class ::PragmaOnce;
47701
 
  friend class ::CCExprResolve;
47702
 
  friend class ::CExprResolve;
 
56645
  friend class ::CMatchSyntax;
47703
56646
 
47704
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56647
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47705
56648
 
47706
56649
public:
 
56650
  /** Constructor.
 
56651
   *  \param size The initial number sub-names plus separators. */
47707
56652
  CT_QualName (int size = 3) : 
47708
56653
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
56654
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47709
56655
  static const char *NodeId ();
 
56656
  /** Get the name of the node. Can be compared with NodeId(). */
47710
56657
  const char *NodeName () const { return NodeId (); }
47711
 
  void print (ostream &) const;
 
56658
  /** Print the qualified name on the given stream. 
 
56659
   *  \param os The output stream. */
 
56660
  void print (ostream &os) const;
 
56661
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
47712
56662
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
56663
  /** Get the string containing the last name of the qualified name. */
47713
56664
  const char *Text () const { return Name ()->Text (); }
 
56665
  /** Get the type of the last name. */
47714
56666
  CTypeInfo *Type () const { return Name ()->Type (); }
 
56667
  /** Get the value of the last name. */
47715
56668
  CExprValue *Value () const { return Name ()->Value (); }
 
56669
  /** Get the semantic value object of the last name. */
47716
56670
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
56671
  /** Get the semantic information object of the last name. */
47717
56672
  CSemObject *SemObject () const { return Name ()->SemObject (); }
47718
 
  // special new / delete with reusing memory
 
56673
 
 
56674
public:
 
56675
  /** Own new operator reusing memory. */
47719
56676
  void *operator new (size_t);
47720
 
  void  operator delete (void *);
 
56677
  /** Own delete operator. */
 
56678
  void operator delete (void *);
47721
56679
   private:
47722
56680
  typedef CT_QualName CCExprResolveExpr;
47723
56681
 
47724
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56682
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47725
56683
 public :
47726
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56684
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47727
56685
  typedef CT_QualName CExprResolveExpr;
47728
56686
 
47729
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56687
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47730
56688
 public :
47731
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47732
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56689
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56690
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47733
56691
};
47734
56692
 
 
56693
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
56694
 *  Tree node representing a qualified name with introducing name separator,
 
56695
 *  e.g. ::X::Y::Z. */
47735
56696
 
47736
 
#line 47737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56697
#line 56698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47737
56698
} // closed Puma
 
56699
class CCExprResolve;
 
56700
class CExprResolve;
47738
56701
class WinIfExists;
47739
56702
class WinImportHandler;
47740
56703
class WinMacros;
47741
 
class CMatchSyntax;
47742
 
class ExtGnu;
 
56704
class WinAsm;
 
56705
class WinDeclSpecs;
 
56706
class WinMemberExplSpec;
 
56707
class WinTypeKeywords;
 
56708
class WinFriend;
47743
56709
class ExtAC;
47744
56710
class ExtACBuilderCoupling;
47745
56711
class ExtACSyntaxCoupling;
47746
56712
class ExtACTree;
47747
56713
class ExtACKeywords;
47748
 
class WinAsm;
47749
 
class WinDeclSpecs;
47750
 
class WinMemberExplSpec;
47751
 
class WinTypeKeywords;
 
56714
class ExtGnu;
47752
56715
class PragmaOnceUnitState;
47753
56716
class PragmaOnce;
47754
 
class CCExprResolve;
47755
 
class CExprResolve;
47756
 
namespace Puma {
47757
 
 
47758
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56717
class CMatchSyntax;
 
56718
namespace Puma {
 
56719
 
 
56720
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56721
 
 
56722
#line 56723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56723
} // closed Puma
 
56724
 
 
56725
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56726
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56727
#include "CCExprResolveH.ah"
 
56728
#endif
 
56729
namespace Puma {
 
56730
 
 
56731
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56732
 
 
56733
#line 56734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56734
} // closed Puma
 
56735
 
 
56736
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56737
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56738
#include "CExprResolveH.ah"
 
56739
#endif
 
56740
namespace Puma {
 
56741
 
 
56742
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47759
56743
class CT_RootQualName : public CT_QualName {
47760
 
#line 47761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56744
#line 56745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56745
  friend class ::CCExprResolve;
 
56746
  friend class ::CExprResolve;
47761
56747
  friend class ::WinIfExists;
47762
56748
  friend class ::WinImportHandler;
47763
56749
  friend class ::WinMacros;
47764
 
  friend class ::CMatchSyntax;
47765
 
  friend class ::ExtGnu;
 
56750
  friend class ::WinAsm;
 
56751
  friend class ::WinDeclSpecs;
 
56752
  friend class ::WinMemberExplSpec;
 
56753
  friend class ::WinTypeKeywords;
 
56754
  friend class ::WinFriend;
47766
56755
  friend class ::ExtAC;
47767
56756
  friend class ::ExtACBuilderCoupling;
47768
56757
  friend class ::ExtACSyntaxCoupling;
47769
56758
  friend class ::ExtACTree;
47770
56759
  friend class ::ExtACKeywords;
47771
 
  friend class ::WinAsm;
47772
 
  friend class ::WinDeclSpecs;
47773
 
  friend class ::WinMemberExplSpec;
47774
 
  friend class ::WinTypeKeywords;
 
56760
  friend class ::ExtGnu;
47775
56761
  friend class ::PragmaOnceUnitState;
47776
56762
  friend class ::PragmaOnce;
47777
 
  friend class ::CCExprResolve;
47778
 
  friend class ::CExprResolve;
 
56763
  friend class ::CMatchSyntax;
47779
56764
 
47780
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56765
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47781
56766
 
47782
56767
public:
 
56768
  /** Constructor.
 
56769
   *  \param size Initial number of sub-name plus separator. */
47783
56770
  CT_RootQualName (int size = 2) : 
47784
56771
    CT_QualName (size) { AddProperties (INTRO); }
 
56772
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47785
56773
  static const char *NodeId ();
 
56774
  /** Get the name of the node. Can be compared with NodeId(). */
47786
56775
  const char *NodeName () const { return NodeId (); }
47787
 
  // special new / delete with reusing memory
 
56776
 
 
56777
public:
 
56778
  /** Own new operator reusing memory. */
47788
56779
  void *operator new (size_t);
47789
 
  void  operator delete (void *);
 
56780
  /** Own delete operator. */
 
56781
  void operator delete (void *);
47790
56782
   private:
47791
56783
  typedef CT_RootQualName CCExprResolveExpr;
47792
56784
 
47793
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56785
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47794
56786
 public :
47795
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56787
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47796
56788
  typedef CT_RootQualName CExprResolveExpr;
47797
56789
 
47798
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56790
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47799
56791
 public :
47800
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47801
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56792
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56793
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47802
56794
};
47803
56795
 
 
56796
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
56797
 *  Tree node representing a binary expression, e.g. a+b. */
47804
56798
 
47805
 
#line 47806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56799
#line 56800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47806
56800
} // closed Puma
 
56801
class CCExprResolve;
 
56802
class CExprResolve;
47807
56803
class WinIfExists;
47808
56804
class WinImportHandler;
47809
56805
class WinMacros;
47810
 
class CMatchSyntax;
47811
 
class ExtGnu;
 
56806
class WinAsm;
 
56807
class WinDeclSpecs;
 
56808
class WinMemberExplSpec;
 
56809
class WinTypeKeywords;
 
56810
class WinFriend;
47812
56811
class ExtAC;
47813
56812
class ExtACBuilderCoupling;
47814
56813
class ExtACSyntaxCoupling;
47815
56814
class ExtACTree;
47816
56815
class ExtACKeywords;
47817
 
class WinAsm;
47818
 
class WinDeclSpecs;
47819
 
class WinMemberExplSpec;
47820
 
class WinTypeKeywords;
 
56816
class ExtGnu;
47821
56817
class PragmaOnceUnitState;
47822
56818
class PragmaOnce;
47823
 
class CCExprResolve;
47824
 
class CExprResolve;
47825
 
namespace Puma {
47826
 
 
47827
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47828
 
class CT_BinaryExpr : public CT_Expression {
47829
 
#line 47830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56819
class CMatchSyntax;
 
56820
namespace Puma {
 
56821
 
 
56822
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56823
 
 
56824
#line 56825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56825
} // closed Puma
 
56826
 
 
56827
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56828
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56829
#include "CCExprResolveH.ah"
 
56830
#endif
 
56831
namespace Puma {
 
56832
 
 
56833
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56834
 
 
56835
#line 56836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56836
} // closed Puma
 
56837
 
 
56838
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56839
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56840
#include "CExprResolveH.ah"
 
56841
#endif
 
56842
namespace Puma {
 
56843
 
 
56844
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56845
class CT_BinaryExpr : public CT_Call {
 
56846
#line 56847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56847
  friend class ::CCExprResolve;
 
56848
  friend class ::CExprResolve;
47830
56849
  friend class ::WinIfExists;
47831
56850
  friend class ::WinImportHandler;
47832
56851
  friend class ::WinMacros;
47833
 
  friend class ::CMatchSyntax;
47834
 
  friend class ::ExtGnu;
 
56852
  friend class ::WinAsm;
 
56853
  friend class ::WinDeclSpecs;
 
56854
  friend class ::WinMemberExplSpec;
 
56855
  friend class ::WinTypeKeywords;
 
56856
  friend class ::WinFriend;
47835
56857
  friend class ::ExtAC;
47836
56858
  friend class ::ExtACBuilderCoupling;
47837
56859
  friend class ::ExtACSyntaxCoupling;
47838
56860
  friend class ::ExtACTree;
47839
56861
  friend class ::ExtACKeywords;
47840
 
  friend class ::WinAsm;
47841
 
  friend class ::WinDeclSpecs;
47842
 
  friend class ::WinMemberExplSpec;
47843
 
  friend class ::WinTypeKeywords;
 
56862
  friend class ::ExtGnu;
47844
56863
  friend class ::PragmaOnceUnitState;
47845
56864
  friend class ::PragmaOnce;
47846
 
  friend class ::CCExprResolve;
47847
 
  friend class ::CExprResolve;
 
56865
  friend class ::CMatchSyntax;
47848
56866
 
47849
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56867
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47850
56868
 
47851
56869
  CTree *sons[3]; // expr, oper, expr
47852
56870
 
47853
56871
public:
 
56872
  /** Constructor. 
 
56873
   *  \param l Left hand side of the expression. 
 
56874
   *  \param o The operator token. 
 
56875
   *  \param r Right hand side of the expression. */
47854
56876
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
47855
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
56877
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
47856
56878
  }
 
56879
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47857
56880
  static const char *NodeId ();
 
56881
  /** Get the name of the node. Can be compared with NodeId(). */
47858
56882
  const char *NodeName () const { return NodeId (); }
 
56883
  /** Get the number of sons. */
47859
56884
  int Sons () const { return 3; }
 
56885
  /** Get the n-th son.
 
56886
   *  \param n The index of the son.
 
56887
   *  \return The n-th son or NULL. */
47860
56888
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
56889
  /** Replace a son.
 
56890
   *  \param old_son The son to replace.
 
56891
   *  \param new_son The new son. */
47861
56892
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47862
56893
    CTree::ReplaceSon (sons, 3, old_son, new_son);
47863
56894
  }
47864
56895
   private:
47865
56896
  typedef CT_BinaryExpr CCExprResolveExpr;
47866
56897
 
47867
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56898
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47868
56899
 public :
47869
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56900
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47870
56901
  typedef CT_BinaryExpr CExprResolveExpr;
47871
56902
 
47872
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56903
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47873
56904
 public :
47874
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47875
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56905
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56906
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47876
56907
};
47877
56908
 
 
56909
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
56910
 *  Tree node representing a member pointer expression, e.g. a->b. */
47878
56911
 
47879
 
#line 47880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56912
#line 56913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47880
56913
} // closed Puma
 
56914
class CCExprResolve;
 
56915
class CExprResolve;
47881
56916
class WinIfExists;
47882
56917
class WinImportHandler;
47883
56918
class WinMacros;
47884
 
class CMatchSyntax;
47885
 
class ExtGnu;
 
56919
class WinAsm;
 
56920
class WinDeclSpecs;
 
56921
class WinMemberExplSpec;
 
56922
class WinTypeKeywords;
 
56923
class WinFriend;
47886
56924
class ExtAC;
47887
56925
class ExtACBuilderCoupling;
47888
56926
class ExtACSyntaxCoupling;
47889
56927
class ExtACTree;
47890
56928
class ExtACKeywords;
47891
 
class WinAsm;
47892
 
class WinDeclSpecs;
47893
 
class WinMemberExplSpec;
47894
 
class WinTypeKeywords;
 
56929
class ExtGnu;
47895
56930
class PragmaOnceUnitState;
47896
56931
class PragmaOnce;
47897
 
class CCExprResolve;
47898
 
class CExprResolve;
47899
 
namespace Puma {
47900
 
 
47901
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47902
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
47903
 
#line 47904 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
56932
class CMatchSyntax;
 
56933
namespace Puma {
 
56934
 
 
56935
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56936
 
 
56937
#line 56938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56938
} // closed Puma
 
56939
 
 
56940
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56941
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56942
#include "CCExprResolveH.ah"
 
56943
#endif
 
56944
namespace Puma {
 
56945
 
 
56946
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56947
 
 
56948
#line 56949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56949
} // closed Puma
 
56950
 
 
56951
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56952
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56953
#include "CExprResolveH.ah"
 
56954
#endif
 
56955
namespace Puma {
 
56956
 
 
56957
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56958
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
56959
#line 56960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
56960
  friend class ::CCExprResolve;
 
56961
  friend class ::CExprResolve;
47904
56962
  friend class ::WinIfExists;
47905
56963
  friend class ::WinImportHandler;
47906
56964
  friend class ::WinMacros;
47907
 
  friend class ::CMatchSyntax;
47908
 
  friend class ::ExtGnu;
 
56965
  friend class ::WinAsm;
 
56966
  friend class ::WinDeclSpecs;
 
56967
  friend class ::WinMemberExplSpec;
 
56968
  friend class ::WinTypeKeywords;
 
56969
  friend class ::WinFriend;
47909
56970
  friend class ::ExtAC;
47910
56971
  friend class ::ExtACBuilderCoupling;
47911
56972
  friend class ::ExtACSyntaxCoupling;
47912
56973
  friend class ::ExtACTree;
47913
56974
  friend class ::ExtACKeywords;
47914
 
  friend class ::WinAsm;
47915
 
  friend class ::WinDeclSpecs;
47916
 
  friend class ::WinMemberExplSpec;
47917
 
  friend class ::WinTypeKeywords;
 
56975
  friend class ::ExtGnu;
47918
56976
  friend class ::PragmaOnceUnitState;
47919
56977
  friend class ::PragmaOnce;
47920
 
  friend class ::CCExprResolve;
47921
 
  friend class ::CExprResolve;
47922
 
 
47923
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47924
 
 
 
56978
  friend class ::CMatchSyntax;
 
56979
 
 
56980
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56981
 
 
56982
  CTree *sons[3]; // expr, oper, expr
 
56983
  
47925
56984
public:
47926
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
47927
 
    CT_BinaryExpr (e, o, i) {}
 
56985
  /** Constructor.
 
56986
   *  \param e Expression on which to call the member.
 
56987
   *  \param o The arrow operator token.
 
56988
   *  \param i The member name. */
 
56989
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
56990
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
56991
  }
 
56992
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47928
56993
  static const char *NodeId ();
 
56994
  /** Get the name of the node. Can be compared with NodeId(). */
47929
56995
  const char *NodeName () const { return NodeId (); }
47930
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
56996
  /** Get the number of sons. */
 
56997
  int Sons () const { return 3; }
 
56998
  /** Get the n-th son.
 
56999
   *  \param n The index of the son.
 
57000
   *  \return The n-th son or NULL. */
 
57001
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
57002
  /** Replace a son.
 
57003
   *  \param old_son The son to replace.
 
57004
   *  \param new_son The new son. */
 
57005
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
57006
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
57007
  }
47931
57008
   private:
47932
57009
  typedef CT_MembPtrExpr CCExprResolveExpr;
47933
57010
 
47934
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57011
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47935
57012
 public :
47936
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57013
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47937
57014
  typedef CT_MembPtrExpr CExprResolveExpr;
47938
57015
 
47939
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57016
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47940
57017
 public :
47941
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47942
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57018
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57019
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47943
57020
};
47944
57021
 
 
57022
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
57023
 *  Tree node representing a member reference expression, e.g. a.b. */
47945
57024
 
47946
 
#line 47947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57025
#line 57026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
47947
57026
} // closed Puma
 
57027
class CCExprResolve;
 
57028
class CExprResolve;
47948
57029
class WinIfExists;
47949
57030
class WinImportHandler;
47950
57031
class WinMacros;
47951
 
class CMatchSyntax;
47952
 
class ExtGnu;
 
57032
class WinAsm;
 
57033
class WinDeclSpecs;
 
57034
class WinMemberExplSpec;
 
57035
class WinTypeKeywords;
 
57036
class WinFriend;
47953
57037
class ExtAC;
47954
57038
class ExtACBuilderCoupling;
47955
57039
class ExtACSyntaxCoupling;
47956
57040
class ExtACTree;
47957
57041
class ExtACKeywords;
47958
 
class WinAsm;
47959
 
class WinDeclSpecs;
47960
 
class WinMemberExplSpec;
47961
 
class WinTypeKeywords;
 
57042
class ExtGnu;
47962
57043
class PragmaOnceUnitState;
47963
57044
class PragmaOnce;
47964
 
class CCExprResolve;
47965
 
class CExprResolve;
47966
 
namespace Puma {
47967
 
 
47968
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57045
class CMatchSyntax;
 
57046
namespace Puma {
 
57047
 
 
57048
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57049
 
 
57050
#line 57051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57051
} // closed Puma
 
57052
 
 
57053
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57054
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57055
#include "CCExprResolveH.ah"
 
57056
#endif
 
57057
namespace Puma {
 
57058
 
 
57059
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57060
 
 
57061
#line 57062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57062
} // closed Puma
 
57063
 
 
57064
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57065
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57066
#include "CExprResolveH.ah"
 
57067
#endif
 
57068
namespace Puma {
 
57069
 
 
57070
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47969
57071
class CT_MembRefExpr : public CT_MembPtrExpr {
47970
 
#line 47971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57072
#line 57073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57073
  friend class ::CCExprResolve;
 
57074
  friend class ::CExprResolve;
47971
57075
  friend class ::WinIfExists;
47972
57076
  friend class ::WinImportHandler;
47973
57077
  friend class ::WinMacros;
47974
 
  friend class ::CMatchSyntax;
47975
 
  friend class ::ExtGnu;
 
57078
  friend class ::WinAsm;
 
57079
  friend class ::WinDeclSpecs;
 
57080
  friend class ::WinMemberExplSpec;
 
57081
  friend class ::WinTypeKeywords;
 
57082
  friend class ::WinFriend;
47976
57083
  friend class ::ExtAC;
47977
57084
  friend class ::ExtACBuilderCoupling;
47978
57085
  friend class ::ExtACSyntaxCoupling;
47979
57086
  friend class ::ExtACTree;
47980
57087
  friend class ::ExtACKeywords;
47981
 
  friend class ::WinAsm;
47982
 
  friend class ::WinDeclSpecs;
47983
 
  friend class ::WinMemberExplSpec;
47984
 
  friend class ::WinTypeKeywords;
 
57088
  friend class ::ExtGnu;
47985
57089
  friend class ::PragmaOnceUnitState;
47986
57090
  friend class ::PragmaOnce;
47987
 
  friend class ::CCExprResolve;
47988
 
  friend class ::CExprResolve;
 
57091
  friend class ::CMatchSyntax;
47989
57092
 
47990
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57093
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47991
57094
 
47992
57095
public:
 
57096
  /** Constructor.
 
57097
   *  \param e Expression on which to call the member.
 
57098
   *  \param o The dot operator.
 
57099
   *  \param i The member name. */
47993
57100
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
47994
57101
    CT_MembPtrExpr (e, o, i) {}
 
57102
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47995
57103
  static const char *NodeId ();
 
57104
  /** Get the name of the node. Can be compared with NodeId(). */
47996
57105
  const char *NodeName () const { return NodeId (); }
47997
57106
   private:
47998
57107
  typedef CT_MembRefExpr CCExprResolveExpr;
47999
57108
 
48000
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57109
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48001
57110
 public :
48002
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57111
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48003
57112
  typedef CT_MembRefExpr CExprResolveExpr;
48004
57113
 
48005
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57114
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48006
57115
 public :
48007
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48008
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57116
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57117
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48009
57118
};
48010
57119
 
 
57120
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
57121
 *  Base class for tree nodes representing unary expressions. */
48011
57122
 
48012
 
#line 48013 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57123
#line 57124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48013
57124
} // closed Puma
 
57125
class CCExprResolve;
 
57126
class CExprResolve;
48014
57127
class WinIfExists;
48015
57128
class WinImportHandler;
48016
57129
class WinMacros;
48017
 
class CMatchSyntax;
48018
 
class ExtGnu;
 
57130
class WinAsm;
 
57131
class WinDeclSpecs;
 
57132
class WinMemberExplSpec;
 
57133
class WinTypeKeywords;
 
57134
class WinFriend;
48019
57135
class ExtAC;
48020
57136
class ExtACBuilderCoupling;
48021
57137
class ExtACSyntaxCoupling;
48022
57138
class ExtACTree;
48023
57139
class ExtACKeywords;
48024
 
class WinAsm;
48025
 
class WinDeclSpecs;
48026
 
class WinMemberExplSpec;
48027
 
class WinTypeKeywords;
 
57140
class ExtGnu;
48028
57141
class PragmaOnceUnitState;
48029
57142
class PragmaOnce;
48030
 
class CCExprResolve;
48031
 
class CExprResolve;
48032
 
namespace Puma {
48033
 
 
48034
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48035
 
class CT_UnaryExpr : public CT_Expression {
48036
 
#line 48037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57143
class CMatchSyntax;
 
57144
namespace Puma {
 
57145
 
 
57146
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57147
 
 
57148
#line 57149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57149
} // closed Puma
 
57150
 
 
57151
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57152
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57153
#include "CCExprResolveH.ah"
 
57154
#endif
 
57155
namespace Puma {
 
57156
 
 
57157
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57158
 
 
57159
#line 57160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57160
} // closed Puma
 
57161
 
 
57162
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57163
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57164
#include "CExprResolveH.ah"
 
57165
#endif
 
57166
namespace Puma {
 
57167
 
 
57168
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57169
class CT_UnaryExpr : public CT_Call {
 
57170
#line 57171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57171
  friend class ::CCExprResolve;
 
57172
  friend class ::CExprResolve;
48037
57173
  friend class ::WinIfExists;
48038
57174
  friend class ::WinImportHandler;
48039
57175
  friend class ::WinMacros;
48040
 
  friend class ::CMatchSyntax;
48041
 
  friend class ::ExtGnu;
 
57176
  friend class ::WinAsm;
 
57177
  friend class ::WinDeclSpecs;
 
57178
  friend class ::WinMemberExplSpec;
 
57179
  friend class ::WinTypeKeywords;
 
57180
  friend class ::WinFriend;
48042
57181
  friend class ::ExtAC;
48043
57182
  friend class ::ExtACBuilderCoupling;
48044
57183
  friend class ::ExtACSyntaxCoupling;
48045
57184
  friend class ::ExtACTree;
48046
57185
  friend class ::ExtACKeywords;
48047
 
  friend class ::WinAsm;
48048
 
  friend class ::WinDeclSpecs;
48049
 
  friend class ::WinMemberExplSpec;
48050
 
  friend class ::WinTypeKeywords;
 
57186
  friend class ::ExtGnu;
48051
57187
  friend class ::PragmaOnceUnitState;
48052
57188
  friend class ::PragmaOnce;
48053
 
  friend class ::CCExprResolve;
48054
 
  friend class ::CExprResolve;
 
57189
  friend class ::CMatchSyntax;
48055
57190
 
48056
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57191
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48057
57192
 
48058
57193
  CTree *sons[2]; // oper, expr
48059
57194
 
48060
57195
public:
48061
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
57196
  /** Constructor.
 
57197
   *  \param o The unary operator.
 
57198
   *  \param e The expression on which the operator is invoked. */
 
57199
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
57200
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48062
57201
  static const char *NodeId ();
 
57202
  /** Get the name of the node. Can be compared with NodeId(). */
48063
57203
  const char *NodeName () const { return NodeId (); }
 
57204
  /** Get the number of sons. */
48064
57205
  int Sons () const { return 2; }
 
57206
  /** Get the n-th son.
 
57207
   *  \param n The index of the son.
 
57208
   *  \return The n-th son or NULL. */
48065
57209
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
57210
  /** Replace a son.
 
57211
   *  \param old_son The son to replace.
 
57212
   *  \param new_son The new son. */
48066
57213
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48067
57214
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48068
57215
  }
 
57216
  /** Get the expression node. */
48069
57217
  CTree *Expr () const { return sons[1]; }
48070
57218
   private:
48071
57219
  typedef CT_UnaryExpr CCExprResolveExpr;
48072
57220
 
48073
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57221
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48074
57222
 public :
48075
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57223
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48076
57224
  typedef CT_UnaryExpr CExprResolveExpr;
48077
57225
 
48078
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57226
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48079
57227
 public :
48080
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48081
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57228
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57229
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48082
57230
};
48083
57231
 
 
57232
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
57233
 *  Tree node representing a postfix expression, e.g. a++. */
48084
57234
 
48085
 
#line 48086 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57235
#line 57236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48086
57236
} // closed Puma
 
57237
class CCExprResolve;
 
57238
class CExprResolve;
48087
57239
class WinIfExists;
48088
57240
class WinImportHandler;
48089
57241
class WinMacros;
48090
 
class CMatchSyntax;
48091
 
class ExtGnu;
 
57242
class WinAsm;
 
57243
class WinDeclSpecs;
 
57244
class WinMemberExplSpec;
 
57245
class WinTypeKeywords;
 
57246
class WinFriend;
48092
57247
class ExtAC;
48093
57248
class ExtACBuilderCoupling;
48094
57249
class ExtACSyntaxCoupling;
48095
57250
class ExtACTree;
48096
57251
class ExtACKeywords;
48097
 
class WinAsm;
48098
 
class WinDeclSpecs;
48099
 
class WinMemberExplSpec;
48100
 
class WinTypeKeywords;
 
57252
class ExtGnu;
48101
57253
class PragmaOnceUnitState;
48102
57254
class PragmaOnce;
48103
 
class CCExprResolve;
48104
 
class CExprResolve;
48105
 
namespace Puma {
48106
 
 
48107
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57255
class CMatchSyntax;
 
57256
namespace Puma {
 
57257
 
 
57258
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57259
 
 
57260
#line 57261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57261
} // closed Puma
 
57262
 
 
57263
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57264
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57265
#include "CCExprResolveH.ah"
 
57266
#endif
 
57267
namespace Puma {
 
57268
 
 
57269
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57270
 
 
57271
#line 57272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57272
} // closed Puma
 
57273
 
 
57274
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57275
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57276
#include "CExprResolveH.ah"
 
57277
#endif
 
57278
namespace Puma {
 
57279
 
 
57280
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48108
57281
class CT_PostfixExpr : public CT_UnaryExpr {
48109
 
#line 48110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57282
#line 57283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57283
  friend class ::CCExprResolve;
 
57284
  friend class ::CExprResolve;
48110
57285
  friend class ::WinIfExists;
48111
57286
  friend class ::WinImportHandler;
48112
57287
  friend class ::WinMacros;
48113
 
  friend class ::CMatchSyntax;
48114
 
  friend class ::ExtGnu;
 
57288
  friend class ::WinAsm;
 
57289
  friend class ::WinDeclSpecs;
 
57290
  friend class ::WinMemberExplSpec;
 
57291
  friend class ::WinTypeKeywords;
 
57292
  friend class ::WinFriend;
48115
57293
  friend class ::ExtAC;
48116
57294
  friend class ::ExtACBuilderCoupling;
48117
57295
  friend class ::ExtACSyntaxCoupling;
48118
57296
  friend class ::ExtACTree;
48119
57297
  friend class ::ExtACKeywords;
48120
 
  friend class ::WinAsm;
48121
 
  friend class ::WinDeclSpecs;
48122
 
  friend class ::WinMemberExplSpec;
48123
 
  friend class ::WinTypeKeywords;
 
57298
  friend class ::ExtGnu;
48124
57299
  friend class ::PragmaOnceUnitState;
48125
57300
  friend class ::PragmaOnce;
48126
 
  friend class ::CCExprResolve;
48127
 
  friend class ::CExprResolve;
 
57301
  friend class ::CMatchSyntax;
48128
57302
 
48129
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57303
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48130
57304
 
48131
57305
public:
 
57306
  /** Constructor.
 
57307
   *  \param e The expression on which to invoke the operator. 
 
57308
   *  \param o The postfix operator. */
48132
57309
  CT_PostfixExpr (CTree *e, CTree *o) :
48133
57310
    CT_UnaryExpr (e, o) {}
 
57311
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48134
57312
  static const char *NodeId ();
 
57313
  /** Get the name of the node. Can be compared with NodeId(). */
48135
57314
  const char *NodeName () const { return NodeId (); }
48136
57315
   private:
48137
57316
  typedef CT_PostfixExpr CCExprResolveExpr;
48138
57317
 
48139
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57318
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48140
57319
 public :
48141
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57320
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48142
57321
  typedef CT_PostfixExpr CExprResolveExpr;
48143
57322
 
48144
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57323
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48145
57324
 public :
48146
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48147
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57325
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57326
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48148
57327
};
48149
57328
 
 
57329
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
57330
 *  Tree node representing an address expression, e.g. &a. */
48150
57331
 
48151
 
#line 48152 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57332
#line 57333 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48152
57333
} // closed Puma
 
57334
class CCExprResolve;
 
57335
class CExprResolve;
48153
57336
class WinIfExists;
48154
57337
class WinImportHandler;
48155
57338
class WinMacros;
48156
 
class CMatchSyntax;
48157
 
class ExtGnu;
 
57339
class WinAsm;
 
57340
class WinDeclSpecs;
 
57341
class WinMemberExplSpec;
 
57342
class WinTypeKeywords;
 
57343
class WinFriend;
48158
57344
class ExtAC;
48159
57345
class ExtACBuilderCoupling;
48160
57346
class ExtACSyntaxCoupling;
48161
57347
class ExtACTree;
48162
57348
class ExtACKeywords;
48163
 
class WinAsm;
48164
 
class WinDeclSpecs;
48165
 
class WinMemberExplSpec;
48166
 
class WinTypeKeywords;
 
57349
class ExtGnu;
48167
57350
class PragmaOnceUnitState;
48168
57351
class PragmaOnce;
48169
 
class CCExprResolve;
48170
 
class CExprResolve;
48171
 
namespace Puma {
48172
 
 
48173
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57352
class CMatchSyntax;
 
57353
namespace Puma {
 
57354
 
 
57355
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57356
 
 
57357
#line 57358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57358
} // closed Puma
 
57359
 
 
57360
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57361
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57362
#include "CCExprResolveH.ah"
 
57363
#endif
 
57364
namespace Puma {
 
57365
 
 
57366
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57367
 
 
57368
#line 57369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57369
} // closed Puma
 
57370
 
 
57371
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57372
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57373
#include "CExprResolveH.ah"
 
57374
#endif
 
57375
namespace Puma {
 
57376
 
 
57377
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48174
57378
class CT_AddrExpr : public CT_UnaryExpr {
48175
 
#line 48176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57379
#line 57380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57380
  friend class ::CCExprResolve;
 
57381
  friend class ::CExprResolve;
48176
57382
  friend class ::WinIfExists;
48177
57383
  friend class ::WinImportHandler;
48178
57384
  friend class ::WinMacros;
48179
 
  friend class ::CMatchSyntax;
48180
 
  friend class ::ExtGnu;
 
57385
  friend class ::WinAsm;
 
57386
  friend class ::WinDeclSpecs;
 
57387
  friend class ::WinMemberExplSpec;
 
57388
  friend class ::WinTypeKeywords;
 
57389
  friend class ::WinFriend;
48181
57390
  friend class ::ExtAC;
48182
57391
  friend class ::ExtACBuilderCoupling;
48183
57392
  friend class ::ExtACSyntaxCoupling;
48184
57393
  friend class ::ExtACTree;
48185
57394
  friend class ::ExtACKeywords;
48186
 
  friend class ::WinAsm;
48187
 
  friend class ::WinDeclSpecs;
48188
 
  friend class ::WinMemberExplSpec;
48189
 
  friend class ::WinTypeKeywords;
 
57395
  friend class ::ExtGnu;
48190
57396
  friend class ::PragmaOnceUnitState;
48191
57397
  friend class ::PragmaOnce;
48192
 
  friend class ::CCExprResolve;
48193
 
  friend class ::CExprResolve;
 
57398
  friend class ::CMatchSyntax;
48194
57399
 
48195
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57400
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48196
57401
 
48197
57402
public:
 
57403
  /** Constructor.
 
57404
   *  \param o The address operator, i.e. '&'.
 
57405
   *  \param e The expression from which to take the address. */
48198
57406
  CT_AddrExpr (CTree *o, CTree *e) :
48199
57407
    CT_UnaryExpr (o, e) {}
 
57408
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48200
57409
  static const char *NodeId ();
 
57410
  /** Get the name of the node. Can be compared with NodeId(). */
48201
57411
  const char *NodeName () const { return NodeId (); }
48202
57412
   private:
48203
57413
  typedef CT_AddrExpr CCExprResolveExpr;
48204
57414
 
48205
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57415
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48206
57416
 public :
48207
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57417
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48208
57418
  typedef CT_AddrExpr CExprResolveExpr;
48209
57419
 
48210
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57420
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48211
57421
 public :
48212
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48213
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57422
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57423
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48214
57424
};
48215
57425
 
 
57426
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
57427
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
48216
57428
 
48217
 
#line 48218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57429
#line 57430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48218
57430
} // closed Puma
 
57431
class CCExprResolve;
 
57432
class CExprResolve;
48219
57433
class WinIfExists;
48220
57434
class WinImportHandler;
48221
57435
class WinMacros;
48222
 
class CMatchSyntax;
48223
 
class ExtGnu;
 
57436
class WinAsm;
 
57437
class WinDeclSpecs;
 
57438
class WinMemberExplSpec;
 
57439
class WinTypeKeywords;
 
57440
class WinFriend;
48224
57441
class ExtAC;
48225
57442
class ExtACBuilderCoupling;
48226
57443
class ExtACSyntaxCoupling;
48227
57444
class ExtACTree;
48228
57445
class ExtACKeywords;
48229
 
class WinAsm;
48230
 
class WinDeclSpecs;
48231
 
class WinMemberExplSpec;
48232
 
class WinTypeKeywords;
 
57446
class ExtGnu;
48233
57447
class PragmaOnceUnitState;
48234
57448
class PragmaOnce;
48235
 
class CCExprResolve;
48236
 
class CExprResolve;
48237
 
namespace Puma {
48238
 
 
48239
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57449
class CMatchSyntax;
 
57450
namespace Puma {
 
57451
 
 
57452
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57453
 
 
57454
#line 57455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57455
} // closed Puma
 
57456
 
 
57457
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57458
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57459
#include "CCExprResolveH.ah"
 
57460
#endif
 
57461
namespace Puma {
 
57462
 
 
57463
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57464
 
 
57465
#line 57466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57466
} // closed Puma
 
57467
 
 
57468
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57469
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57470
#include "CExprResolveH.ah"
 
57471
#endif
 
57472
namespace Puma {
 
57473
 
 
57474
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48240
57475
class CT_DerefExpr : public CT_UnaryExpr {
48241
 
#line 48242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57476
#line 57477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57477
  friend class ::CCExprResolve;
 
57478
  friend class ::CExprResolve;
48242
57479
  friend class ::WinIfExists;
48243
57480
  friend class ::WinImportHandler;
48244
57481
  friend class ::WinMacros;
48245
 
  friend class ::CMatchSyntax;
48246
 
  friend class ::ExtGnu;
 
57482
  friend class ::WinAsm;
 
57483
  friend class ::WinDeclSpecs;
 
57484
  friend class ::WinMemberExplSpec;
 
57485
  friend class ::WinTypeKeywords;
 
57486
  friend class ::WinFriend;
48247
57487
  friend class ::ExtAC;
48248
57488
  friend class ::ExtACBuilderCoupling;
48249
57489
  friend class ::ExtACSyntaxCoupling;
48250
57490
  friend class ::ExtACTree;
48251
57491
  friend class ::ExtACKeywords;
48252
 
  friend class ::WinAsm;
48253
 
  friend class ::WinDeclSpecs;
48254
 
  friend class ::WinMemberExplSpec;
48255
 
  friend class ::WinTypeKeywords;
 
57492
  friend class ::ExtGnu;
48256
57493
  friend class ::PragmaOnceUnitState;
48257
57494
  friend class ::PragmaOnce;
48258
 
  friend class ::CCExprResolve;
48259
 
  friend class ::CExprResolve;
 
57495
  friend class ::CMatchSyntax;
48260
57496
 
48261
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57497
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48262
57498
 
48263
57499
public:
 
57500
  /** Constructor.
 
57501
   *  \param o The dereferencing operator, i.e. '*'.
 
57502
   *  \param e The expression to dereference. */
48264
57503
  CT_DerefExpr (CTree *o, CTree *e) :
48265
57504
    CT_UnaryExpr (o, e) {}
 
57505
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48266
57506
  static const char *NodeId ();
 
57507
  /** Get the name of the node. Can be compared with NodeId(). */
48267
57508
  const char *NodeName () const { return NodeId (); }
48268
57509
   private:
48269
57510
  typedef CT_DerefExpr CCExprResolveExpr;
48270
57511
 
48271
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57512
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48272
57513
 public :
48273
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57514
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48274
57515
  typedef CT_DerefExpr CExprResolveExpr;
48275
57516
 
48276
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57517
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48277
57518
 public :
48278
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48279
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57519
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57520
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48280
57521
};
48281
57522
 
 
57523
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
57524
 *  Tree node representing a delete expression, e.g. delete a. */
48282
57525
 
48283
 
#line 48284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57526
#line 57527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48284
57527
} // closed Puma
 
57528
class CCExprResolve;
 
57529
class CExprResolve;
48285
57530
class WinIfExists;
48286
57531
class WinImportHandler;
48287
57532
class WinMacros;
48288
 
class CMatchSyntax;
48289
 
class ExtGnu;
 
57533
class WinAsm;
 
57534
class WinDeclSpecs;
 
57535
class WinMemberExplSpec;
 
57536
class WinTypeKeywords;
 
57537
class WinFriend;
48290
57538
class ExtAC;
48291
57539
class ExtACBuilderCoupling;
48292
57540
class ExtACSyntaxCoupling;
48293
57541
class ExtACTree;
48294
57542
class ExtACKeywords;
48295
 
class WinAsm;
48296
 
class WinDeclSpecs;
48297
 
class WinMemberExplSpec;
48298
 
class WinTypeKeywords;
 
57543
class ExtGnu;
48299
57544
class PragmaOnceUnitState;
48300
57545
class PragmaOnce;
48301
 
class CCExprResolve;
48302
 
class CExprResolve;
48303
 
namespace Puma {
48304
 
 
48305
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57546
class CMatchSyntax;
 
57547
namespace Puma {
 
57548
 
 
57549
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57550
 
 
57551
#line 57552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57552
} // closed Puma
 
57553
 
 
57554
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57555
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57556
#include "CCExprResolveH.ah"
 
57557
#endif
 
57558
namespace Puma {
 
57559
 
 
57560
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57561
 
 
57562
#line 57563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57563
} // closed Puma
 
57564
 
 
57565
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57566
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57567
#include "CExprResolveH.ah"
 
57568
#endif
 
57569
namespace Puma {
 
57570
 
 
57571
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48306
57572
class CT_DeleteExpr : public CT_Expression, public CSemObject {
48307
 
#line 48308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57573
#line 57574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57574
  friend class ::CCExprResolve;
 
57575
  friend class ::CExprResolve;
48308
57576
  friend class ::WinIfExists;
48309
57577
  friend class ::WinImportHandler;
48310
57578
  friend class ::WinMacros;
48311
 
  friend class ::CMatchSyntax;
48312
 
  friend class ::ExtGnu;
 
57579
  friend class ::WinAsm;
 
57580
  friend class ::WinDeclSpecs;
 
57581
  friend class ::WinMemberExplSpec;
 
57582
  friend class ::WinTypeKeywords;
 
57583
  friend class ::WinFriend;
48313
57584
  friend class ::ExtAC;
48314
57585
  friend class ::ExtACBuilderCoupling;
48315
57586
  friend class ::ExtACSyntaxCoupling;
48316
57587
  friend class ::ExtACTree;
48317
57588
  friend class ::ExtACKeywords;
48318
 
  friend class ::WinAsm;
48319
 
  friend class ::WinDeclSpecs;
48320
 
  friend class ::WinMemberExplSpec;
48321
 
  friend class ::WinTypeKeywords;
 
57589
  friend class ::ExtGnu;
48322
57590
  friend class ::PragmaOnceUnitState;
48323
57591
  friend class ::PragmaOnce;
48324
 
  friend class ::CCExprResolve;
48325
 
  friend class ::CExprResolve;
 
57592
  friend class ::CMatchSyntax;
48326
57593
 
48327
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57594
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48328
57595
 
48329
57596
  CTree *sons[2]; // oper, expr
48330
57597
 
48331
57598
public:
48332
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
57599
  /** Constructor.
 
57600
   *  \param op The delete operator.
 
57601
   *  \param e The expression representing the object to delete. */
 
57602
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
57603
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48333
57604
  static const char *NodeId ();
 
57605
  /** Get the name of the node. Can be compared with NodeId(). */
48334
57606
  const char *NodeName () const { return NodeId (); }
 
57607
  /** Get the number of sons. */
48335
57608
  int Sons () const { return 2; }
 
57609
  /** Get the n-th son.
 
57610
   *  \param n The index of the son.
 
57611
   *  \return The n-th son or NULL. */
48336
57612
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
57613
  /** Replace a son.
 
57614
   *  \param old_son The son to replace.
 
57615
   *  \param new_son The new son. */
48337
57616
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48338
57617
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48339
57618
  }
 
57619
  /** Get the expression. */
48340
57620
  CTree *Expr () const { return sons[1]; }
 
57621
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
48341
57622
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
57623
  /** Get the semantic information object. */
48342
57624
  CSemObject *SemObject () const { return (CSemObject*)this; }
48343
57625
   private:
48344
57626
  typedef CT_DeleteExpr CCExprResolveExpr;
48345
57627
 
48346
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57628
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48347
57629
 public :
48348
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57630
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48349
57631
  typedef CT_DeleteExpr CExprResolveExpr;
48350
57632
 
48351
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57633
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48352
57634
 public :
48353
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48354
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57635
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57636
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48355
57637
};
48356
57638
 
 
57639
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
57640
 *  Tree node representing a new expression, e.g. new A(). */
48357
57641
 
48358
 
#line 48359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57642
#line 57643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48359
57643
} // closed Puma
 
57644
class CCExprResolve;
 
57645
class CExprResolve;
48360
57646
class WinIfExists;
48361
57647
class WinImportHandler;
48362
57648
class WinMacros;
48363
 
class CMatchSyntax;
48364
 
class ExtGnu;
 
57649
class WinAsm;
 
57650
class WinDeclSpecs;
 
57651
class WinMemberExplSpec;
 
57652
class WinTypeKeywords;
 
57653
class WinFriend;
48365
57654
class ExtAC;
48366
57655
class ExtACBuilderCoupling;
48367
57656
class ExtACSyntaxCoupling;
48368
57657
class ExtACTree;
48369
57658
class ExtACKeywords;
48370
 
class WinAsm;
48371
 
class WinDeclSpecs;
48372
 
class WinMemberExplSpec;
48373
 
class WinTypeKeywords;
 
57659
class ExtGnu;
48374
57660
class PragmaOnceUnitState;
48375
57661
class PragmaOnce;
48376
 
class CCExprResolve;
48377
 
class CExprResolve;
48378
 
namespace Puma {
48379
 
 
48380
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57662
class CMatchSyntax;
 
57663
namespace Puma {
 
57664
 
 
57665
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57666
 
 
57667
#line 57668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57668
} // closed Puma
 
57669
 
 
57670
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57671
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57672
#include "CCExprResolveH.ah"
 
57673
#endif
 
57674
namespace Puma {
 
57675
 
 
57676
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57677
 
 
57678
#line 57679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57679
} // closed Puma
 
57680
 
 
57681
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57682
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57683
#include "CExprResolveH.ah"
 
57684
#endif
 
57685
namespace Puma {
 
57686
 
 
57687
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48381
57688
class CT_NewExpr : public CT_Expression, public CSemObject {
48382
 
#line 48383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57689
#line 57690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57690
  friend class ::CCExprResolve;
 
57691
  friend class ::CExprResolve;
48383
57692
  friend class ::WinIfExists;
48384
57693
  friend class ::WinImportHandler;
48385
57694
  friend class ::WinMacros;
48386
 
  friend class ::CMatchSyntax;
48387
 
  friend class ::ExtGnu;
 
57695
  friend class ::WinAsm;
 
57696
  friend class ::WinDeclSpecs;
 
57697
  friend class ::WinMemberExplSpec;
 
57698
  friend class ::WinTypeKeywords;
 
57699
  friend class ::WinFriend;
48388
57700
  friend class ::ExtAC;
48389
57701
  friend class ::ExtACBuilderCoupling;
48390
57702
  friend class ::ExtACSyntaxCoupling;
48391
57703
  friend class ::ExtACTree;
48392
57704
  friend class ::ExtACKeywords;
48393
 
  friend class ::WinAsm;
48394
 
  friend class ::WinDeclSpecs;
48395
 
  friend class ::WinMemberExplSpec;
48396
 
  friend class ::WinTypeKeywords;
 
57705
  friend class ::ExtGnu;
48397
57706
  friend class ::PragmaOnceUnitState;
48398
57707
  friend class ::PragmaOnce;
48399
 
  friend class ::CCExprResolve;
48400
 
  friend class ::CExprResolve;
 
57708
  friend class ::CMatchSyntax;
48401
57709
 
48402
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57710
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48403
57711
 
48404
57712
  CTree *sons[6]; // oper, placement, open, type, close, init
48405
57713
 
48406
57714
public:
 
57715
  /** Constructor.
 
57716
   *  \param op The new operator.
 
57717
   *  \param p The optional placement expression.
 
57718
   *  \param o The optional left parenthesis around the type identifier.
 
57719
   *  \param t The type identifier specifying the type of the object to create.
 
57720
   *  \param c The optional right parenthesis around the type identifier.
 
57721
   *  \param i The optional initializer. */
48407
57722
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
48408
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
57723
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
57724
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
48409
57725
  }
 
57726
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48410
57727
  static const char *NodeId ();
 
57728
  /** Get the name of the node. Can be compared with NodeId(). */
48411
57729
  const char *NodeName () const { return NodeId (); }
 
57730
  /** Get the number of sons. */
48412
57731
  int Sons () const { return CTree::Sons (sons, 6); }
 
57732
  /** Get the n-th son.
 
57733
   *  \param n The index of the son.
 
57734
   *  \return The n-th son or NULL. */
48413
57735
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
57736
  /** Replace a son.
 
57737
   *  \param old_son The son to replace.
 
57738
   *  \param new_son The new son. */
48414
57739
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48415
57740
    CTree::ReplaceSon (sons, 6, old_son, new_son);
48416
57741
  }
 
57742
  /** Get the operator name. */
48417
57743
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
57744
  /** Get the placement expression. */
48418
57745
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
57746
  /** Get the initializer. */
48419
57747
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
57748
  /** Get the type of the object to create. */
48420
57749
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
57750
  /** Get the semantic information object. */
48421
57751
  CSemObject *SemObject () const { return (CSemObject*)this; }
48422
57752
   private:
48423
57753
  typedef CT_NewExpr CCExprResolveExpr;
48424
57754
 
48425
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57755
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48426
57756
 public :
48427
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57757
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48428
57758
  typedef CT_NewExpr CExprResolveExpr;
48429
57759
 
48430
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57760
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48431
57761
 public :
48432
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48433
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57762
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57763
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48434
57764
};
48435
57765
 
 
57766
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
57767
 *  Tree node representing an if-then expression, 
 
57768
 *  e.g. a>0?a:b or a?:b. */
48436
57769
 
48437
 
#line 48438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57770
#line 57771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48438
57771
} // closed Puma
 
57772
class CCExprResolve;
 
57773
class CExprResolve;
48439
57774
class WinIfExists;
48440
57775
class WinImportHandler;
48441
57776
class WinMacros;
48442
 
class CMatchSyntax;
48443
 
class ExtGnu;
 
57777
class WinAsm;
 
57778
class WinDeclSpecs;
 
57779
class WinMemberExplSpec;
 
57780
class WinTypeKeywords;
 
57781
class WinFriend;
48444
57782
class ExtAC;
48445
57783
class ExtACBuilderCoupling;
48446
57784
class ExtACSyntaxCoupling;
48447
57785
class ExtACTree;
48448
57786
class ExtACKeywords;
48449
 
class WinAsm;
48450
 
class WinDeclSpecs;
48451
 
class WinMemberExplSpec;
48452
 
class WinTypeKeywords;
 
57787
class ExtGnu;
48453
57788
class PragmaOnceUnitState;
48454
57789
class PragmaOnce;
48455
 
class CCExprResolve;
48456
 
class CExprResolve;
48457
 
namespace Puma {
48458
 
 
48459
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57790
class CMatchSyntax;
 
57791
namespace Puma {
 
57792
 
 
57793
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57794
 
 
57795
#line 57796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57796
} // closed Puma
 
57797
 
 
57798
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57799
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57800
#include "CCExprResolveH.ah"
 
57801
#endif
 
57802
namespace Puma {
 
57803
 
 
57804
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57805
 
 
57806
#line 57807 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57807
} // closed Puma
 
57808
 
 
57809
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57810
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57811
#include "CExprResolveH.ah"
 
57812
#endif
 
57813
namespace Puma {
 
57814
 
 
57815
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48460
57816
class CT_IfThenExpr : public CT_Expression {
48461
 
#line 48462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57817
#line 57818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57818
  friend class ::CCExprResolve;
 
57819
  friend class ::CExprResolve;
48462
57820
  friend class ::WinIfExists;
48463
57821
  friend class ::WinImportHandler;
48464
57822
  friend class ::WinMacros;
48465
 
  friend class ::CMatchSyntax;
48466
 
  friend class ::ExtGnu;
 
57823
  friend class ::WinAsm;
 
57824
  friend class ::WinDeclSpecs;
 
57825
  friend class ::WinMemberExplSpec;
 
57826
  friend class ::WinTypeKeywords;
 
57827
  friend class ::WinFriend;
48467
57828
  friend class ::ExtAC;
48468
57829
  friend class ::ExtACBuilderCoupling;
48469
57830
  friend class ::ExtACSyntaxCoupling;
48470
57831
  friend class ::ExtACTree;
48471
57832
  friend class ::ExtACKeywords;
48472
 
  friend class ::WinAsm;
48473
 
  friend class ::WinDeclSpecs;
48474
 
  friend class ::WinMemberExplSpec;
48475
 
  friend class ::WinTypeKeywords;
 
57833
  friend class ::ExtGnu;
48476
57834
  friend class ::PragmaOnceUnitState;
48477
57835
  friend class ::PragmaOnce;
48478
 
  friend class ::CCExprResolve;
48479
 
  friend class ::CExprResolve;
 
57836
  friend class ::CMatchSyntax;
48480
57837
 
48481
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57838
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48482
57839
 
48483
57840
  CTree *sons[5]; // cond, oper, left, colon, right
48484
57841
 
48485
57842
public:
 
57843
  /** Constructor.
 
57844
   *  \param c1 The condition expression.
 
57845
   *  \param o The question mark operator. 
 
57846
   *  \param l The expression to the left of the colon.
 
57847
   *  \param c2 The colon operator.
 
57848
   *  \param r The expression to the right of the colon. */ 
48486
57849
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
48487
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
57850
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
57851
    AddSon (sons[3], c2); AddSon (sons[4], r);
48488
57852
  }
 
57853
  /** Constructor.
 
57854
   *  \param c1 The condition expression.
 
57855
   *  \param o The question mark operator. 
 
57856
   *  \param c2 The colon operator.
 
57857
   *  \param r The expression to the right of the colon. */ 
48489
57858
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
48490
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
57859
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
57860
    AddSon (sons[3], c2); AddSon (sons[4], r);
48491
57861
  }
 
57862
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48492
57863
  static const char *NodeId ();
 
57864
  /** Get the name of the node. Can be compared with NodeId(). */
48493
57865
  const char *NodeName () const { return NodeId (); }
 
57866
  /** Get the number of sons. */
48494
57867
  int Sons () const { return CTree::Sons (sons, 5); }
 
57868
  /** Get the n-th son.
 
57869
   *  \param n The index of the son.
 
57870
   *  \return The n-th son or NULL. */
48495
57871
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
57872
  /** Get the condition expression. */
48496
57873
  CTree *Condition () const { return sons[0]; }
 
57874
  /** Get the left expression (condition=true). */
48497
57875
  CTree *LeftOperand () const { return sons[2]; }
 
57876
  /** Get the right expression (condition=false). */
48498
57877
  CTree *RightOperand () const { return sons[4]; }
 
57878
  /** Replace a son.
 
57879
   *  \param old_son The son to replace.
 
57880
   *  \param new_son The new son. */
48499
57881
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48500
57882
    CTree::ReplaceSon (sons, 5, old_son, new_son);
48501
57883
  }
48502
57884
   private:
48503
57885
  typedef CT_IfThenExpr CCExprResolveExpr;
48504
57886
 
48505
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57887
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48506
57888
 public :
48507
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57889
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48508
57890
  typedef CT_IfThenExpr CExprResolveExpr;
48509
57891
 
48510
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57892
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48511
57893
 public :
48512
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48513
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57894
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57895
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48514
57896
};
48515
57897
 
 
57898
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
57899
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
48516
57900
 
48517
 
#line 48518 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57901
#line 57902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48518
57902
} // closed Puma
 
57903
class CCExprResolve;
 
57904
class CExprResolve;
48519
57905
class WinIfExists;
48520
57906
class WinImportHandler;
48521
57907
class WinMacros;
48522
 
class CMatchSyntax;
48523
 
class ExtGnu;
 
57908
class WinAsm;
 
57909
class WinDeclSpecs;
 
57910
class WinMemberExplSpec;
 
57911
class WinTypeKeywords;
 
57912
class WinFriend;
48524
57913
class ExtAC;
48525
57914
class ExtACBuilderCoupling;
48526
57915
class ExtACSyntaxCoupling;
48527
57916
class ExtACTree;
48528
57917
class ExtACKeywords;
48529
 
class WinAsm;
48530
 
class WinDeclSpecs;
48531
 
class WinMemberExplSpec;
48532
 
class WinTypeKeywords;
 
57918
class ExtGnu;
48533
57919
class PragmaOnceUnitState;
48534
57920
class PragmaOnce;
48535
 
class CCExprResolve;
48536
 
class CExprResolve;
48537
 
namespace Puma {
48538
 
 
48539
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57921
class CMatchSyntax;
 
57922
namespace Puma {
 
57923
 
 
57924
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57925
 
 
57926
#line 57927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57927
} // closed Puma
 
57928
 
 
57929
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57930
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57931
#include "CCExprResolveH.ah"
 
57932
#endif
 
57933
namespace Puma {
 
57934
 
 
57935
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57936
 
 
57937
#line 57938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57938
} // closed Puma
 
57939
 
 
57940
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57941
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57942
#include "CExprResolveH.ah"
 
57943
#endif
 
57944
namespace Puma {
 
57945
 
 
57946
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48540
57947
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
48541
 
#line 48542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
57948
#line 57949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
57949
  friend class ::CCExprResolve;
 
57950
  friend class ::CExprResolve;
48542
57951
  friend class ::WinIfExists;
48543
57952
  friend class ::WinImportHandler;
48544
57953
  friend class ::WinMacros;
48545
 
  friend class ::CMatchSyntax;
48546
 
  friend class ::ExtGnu;
 
57954
  friend class ::WinAsm;
 
57955
  friend class ::WinDeclSpecs;
 
57956
  friend class ::WinMemberExplSpec;
 
57957
  friend class ::WinTypeKeywords;
 
57958
  friend class ::WinFriend;
48547
57959
  friend class ::ExtAC;
48548
57960
  friend class ::ExtACBuilderCoupling;
48549
57961
  friend class ::ExtACSyntaxCoupling;
48550
57962
  friend class ::ExtACTree;
48551
57963
  friend class ::ExtACKeywords;
48552
 
  friend class ::WinAsm;
48553
 
  friend class ::WinDeclSpecs;
48554
 
  friend class ::WinMemberExplSpec;
48555
 
  friend class ::WinTypeKeywords;
 
57964
  friend class ::ExtGnu;
48556
57965
  friend class ::PragmaOnceUnitState;
48557
57966
  friend class ::PragmaOnce;
48558
 
  friend class ::CCExprResolve;
48559
 
  friend class ::CExprResolve;
 
57967
  friend class ::CMatchSyntax;
48560
57968
 
48561
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57969
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48562
57970
 
48563
57971
  CTree *sons[4]; // open, type, close, init
48564
57972
 
48565
57973
public:
 
57974
  /** Constructor.
 
57975
   *  \param r Left parenthesis of the type name.
 
57976
   *  \param t The type name.
 
57977
   *  \param cr Right parenthesis of the type name.
 
57978
   *  \param i The initializer list. */
48566
57979
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
48567
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
57980
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
57981
    AddSon (sons[2], cr); AddSon (sons[3], i);
48568
57982
  }
 
57983
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48569
57984
  static const char *NodeId ();
 
57985
  /** Get the name of the node. Can be compared with NodeId(). */
48570
57986
  const char *NodeName () const { return NodeId (); }
 
57987
  /** Get the number of sons. */
48571
57988
  int Sons () const { return 4; }
 
57989
  /** Get the n-th son.
 
57990
   *  \param n The index of the son.
 
57991
   *  \return The n-th son or NULL. */
48572
57992
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
57993
  /** Replace a son.
 
57994
   *  \param old_son The son to replace.
 
57995
   *  \param new_son The new son. */
48573
57996
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48574
57997
    CTree::ReplaceSon (sons, 4, old_son, new_son);
48575
57998
  }
 
57999
  /** Get the type name. */
48576
58000
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
58001
  /** Get the initializer list. */
48577
58002
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
58003
  /** Get the semantic information object. */
48578
58004
  CSemObject *SemObject () const { return (CSemObject*)this; }
48579
58005
   private:
48580
58006
  typedef CT_CmpdLiteral CCExprResolveExpr;
48581
58007
 
48582
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58008
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48583
58009
 public :
48584
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58010
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48585
58011
  typedef CT_CmpdLiteral CExprResolveExpr;
48586
58012
 
48587
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58013
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48588
58014
 public :
48589
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48590
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58015
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58016
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48591
58017
};
48592
58018
 
 
58019
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
58020
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
48593
58021
 
48594
 
#line 48595 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58022
#line 58023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48595
58023
} // closed Puma
 
58024
class CCExprResolve;
 
58025
class CExprResolve;
48596
58026
class WinIfExists;
48597
58027
class WinImportHandler;
48598
58028
class WinMacros;
48599
 
class CMatchSyntax;
48600
 
class ExtGnu;
 
58029
class WinAsm;
 
58030
class WinDeclSpecs;
 
58031
class WinMemberExplSpec;
 
58032
class WinTypeKeywords;
 
58033
class WinFriend;
48601
58034
class ExtAC;
48602
58035
class ExtACBuilderCoupling;
48603
58036
class ExtACSyntaxCoupling;
48604
58037
class ExtACTree;
48605
58038
class ExtACKeywords;
48606
 
class WinAsm;
48607
 
class WinDeclSpecs;
48608
 
class WinMemberExplSpec;
48609
 
class WinTypeKeywords;
 
58039
class ExtGnu;
48610
58040
class PragmaOnceUnitState;
48611
58041
class PragmaOnce;
48612
 
class CCExprResolve;
48613
 
class CExprResolve;
48614
 
namespace Puma {
48615
 
 
48616
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58042
class CMatchSyntax;
 
58043
namespace Puma {
 
58044
 
 
58045
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58046
 
 
58047
#line 58048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58048
} // closed Puma
 
58049
 
 
58050
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58051
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58052
#include "CCExprResolveH.ah"
 
58053
#endif
 
58054
namespace Puma {
 
58055
 
 
58056
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58057
 
 
58058
#line 58059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58059
} // closed Puma
 
58060
 
 
58061
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58062
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58063
#include "CExprResolveH.ah"
 
58064
#endif
 
58065
namespace Puma {
 
58066
 
 
58067
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48617
58068
class CT_ConstructExpr : public CT_Expression, public CSemObject {
48618
 
#line 48619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58069
#line 58070 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58070
  friend class ::CCExprResolve;
 
58071
  friend class ::CExprResolve;
48619
58072
  friend class ::WinIfExists;
48620
58073
  friend class ::WinImportHandler;
48621
58074
  friend class ::WinMacros;
48622
 
  friend class ::CMatchSyntax;
48623
 
  friend class ::ExtGnu;
 
58075
  friend class ::WinAsm;
 
58076
  friend class ::WinDeclSpecs;
 
58077
  friend class ::WinMemberExplSpec;
 
58078
  friend class ::WinTypeKeywords;
 
58079
  friend class ::WinFriend;
48624
58080
  friend class ::ExtAC;
48625
58081
  friend class ::ExtACBuilderCoupling;
48626
58082
  friend class ::ExtACSyntaxCoupling;
48627
58083
  friend class ::ExtACTree;
48628
58084
  friend class ::ExtACKeywords;
48629
 
  friend class ::WinAsm;
48630
 
  friend class ::WinDeclSpecs;
48631
 
  friend class ::WinMemberExplSpec;
48632
 
  friend class ::WinTypeKeywords;
 
58085
  friend class ::ExtGnu;
48633
58086
  friend class ::PragmaOnceUnitState;
48634
58087
  friend class ::PragmaOnce;
48635
 
  friend class ::CCExprResolve;
48636
 
  friend class ::CExprResolve;
 
58088
  friend class ::CMatchSyntax;
48637
58089
 
48638
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58090
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48639
58091
 
48640
58092
  CTree *sons[2]; // type, init
48641
58093
 
48642
58094
public:
48643
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
58095
  /** Constructor.
 
58096
   *  \param t The type name.
 
58097
   *  \param i The initializer list. */
 
58098
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
58099
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48644
58100
  static const char *NodeId ();
 
58101
  /** Get the name of the node. Can be compared with NodeId(). */
48645
58102
  const char *NodeName () const { return NodeId (); }
 
58103
  /** Get the number of sons. */
48646
58104
  int Sons () const { return 2; }
 
58105
  /** Get the n-th son.
 
58106
   *  \param n The index of the son.
 
58107
   *  \return The n-th son or NULL. */
48647
58108
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
58109
  /** Replace a son.
 
58110
   *  \param old_son The son to replace.
 
58111
   *  \param new_son The new son. */
48648
58112
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48649
58113
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48650
58114
  }
 
58115
  /** Get the type name. */
48651
58116
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
58117
  /** Get the initializer. */
48652
58118
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
58119
  /** Get the semantic information object. */
48653
58120
  CSemObject *SemObject () const { return (CSemObject*)this; }
48654
58121
   private:
48655
58122
  typedef CT_ConstructExpr CCExprResolveExpr;
48656
58123
 
48657
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58124
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48658
58125
 public :
48659
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58126
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48660
58127
  typedef CT_ConstructExpr CExprResolveExpr;
48661
58128
 
48662
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58129
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48663
58130
 public :
48664
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48665
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58131
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58132
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48666
58133
};
48667
58134
 
 
58135
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
58136
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
48668
58137
 
48669
 
#line 48670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58138
#line 58139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48670
58139
} // closed Puma
 
58140
class CCExprResolve;
 
58141
class CExprResolve;
48671
58142
class WinIfExists;
48672
58143
class WinImportHandler;
48673
58144
class WinMacros;
48674
 
class CMatchSyntax;
48675
 
class ExtGnu;
 
58145
class WinAsm;
 
58146
class WinDeclSpecs;
 
58147
class WinMemberExplSpec;
 
58148
class WinTypeKeywords;
 
58149
class WinFriend;
48676
58150
class ExtAC;
48677
58151
class ExtACBuilderCoupling;
48678
58152
class ExtACSyntaxCoupling;
48679
58153
class ExtACTree;
48680
58154
class ExtACKeywords;
48681
 
class WinAsm;
48682
 
class WinDeclSpecs;
48683
 
class WinMemberExplSpec;
48684
 
class WinTypeKeywords;
 
58155
class ExtGnu;
48685
58156
class PragmaOnceUnitState;
48686
58157
class PragmaOnce;
48687
 
class CCExprResolve;
48688
 
class CExprResolve;
48689
 
namespace Puma {
48690
 
 
48691
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58158
class CMatchSyntax;
 
58159
namespace Puma {
 
58160
 
 
58161
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58162
 
 
58163
#line 58164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58164
} // closed Puma
 
58165
 
 
58166
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58167
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58168
#include "CCExprResolveH.ah"
 
58169
#endif
 
58170
namespace Puma {
 
58171
 
 
58172
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58173
 
 
58174
#line 58175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58175
} // closed Puma
 
58176
 
 
58177
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58178
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58179
#include "CExprResolveH.ah"
 
58180
#endif
 
58181
namespace Puma {
 
58182
 
 
58183
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48692
58184
class CT_ThrowExpr : public CT_Expression {
48693
 
#line 48694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58185
#line 58186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58186
  friend class ::CCExprResolve;
 
58187
  friend class ::CExprResolve;
48694
58188
  friend class ::WinIfExists;
48695
58189
  friend class ::WinImportHandler;
48696
58190
  friend class ::WinMacros;
48697
 
  friend class ::CMatchSyntax;
48698
 
  friend class ::ExtGnu;
 
58191
  friend class ::WinAsm;
 
58192
  friend class ::WinDeclSpecs;
 
58193
  friend class ::WinMemberExplSpec;
 
58194
  friend class ::WinTypeKeywords;
 
58195
  friend class ::WinFriend;
48699
58196
  friend class ::ExtAC;
48700
58197
  friend class ::ExtACBuilderCoupling;
48701
58198
  friend class ::ExtACSyntaxCoupling;
48702
58199
  friend class ::ExtACTree;
48703
58200
  friend class ::ExtACKeywords;
48704
 
  friend class ::WinAsm;
48705
 
  friend class ::WinDeclSpecs;
48706
 
  friend class ::WinMemberExplSpec;
48707
 
  friend class ::WinTypeKeywords;
 
58201
  friend class ::ExtGnu;
48708
58202
  friend class ::PragmaOnceUnitState;
48709
58203
  friend class ::PragmaOnce;
48710
 
  friend class ::CCExprResolve;
48711
 
  friend class ::CExprResolve;
 
58204
  friend class ::CMatchSyntax;
48712
58205
 
48713
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58206
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48714
58207
 
48715
58208
  CTree *sons[2]; // throw, expr
48716
58209
 
48717
58210
public:
48718
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
58211
  /** Constructor.
 
58212
   *  \param t The 'throw' keyword.
 
58213
   *  \param e The expression. */
 
58214
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
58215
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48719
58216
  static const char *NodeId ();
 
58217
  /** Get the name of the node. Can be compared with NodeId(). */
48720
58218
  const char *NodeName () const { return NodeId (); }
 
58219
  /** Get the number of sons. */
48721
58220
  int Sons () const { return CTree::Sons (sons, 2); }
 
58221
  /** Get the n-th son.
 
58222
   *  \param n The index of the son.
 
58223
   *  \return The n-th son or NULL. */
48722
58224
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
58225
  /** Replace a son.
 
58226
   *  \param old_son The son to replace.
 
58227
   *  \param new_son The new son. */
48723
58228
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48724
58229
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48725
58230
  }
 
58231
  /** Get the expression. */
48726
58232
  CTree *Expr () const { return sons[1]; }
48727
58233
   private:
48728
58234
  typedef CT_ThrowExpr CCExprResolveExpr;
48729
58235
 
48730
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58236
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48731
58237
 public :
48732
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58238
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48733
58239
  typedef CT_ThrowExpr CExprResolveExpr;
48734
58240
 
48735
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58241
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48736
58242
 public :
48737
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48738
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58243
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58244
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48739
58245
};
48740
58246
 
 
58247
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
58248
 *  Tree node representing an index expression. */
48741
58249
 
48742
 
#line 48743 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58250
#line 58251 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48743
58251
} // closed Puma
 
58252
class CCExprResolve;
 
58253
class CExprResolve;
48744
58254
class WinIfExists;
48745
58255
class WinImportHandler;
48746
58256
class WinMacros;
48747
 
class CMatchSyntax;
48748
 
class ExtGnu;
 
58257
class WinAsm;
 
58258
class WinDeclSpecs;
 
58259
class WinMemberExplSpec;
 
58260
class WinTypeKeywords;
 
58261
class WinFriend;
48749
58262
class ExtAC;
48750
58263
class ExtACBuilderCoupling;
48751
58264
class ExtACSyntaxCoupling;
48752
58265
class ExtACTree;
48753
58266
class ExtACKeywords;
48754
 
class WinAsm;
48755
 
class WinDeclSpecs;
48756
 
class WinMemberExplSpec;
48757
 
class WinTypeKeywords;
 
58267
class ExtGnu;
48758
58268
class PragmaOnceUnitState;
48759
58269
class PragmaOnce;
48760
 
class CCExprResolve;
48761
 
class CExprResolve;
48762
 
namespace Puma {
48763
 
 
48764
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48765
 
class CT_IndexExpr : public CT_Expression {
48766
 
#line 48767 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58270
class CMatchSyntax;
 
58271
namespace Puma {
 
58272
 
 
58273
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58274
 
 
58275
#line 58276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58276
} // closed Puma
 
58277
 
 
58278
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58279
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58280
#include "CCExprResolveH.ah"
 
58281
#endif
 
58282
namespace Puma {
 
58283
 
 
58284
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58285
 
 
58286
#line 58287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58287
} // closed Puma
 
58288
 
 
58289
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58290
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58291
#include "CExprResolveH.ah"
 
58292
#endif
 
58293
namespace Puma {
 
58294
 
 
58295
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58296
class CT_IndexExpr : public CT_Call {
 
58297
#line 58298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58298
  friend class ::CCExprResolve;
 
58299
  friend class ::CExprResolve;
48767
58300
  friend class ::WinIfExists;
48768
58301
  friend class ::WinImportHandler;
48769
58302
  friend class ::WinMacros;
48770
 
  friend class ::CMatchSyntax;
48771
 
  friend class ::ExtGnu;
 
58303
  friend class ::WinAsm;
 
58304
  friend class ::WinDeclSpecs;
 
58305
  friend class ::WinMemberExplSpec;
 
58306
  friend class ::WinTypeKeywords;
 
58307
  friend class ::WinFriend;
48772
58308
  friend class ::ExtAC;
48773
58309
  friend class ::ExtACBuilderCoupling;
48774
58310
  friend class ::ExtACSyntaxCoupling;
48775
58311
  friend class ::ExtACTree;
48776
58312
  friend class ::ExtACKeywords;
48777
 
  friend class ::WinAsm;
48778
 
  friend class ::WinDeclSpecs;
48779
 
  friend class ::WinMemberExplSpec;
48780
 
  friend class ::WinTypeKeywords;
 
58313
  friend class ::ExtGnu;
48781
58314
  friend class ::PragmaOnceUnitState;
48782
58315
  friend class ::PragmaOnce;
48783
 
  friend class ::CCExprResolve;
48784
 
  friend class ::CExprResolve;
 
58316
  friend class ::CMatchSyntax;
48785
58317
 
48786
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58318
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48787
58319
 
48788
58320
  CTree *sons[4]; // expr, open, index, close
48789
58321
 
48790
58322
public:
 
58323
  /** Constructor.
 
58324
   *  \param e The expression on which to invoke the index operator.
 
58325
   *  \param o Left parenthesis of the index expression.
 
58326
   *  \param i The index expression. 
 
58327
   *  \param c Right parenthesis of the index expression. */
48791
58328
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
48792
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
58329
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
58330
    AddSon (sons[2], i); AddSon (sons[3], c);
48793
58331
  }
 
58332
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48794
58333
  static const char *NodeId ();
 
58334
  /** Get the name of the node. Can be compared with NodeId(). */
48795
58335
  const char *NodeName () const { return NodeId (); }
 
58336
  /** Get the number of sons. */
48796
58337
  int Sons () const { return 4; }
 
58338
  /** Get the n-th son.
 
58339
   *  \param n The index of the son.
 
58340
   *  \return The n-th son or NULL. */
48797
58341
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
58342
  /** Replace a son.
 
58343
   *  \param old_son The son to replace.
 
58344
   *  \param new_son The new son. */
48798
58345
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48799
58346
    CTree::ReplaceSon (sons, 4, old_son, new_son);
48800
58347
  }
48801
58348
   private:
48802
58349
  typedef CT_IndexExpr CCExprResolveExpr;
48803
58350
 
48804
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58351
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48805
58352
 public :
48806
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58353
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48807
58354
  typedef CT_IndexExpr CExprResolveExpr;
48808
58355
 
48809
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58356
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48810
58357
 public :
48811
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48812
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58358
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58359
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48813
58360
};
48814
58361
 
 
58362
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
58363
 *  Tree node representing a function call expression, e.g. f(i). */
48815
58364
 
48816
 
#line 48817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58365
#line 58366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48817
58366
} // closed Puma
 
58367
class CCExprResolve;
 
58368
class CExprResolve;
48818
58369
class WinIfExists;
48819
58370
class WinImportHandler;
48820
58371
class WinMacros;
48821
 
class CMatchSyntax;
48822
 
class ExtGnu;
 
58372
class WinAsm;
 
58373
class WinDeclSpecs;
 
58374
class WinMemberExplSpec;
 
58375
class WinTypeKeywords;
 
58376
class WinFriend;
48823
58377
class ExtAC;
48824
58378
class ExtACBuilderCoupling;
48825
58379
class ExtACSyntaxCoupling;
48826
58380
class ExtACTree;
48827
58381
class ExtACKeywords;
48828
 
class WinAsm;
48829
 
class WinDeclSpecs;
48830
 
class WinMemberExplSpec;
48831
 
class WinTypeKeywords;
 
58382
class ExtGnu;
48832
58383
class PragmaOnceUnitState;
48833
58384
class PragmaOnce;
48834
 
class CCExprResolve;
48835
 
class CExprResolve;
48836
 
namespace Puma {
48837
 
 
48838
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48839
 
class CT_CallExpr : public CT_Expression, public CSemObject {
48840
 
#line 48841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58385
class CMatchSyntax;
 
58386
namespace Puma {
 
58387
 
 
58388
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58389
 
 
58390
#line 58391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58391
} // closed Puma
 
58392
 
 
58393
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58394
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58395
#include "CCExprResolveH.ah"
 
58396
#endif
 
58397
namespace Puma {
 
58398
 
 
58399
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58400
 
 
58401
#line 58402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58402
} // closed Puma
 
58403
 
 
58404
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58405
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58406
#include "CExprResolveH.ah"
 
58407
#endif
 
58408
namespace Puma {
 
58409
 
 
58410
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58411
class CT_CallExpr : public CT_Call {
 
58412
#line 58413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58413
  friend class ::CCExprResolve;
 
58414
  friend class ::CExprResolve;
48841
58415
  friend class ::WinIfExists;
48842
58416
  friend class ::WinImportHandler;
48843
58417
  friend class ::WinMacros;
48844
 
  friend class ::CMatchSyntax;
48845
 
  friend class ::ExtGnu;
 
58418
  friend class ::WinAsm;
 
58419
  friend class ::WinDeclSpecs;
 
58420
  friend class ::WinMemberExplSpec;
 
58421
  friend class ::WinTypeKeywords;
 
58422
  friend class ::WinFriend;
48846
58423
  friend class ::ExtAC;
48847
58424
  friend class ::ExtACBuilderCoupling;
48848
58425
  friend class ::ExtACSyntaxCoupling;
48849
58426
  friend class ::ExtACTree;
48850
58427
  friend class ::ExtACKeywords;
48851
 
  friend class ::WinAsm;
48852
 
  friend class ::WinDeclSpecs;
48853
 
  friend class ::WinMemberExplSpec;
48854
 
  friend class ::WinTypeKeywords;
 
58428
  friend class ::ExtGnu;
48855
58429
  friend class ::PragmaOnceUnitState;
48856
58430
  friend class ::PragmaOnce;
48857
 
  friend class ::CCExprResolve;
48858
 
  friend class ::CExprResolve;
 
58431
  friend class ::CMatchSyntax;
48859
58432
 
48860
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58433
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48861
58434
 
48862
58435
  CTree *sons[2]; // expr, args
48863
58436
 
48864
58437
public:
48865
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
48866
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
58438
  /** Constructor.
 
58439
   *  \param e The expression on which the call is invoked. */
 
58440
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
58441
  /** Constructor.
 
58442
   *  \param e The expression on which the call is invoked.
 
58443
   *  \param l The argument list of the call. */
 
58444
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
58445
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48867
58446
  static const char *NodeId ();
 
58447
  /** Get the name of the node. Can be compared with NodeId(). */
48868
58448
  const char *NodeName () const { return NodeId (); }
 
58449
  /** Get the number of sons. */
48869
58450
  int Sons () const { return CTree::Sons (sons, 2); }
 
58451
  /** Get the n-th son.
 
58452
   *  \param n The index of the son.
 
58453
   *  \return The n-th son or NULL. */
48870
58454
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
58455
  /** Replace a son.
 
58456
   *  \param old_son The son to replace.
 
58457
   *  \param new_son The new son. */
48871
58458
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48872
58459
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48873
58460
  }
48874
58461
  CTree *Expr () const { return sons[0]; }
48875
58462
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
48876
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
48877
58463
   private:
48878
58464
  typedef CT_CallExpr CCExprResolveExpr;
48879
58465
 
48880
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58466
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48881
58467
 public :
48882
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58468
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48883
58469
  typedef CT_CallExpr CExprResolveExpr;
48884
58470
 
48885
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58471
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48886
58472
 public :
48887
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48888
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58473
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58474
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48889
58475
};
48890
58476
 
 
58477
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
58478
 *  Tree node representing a cast expression, e.g. (int)a. */
48891
58479
 
48892
 
#line 48893 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58480
#line 58481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48893
58481
} // closed Puma
 
58482
class CCExprResolve;
 
58483
class CExprResolve;
48894
58484
class WinIfExists;
48895
58485
class WinImportHandler;
48896
58486
class WinMacros;
48897
 
class CMatchSyntax;
48898
 
class ExtGnu;
 
58487
class WinAsm;
 
58488
class WinDeclSpecs;
 
58489
class WinMemberExplSpec;
 
58490
class WinTypeKeywords;
 
58491
class WinFriend;
48899
58492
class ExtAC;
48900
58493
class ExtACBuilderCoupling;
48901
58494
class ExtACSyntaxCoupling;
48902
58495
class ExtACTree;
48903
58496
class ExtACKeywords;
48904
 
class WinAsm;
48905
 
class WinDeclSpecs;
48906
 
class WinMemberExplSpec;
48907
 
class WinTypeKeywords;
 
58497
class ExtGnu;
48908
58498
class PragmaOnceUnitState;
48909
58499
class PragmaOnce;
48910
 
class CCExprResolve;
48911
 
class CExprResolve;
48912
 
namespace Puma {
48913
 
 
48914
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58500
class CMatchSyntax;
 
58501
namespace Puma {
 
58502
 
 
58503
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58504
 
 
58505
#line 58506 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58506
} // closed Puma
 
58507
 
 
58508
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58509
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58510
#include "CCExprResolveH.ah"
 
58511
#endif
 
58512
namespace Puma {
 
58513
 
 
58514
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58515
 
 
58516
#line 58517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58517
} // closed Puma
 
58518
 
 
58519
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58520
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58521
#include "CExprResolveH.ah"
 
58522
#endif
 
58523
namespace Puma {
 
58524
 
 
58525
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48915
58526
class CT_CastExpr : public CT_Expression {
48916
 
#line 48917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58527
#line 58528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58528
  friend class ::CCExprResolve;
 
58529
  friend class ::CExprResolve;
48917
58530
  friend class ::WinIfExists;
48918
58531
  friend class ::WinImportHandler;
48919
58532
  friend class ::WinMacros;
48920
 
  friend class ::CMatchSyntax;
48921
 
  friend class ::ExtGnu;
 
58533
  friend class ::WinAsm;
 
58534
  friend class ::WinDeclSpecs;
 
58535
  friend class ::WinMemberExplSpec;
 
58536
  friend class ::WinTypeKeywords;
 
58537
  friend class ::WinFriend;
48922
58538
  friend class ::ExtAC;
48923
58539
  friend class ::ExtACBuilderCoupling;
48924
58540
  friend class ::ExtACSyntaxCoupling;
48925
58541
  friend class ::ExtACTree;
48926
58542
  friend class ::ExtACKeywords;
48927
 
  friend class ::WinAsm;
48928
 
  friend class ::WinDeclSpecs;
48929
 
  friend class ::WinMemberExplSpec;
48930
 
  friend class ::WinTypeKeywords;
 
58543
  friend class ::ExtGnu;
48931
58544
  friend class ::PragmaOnceUnitState;
48932
58545
  friend class ::PragmaOnce;
48933
 
  friend class ::CCExprResolve;
48934
 
  friend class ::CExprResolve;
 
58546
  friend class ::CMatchSyntax;
48935
58547
 
48936
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58548
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48937
58549
 
48938
58550
  CTree *sons[4]; // open, type, close, expr
48939
58551
 
48940
58552
public:
 
58553
  /** Constructor.
 
58554
   *  \param o Left parenthesis of the type name.
 
58555
   *  \param t The type to cast to.
 
58556
   *  \param c Right parenthesis of the type name. 
 
58557
   *  \param e The expression to cast. */
48941
58558
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
48942
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
58559
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
58560
    AddSon (sons[2], c); AddSon (sons[3], e);
48943
58561
  }
 
58562
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48944
58563
  static const char *NodeId ();
 
58564
  /** Get the name of the node. Can be compared with NodeId(). */
48945
58565
  const char *NodeName () const { return NodeId (); }
 
58566
  /** Get the number of sons. */
48946
58567
  int Sons () const { return 4; }
 
58568
  /** Get the n-th son.
 
58569
   *  \param n The index of the son.
 
58570
   *  \return The n-th son or NULL. */
48947
58571
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
58572
  /** Replace a son.
 
58573
   *  \param old_son The son to replace.
 
58574
   *  \param new_son The new son. */
48948
58575
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48949
58576
    CTree::ReplaceSon (sons, 4, old_son, new_son);
48950
58577
  }
 
58578
  /** Get the casted expression. */
48951
58579
  CTree *Expr () const { return sons[3]; }
 
58580
  /** Get the type to cast to. */
48952
58581
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
48953
58582
   private:
48954
58583
  typedef CT_CastExpr CCExprResolveExpr;
48955
58584
 
48956
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58585
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48957
58586
 public :
48958
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58587
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48959
58588
  typedef CT_CastExpr CExprResolveExpr;
48960
58589
 
48961
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58590
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48962
58591
 public :
48963
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48964
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58592
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58593
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48965
58594
};
48966
58595
 
 
58596
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
58597
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
48967
58598
 
48968
 
#line 48969 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58599
#line 58600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
48969
58600
} // closed Puma
 
58601
class CCExprResolve;
 
58602
class CExprResolve;
48970
58603
class WinIfExists;
48971
58604
class WinImportHandler;
48972
58605
class WinMacros;
48973
 
class CMatchSyntax;
48974
 
class ExtGnu;
 
58606
class WinAsm;
 
58607
class WinDeclSpecs;
 
58608
class WinMemberExplSpec;
 
58609
class WinTypeKeywords;
 
58610
class WinFriend;
48975
58611
class ExtAC;
48976
58612
class ExtACBuilderCoupling;
48977
58613
class ExtACSyntaxCoupling;
48978
58614
class ExtACTree;
48979
58615
class ExtACKeywords;
48980
 
class WinAsm;
48981
 
class WinDeclSpecs;
48982
 
class WinMemberExplSpec;
48983
 
class WinTypeKeywords;
 
58616
class ExtGnu;
48984
58617
class PragmaOnceUnitState;
48985
58618
class PragmaOnce;
48986
 
class CCExprResolve;
48987
 
class CExprResolve;
48988
 
namespace Puma {
48989
 
 
48990
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58619
class CMatchSyntax;
 
58620
namespace Puma {
 
58621
 
 
58622
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58623
 
 
58624
#line 58625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58625
} // closed Puma
 
58626
 
 
58627
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58628
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58629
#include "CCExprResolveH.ah"
 
58630
#endif
 
58631
namespace Puma {
 
58632
 
 
58633
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58634
 
 
58635
#line 58636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58636
} // closed Puma
 
58637
 
 
58638
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58639
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58640
#include "CExprResolveH.ah"
 
58641
#endif
 
58642
namespace Puma {
 
58643
 
 
58644
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48991
58645
class CT_StaticCast : public CT_Expression {
48992
 
#line 48993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58646
#line 58647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58647
  friend class ::CCExprResolve;
 
58648
  friend class ::CExprResolve;
48993
58649
  friend class ::WinIfExists;
48994
58650
  friend class ::WinImportHandler;
48995
58651
  friend class ::WinMacros;
48996
 
  friend class ::CMatchSyntax;
48997
 
  friend class ::ExtGnu;
 
58652
  friend class ::WinAsm;
 
58653
  friend class ::WinDeclSpecs;
 
58654
  friend class ::WinMemberExplSpec;
 
58655
  friend class ::WinTypeKeywords;
 
58656
  friend class ::WinFriend;
48998
58657
  friend class ::ExtAC;
48999
58658
  friend class ::ExtACBuilderCoupling;
49000
58659
  friend class ::ExtACSyntaxCoupling;
49001
58660
  friend class ::ExtACTree;
49002
58661
  friend class ::ExtACKeywords;
49003
 
  friend class ::WinAsm;
49004
 
  friend class ::WinDeclSpecs;
49005
 
  friend class ::WinMemberExplSpec;
49006
 
  friend class ::WinTypeKeywords;
 
58662
  friend class ::ExtGnu;
49007
58663
  friend class ::PragmaOnceUnitState;
49008
58664
  friend class ::PragmaOnce;
49009
 
  friend class ::CCExprResolve;
49010
 
  friend class ::CExprResolve;
 
58665
  friend class ::CMatchSyntax;
49011
58666
 
49012
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58667
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49013
58668
 
49014
58669
  CTree *sons[5]; // cast, open, type, close, expr
49015
58670
 
49016
58671
public:
 
58672
  /** Constructor.
 
58673
   *  \param cst The cast operator, i.e. 'static_cast'.
 
58674
   *  \param o Left arrow bracket of the type name.
 
58675
   *  \param t The type to cast to.
 
58676
   *  \param c Right array bracket of the type name.
 
58677
   *  \param e The expression to cast. */
49017
58678
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
49018
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
58679
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
58680
    AddSon (sons[3], c); AddSon (sons[4], e);
49019
58681
  }
 
58682
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49020
58683
  static const char *NodeId ();
 
58684
  /** Get the name of the node. Can be compared with NodeId(). */
49021
58685
  const char *NodeName () const { return NodeId (); }
 
58686
  /** Get the number of sons. */
49022
58687
  int Sons () const { return 5; }
 
58688
  /** Get the n-th son.
 
58689
   *  \param n The index of the son.
 
58690
   *  \return The n-th son or NULL. */
49023
58691
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
58692
  /** Replace a son.
 
58693
   *  \param old_son The son to replace.
 
58694
   *  \param new_son The new son. */
49024
58695
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49025
58696
    CTree::ReplaceSon (sons, 5, old_son, new_son);
49026
58697
  }
 
58698
  /** Get the casted expression. */
49027
58699
  CTree *Expr () const { return sons[4]; }
 
58700
  /** Get the type to cast to. */
49028
58701
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
49029
58702
   private:
49030
58703
  typedef CT_StaticCast CCExprResolveExpr;
49031
58704
 
49032
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58705
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49033
58706
 public :
49034
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58707
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49035
58708
  typedef CT_StaticCast CExprResolveExpr;
49036
58709
 
49037
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58710
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49038
58711
 public :
49039
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49040
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58712
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58713
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49041
58714
};
49042
58715
 
 
58716
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
58717
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
49043
58718
 
49044
 
#line 49045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58719
#line 58720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49045
58720
} // closed Puma
 
58721
class CCExprResolve;
 
58722
class CExprResolve;
49046
58723
class WinIfExists;
49047
58724
class WinImportHandler;
49048
58725
class WinMacros;
49049
 
class CMatchSyntax;
49050
 
class ExtGnu;
 
58726
class WinAsm;
 
58727
class WinDeclSpecs;
 
58728
class WinMemberExplSpec;
 
58729
class WinTypeKeywords;
 
58730
class WinFriend;
49051
58731
class ExtAC;
49052
58732
class ExtACBuilderCoupling;
49053
58733
class ExtACSyntaxCoupling;
49054
58734
class ExtACTree;
49055
58735
class ExtACKeywords;
49056
 
class WinAsm;
49057
 
class WinDeclSpecs;
49058
 
class WinMemberExplSpec;
49059
 
class WinTypeKeywords;
 
58736
class ExtGnu;
49060
58737
class PragmaOnceUnitState;
49061
58738
class PragmaOnce;
49062
 
class CCExprResolve;
49063
 
class CExprResolve;
49064
 
namespace Puma {
49065
 
 
49066
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58739
class CMatchSyntax;
 
58740
namespace Puma {
 
58741
 
 
58742
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58743
 
 
58744
#line 58745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58745
} // closed Puma
 
58746
 
 
58747
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58748
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58749
#include "CCExprResolveH.ah"
 
58750
#endif
 
58751
namespace Puma {
 
58752
 
 
58753
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58754
 
 
58755
#line 58756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58756
} // closed Puma
 
58757
 
 
58758
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58759
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58760
#include "CExprResolveH.ah"
 
58761
#endif
 
58762
namespace Puma {
 
58763
 
 
58764
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49067
58765
class CT_ConstCast : public CT_StaticCast {
49068
 
#line 49069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58766
#line 58767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58767
  friend class ::CCExprResolve;
 
58768
  friend class ::CExprResolve;
49069
58769
  friend class ::WinIfExists;
49070
58770
  friend class ::WinImportHandler;
49071
58771
  friend class ::WinMacros;
49072
 
  friend class ::CMatchSyntax;
49073
 
  friend class ::ExtGnu;
 
58772
  friend class ::WinAsm;
 
58773
  friend class ::WinDeclSpecs;
 
58774
  friend class ::WinMemberExplSpec;
 
58775
  friend class ::WinTypeKeywords;
 
58776
  friend class ::WinFriend;
49074
58777
  friend class ::ExtAC;
49075
58778
  friend class ::ExtACBuilderCoupling;
49076
58779
  friend class ::ExtACSyntaxCoupling;
49077
58780
  friend class ::ExtACTree;
49078
58781
  friend class ::ExtACKeywords;
49079
 
  friend class ::WinAsm;
49080
 
  friend class ::WinDeclSpecs;
49081
 
  friend class ::WinMemberExplSpec;
49082
 
  friend class ::WinTypeKeywords;
 
58782
  friend class ::ExtGnu;
49083
58783
  friend class ::PragmaOnceUnitState;
49084
58784
  friend class ::PragmaOnce;
49085
 
  friend class ::CCExprResolve;
49086
 
  friend class ::CExprResolve;
 
58785
  friend class ::CMatchSyntax;
49087
58786
 
49088
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58787
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49089
58788
 
49090
58789
public:
 
58790
  /** Constructor.
 
58791
   *  \param cst The cast operator, i.e. 'const_cast'.
 
58792
   *  \param o Left arrow bracket of the type name.
 
58793
   *  \param t The type to cast to.
 
58794
   *  \param c Right array bracket of the type name.
 
58795
   *  \param e The expression to cast. */
49091
58796
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
49092
58797
    CT_StaticCast (cst, o, t, c, e) {}
 
58798
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49093
58799
  static const char *NodeId ();
 
58800
  /** Get the name of the node. Can be compared with NodeId(). */
49094
58801
  const char *NodeName () const { return NodeId (); }
49095
58802
   private:
49096
58803
  typedef CT_ConstCast CCExprResolveExpr;
49097
58804
 
49098
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58805
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49099
58806
 public :
49100
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58807
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49101
58808
  typedef CT_ConstCast CExprResolveExpr;
49102
58809
 
49103
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58810
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49104
58811
 public :
49105
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49106
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58812
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58813
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49107
58814
};
49108
58815
 
 
58816
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
58817
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
49109
58818
 
49110
 
#line 49111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58819
#line 58820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49111
58820
} // closed Puma
 
58821
class CCExprResolve;
 
58822
class CExprResolve;
49112
58823
class WinIfExists;
49113
58824
class WinImportHandler;
49114
58825
class WinMacros;
49115
 
class CMatchSyntax;
49116
 
class ExtGnu;
 
58826
class WinAsm;
 
58827
class WinDeclSpecs;
 
58828
class WinMemberExplSpec;
 
58829
class WinTypeKeywords;
 
58830
class WinFriend;
49117
58831
class ExtAC;
49118
58832
class ExtACBuilderCoupling;
49119
58833
class ExtACSyntaxCoupling;
49120
58834
class ExtACTree;
49121
58835
class ExtACKeywords;
49122
 
class WinAsm;
49123
 
class WinDeclSpecs;
49124
 
class WinMemberExplSpec;
49125
 
class WinTypeKeywords;
 
58836
class ExtGnu;
49126
58837
class PragmaOnceUnitState;
49127
58838
class PragmaOnce;
49128
 
class CCExprResolve;
49129
 
class CExprResolve;
49130
 
namespace Puma {
49131
 
 
49132
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58839
class CMatchSyntax;
 
58840
namespace Puma {
 
58841
 
 
58842
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58843
 
 
58844
#line 58845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58845
} // closed Puma
 
58846
 
 
58847
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58848
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58849
#include "CCExprResolveH.ah"
 
58850
#endif
 
58851
namespace Puma {
 
58852
 
 
58853
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58854
 
 
58855
#line 58856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58856
} // closed Puma
 
58857
 
 
58858
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58859
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58860
#include "CExprResolveH.ah"
 
58861
#endif
 
58862
namespace Puma {
 
58863
 
 
58864
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49133
58865
class CT_ReintCast : public CT_StaticCast {
49134
 
#line 49135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58866
#line 58867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58867
  friend class ::CCExprResolve;
 
58868
  friend class ::CExprResolve;
49135
58869
  friend class ::WinIfExists;
49136
58870
  friend class ::WinImportHandler;
49137
58871
  friend class ::WinMacros;
49138
 
  friend class ::CMatchSyntax;
49139
 
  friend class ::ExtGnu;
 
58872
  friend class ::WinAsm;
 
58873
  friend class ::WinDeclSpecs;
 
58874
  friend class ::WinMemberExplSpec;
 
58875
  friend class ::WinTypeKeywords;
 
58876
  friend class ::WinFriend;
49140
58877
  friend class ::ExtAC;
49141
58878
  friend class ::ExtACBuilderCoupling;
49142
58879
  friend class ::ExtACSyntaxCoupling;
49143
58880
  friend class ::ExtACTree;
49144
58881
  friend class ::ExtACKeywords;
49145
 
  friend class ::WinAsm;
49146
 
  friend class ::WinDeclSpecs;
49147
 
  friend class ::WinMemberExplSpec;
49148
 
  friend class ::WinTypeKeywords;
 
58882
  friend class ::ExtGnu;
49149
58883
  friend class ::PragmaOnceUnitState;
49150
58884
  friend class ::PragmaOnce;
49151
 
  friend class ::CCExprResolve;
49152
 
  friend class ::CExprResolve;
 
58885
  friend class ::CMatchSyntax;
49153
58886
 
49154
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58887
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49155
58888
 
49156
58889
public:
 
58890
  /** Constructor.
 
58891
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
58892
   *  \param o Left arrow bracket of the type name.
 
58893
   *  \param t The type to cast to.
 
58894
   *  \param c Right array bracket of the type name.
 
58895
   *  \param e The expression to cast. */
49157
58896
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
49158
58897
    CT_StaticCast (cst, o, t, c, e) {}
 
58898
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49159
58899
  static const char *NodeId ();
 
58900
  /** Get the name of the node. Can be compared with NodeId(). */
49160
58901
  const char *NodeName () const { return NodeId (); }
49161
58902
   private:
49162
58903
  typedef CT_ReintCast CCExprResolveExpr;
49163
58904
 
49164
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58905
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49165
58906
 public :
49166
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58907
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49167
58908
  typedef CT_ReintCast CExprResolveExpr;
49168
58909
 
49169
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58910
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49170
58911
 public :
49171
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49172
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58912
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58913
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49173
58914
};
49174
58915
 
 
58916
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
58917
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
49175
58918
 
49176
 
#line 49177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58919
#line 58920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49177
58920
} // closed Puma
 
58921
class CCExprResolve;
 
58922
class CExprResolve;
49178
58923
class WinIfExists;
49179
58924
class WinImportHandler;
49180
58925
class WinMacros;
49181
 
class CMatchSyntax;
49182
 
class ExtGnu;
 
58926
class WinAsm;
 
58927
class WinDeclSpecs;
 
58928
class WinMemberExplSpec;
 
58929
class WinTypeKeywords;
 
58930
class WinFriend;
49183
58931
class ExtAC;
49184
58932
class ExtACBuilderCoupling;
49185
58933
class ExtACSyntaxCoupling;
49186
58934
class ExtACTree;
49187
58935
class ExtACKeywords;
49188
 
class WinAsm;
49189
 
class WinDeclSpecs;
49190
 
class WinMemberExplSpec;
49191
 
class WinTypeKeywords;
 
58936
class ExtGnu;
49192
58937
class PragmaOnceUnitState;
49193
58938
class PragmaOnce;
49194
 
class CCExprResolve;
49195
 
class CExprResolve;
49196
 
namespace Puma {
49197
 
 
49198
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58939
class CMatchSyntax;
 
58940
namespace Puma {
 
58941
 
 
58942
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58943
 
 
58944
#line 58945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58945
} // closed Puma
 
58946
 
 
58947
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58948
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58949
#include "CCExprResolveH.ah"
 
58950
#endif
 
58951
namespace Puma {
 
58952
 
 
58953
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58954
 
 
58955
#line 58956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58956
} // closed Puma
 
58957
 
 
58958
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58959
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58960
#include "CExprResolveH.ah"
 
58961
#endif
 
58962
namespace Puma {
 
58963
 
 
58964
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49199
58965
class CT_DynamicCast : public CT_StaticCast {
49200
 
#line 49201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
58966
#line 58967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
58967
  friend class ::CCExprResolve;
 
58968
  friend class ::CExprResolve;
49201
58969
  friend class ::WinIfExists;
49202
58970
  friend class ::WinImportHandler;
49203
58971
  friend class ::WinMacros;
49204
 
  friend class ::CMatchSyntax;
49205
 
  friend class ::ExtGnu;
 
58972
  friend class ::WinAsm;
 
58973
  friend class ::WinDeclSpecs;
 
58974
  friend class ::WinMemberExplSpec;
 
58975
  friend class ::WinTypeKeywords;
 
58976
  friend class ::WinFriend;
49206
58977
  friend class ::ExtAC;
49207
58978
  friend class ::ExtACBuilderCoupling;
49208
58979
  friend class ::ExtACSyntaxCoupling;
49209
58980
  friend class ::ExtACTree;
49210
58981
  friend class ::ExtACKeywords;
49211
 
  friend class ::WinAsm;
49212
 
  friend class ::WinDeclSpecs;
49213
 
  friend class ::WinMemberExplSpec;
49214
 
  friend class ::WinTypeKeywords;
 
58982
  friend class ::ExtGnu;
49215
58983
  friend class ::PragmaOnceUnitState;
49216
58984
  friend class ::PragmaOnce;
49217
 
  friend class ::CCExprResolve;
49218
 
  friend class ::CExprResolve;
 
58985
  friend class ::CMatchSyntax;
49219
58986
 
49220
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58987
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49221
58988
 
49222
58989
public:
 
58990
  /** Constructor.
 
58991
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
58992
   *  \param o Left arrow bracket of the type name.
 
58993
   *  \param t The type to cast to.
 
58994
   *  \param c Right array bracket of the type name.
 
58995
   *  \param e The expression to cast. */
49223
58996
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
49224
58997
    CT_StaticCast (cst, o, t, c, e) {}
 
58998
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49225
58999
  static const char *NodeId ();
 
59000
  /** Get the name of the node. Can be compared with NodeId(). */
49226
59001
  const char *NodeName () const { return NodeId (); }
49227
59002
   private:
49228
59003
  typedef CT_DynamicCast CCExprResolveExpr;
49229
59004
 
49230
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59005
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49231
59006
 public :
49232
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59007
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49233
59008
  typedef CT_DynamicCast CExprResolveExpr;
49234
59009
 
49235
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59010
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49236
59011
 public :
49237
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49238
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59012
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59013
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49239
59014
};
49240
59015
 
 
59016
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
59017
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
59018
 *  where 1.2 is implicitely casted from float to int. */
49241
59019
 
49242
 
#line 49243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59020
#line 59021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49243
59021
} // closed Puma
 
59022
class CCExprResolve;
 
59023
class CExprResolve;
49244
59024
class WinIfExists;
49245
59025
class WinImportHandler;
49246
59026
class WinMacros;
49247
 
class CMatchSyntax;
49248
 
class ExtGnu;
 
59027
class WinAsm;
 
59028
class WinDeclSpecs;
 
59029
class WinMemberExplSpec;
 
59030
class WinTypeKeywords;
 
59031
class WinFriend;
49249
59032
class ExtAC;
49250
59033
class ExtACBuilderCoupling;
49251
59034
class ExtACSyntaxCoupling;
49252
59035
class ExtACTree;
49253
59036
class ExtACKeywords;
49254
 
class WinAsm;
49255
 
class WinDeclSpecs;
49256
 
class WinMemberExplSpec;
49257
 
class WinTypeKeywords;
 
59037
class ExtGnu;
49258
59038
class PragmaOnceUnitState;
49259
59039
class PragmaOnce;
49260
 
class CCExprResolve;
49261
 
class CExprResolve;
49262
 
namespace Puma {
49263
 
 
49264
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59040
class CMatchSyntax;
 
59041
namespace Puma {
 
59042
 
 
59043
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59044
 
 
59045
#line 59046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59046
} // closed Puma
 
59047
 
 
59048
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59049
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59050
#include "CCExprResolveH.ah"
 
59051
#endif
 
59052
namespace Puma {
 
59053
 
 
59054
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59055
 
 
59056
#line 59057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59057
} // closed Puma
 
59058
 
 
59059
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59060
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59061
#include "CExprResolveH.ah"
 
59062
#endif
 
59063
namespace Puma {
 
59064
 
 
59065
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49265
59066
class CT_ImplicitCast : public CT_Expression {
49266
 
#line 49267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59067
#line 59068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59068
  friend class ::CCExprResolve;
 
59069
  friend class ::CExprResolve;
49267
59070
  friend class ::WinIfExists;
49268
59071
  friend class ::WinImportHandler;
49269
59072
  friend class ::WinMacros;
49270
 
  friend class ::CMatchSyntax;
49271
 
  friend class ::ExtGnu;
 
59073
  friend class ::WinAsm;
 
59074
  friend class ::WinDeclSpecs;
 
59075
  friend class ::WinMemberExplSpec;
 
59076
  friend class ::WinTypeKeywords;
 
59077
  friend class ::WinFriend;
49272
59078
  friend class ::ExtAC;
49273
59079
  friend class ::ExtACBuilderCoupling;
49274
59080
  friend class ::ExtACSyntaxCoupling;
49275
59081
  friend class ::ExtACTree;
49276
59082
  friend class ::ExtACKeywords;
49277
 
  friend class ::WinAsm;
49278
 
  friend class ::WinDeclSpecs;
49279
 
  friend class ::WinMemberExplSpec;
49280
 
  friend class ::WinTypeKeywords;
 
59083
  friend class ::ExtGnu;
49281
59084
  friend class ::PragmaOnceUnitState;
49282
59085
  friend class ::PragmaOnce;
49283
 
  friend class ::CCExprResolve;
49284
 
  friend class ::CExprResolve;
 
59086
  friend class ::CMatchSyntax;
49285
59087
 
49286
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59088
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49287
59089
 
49288
59090
  CTree *_expr; // casted expression
49289
59091
 
49290
59092
public:
49291
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
59093
  /** Constructor.
 
59094
   *  \param e The expression that is implicitely casted. */
 
59095
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
59096
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49292
59097
  static const char *NodeId ();
 
59098
  /** Get the name of the node. Can be compared with NodeId(). */
49293
59099
  const char *NodeName () const { return NodeId (); }
 
59100
  /** Get the number of sons. */
49294
59101
  int Sons () const { return 1; }
 
59102
  /** Get the n-th son.
 
59103
   *  \param n The index of the son.
 
59104
   *  \return The n-th son or NULL. */
49295
59105
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
59106
  /** Get the casted expression. */
49296
59107
  CTree *Expr () const { return _expr; }
 
59108
  /** Replace a son.
 
59109
   *  \param old_son The son to replace.
 
59110
   *  \param new_son The new son. */
49297
59111
  void ReplaceSon (CTree *old_son, CTree *new_son) 
49298
 
   { if (old_son == _expr) _expr = new_son; }
 
59112
   { CTree::ReplaceSon (_expr, old_son, new_son); }
49299
59113
   private:
49300
59114
  typedef CT_ImplicitCast CCExprResolveExpr;
49301
59115
 
49302
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59116
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49303
59117
 public :
49304
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59118
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49305
59119
  typedef CT_ImplicitCast CExprResolveExpr;
49306
59120
 
49307
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59121
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49308
59122
 public :
49309
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49310
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59123
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59124
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49311
59125
};
49312
59126
 
 
59127
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
59128
 *  Tree node representing a typeid expression, e.g. typeid(X). */
49313
59129
 
49314
 
#line 49315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59130
#line 59131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49315
59131
} // closed Puma
 
59132
class CCExprResolve;
 
59133
class CExprResolve;
49316
59134
class WinIfExists;
49317
59135
class WinImportHandler;
49318
59136
class WinMacros;
49319
 
class CMatchSyntax;
49320
 
class ExtGnu;
 
59137
class WinAsm;
 
59138
class WinDeclSpecs;
 
59139
class WinMemberExplSpec;
 
59140
class WinTypeKeywords;
 
59141
class WinFriend;
49321
59142
class ExtAC;
49322
59143
class ExtACBuilderCoupling;
49323
59144
class ExtACSyntaxCoupling;
49324
59145
class ExtACTree;
49325
59146
class ExtACKeywords;
49326
 
class WinAsm;
49327
 
class WinDeclSpecs;
49328
 
class WinMemberExplSpec;
49329
 
class WinTypeKeywords;
 
59147
class ExtGnu;
49330
59148
class PragmaOnceUnitState;
49331
59149
class PragmaOnce;
49332
 
class CCExprResolve;
49333
 
class CExprResolve;
49334
 
namespace Puma {
49335
 
 
49336
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59150
class CMatchSyntax;
 
59151
namespace Puma {
 
59152
 
 
59153
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59154
 
 
59155
#line 59156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59156
} // closed Puma
 
59157
 
 
59158
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59159
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59160
#include "CCExprResolveH.ah"
 
59161
#endif
 
59162
namespace Puma {
 
59163
 
 
59164
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59165
 
 
59166
#line 59167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59167
} // closed Puma
 
59168
 
 
59169
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59170
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59171
#include "CExprResolveH.ah"
 
59172
#endif
 
59173
namespace Puma {
 
59174
 
 
59175
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49337
59176
class CT_TypeidExpr : public CT_Expression {
49338
 
#line 49339 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59177
#line 59178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59178
  friend class ::CCExprResolve;
 
59179
  friend class ::CExprResolve;
49339
59180
  friend class ::WinIfExists;
49340
59181
  friend class ::WinImportHandler;
49341
59182
  friend class ::WinMacros;
49342
 
  friend class ::CMatchSyntax;
49343
 
  friend class ::ExtGnu;
 
59183
  friend class ::WinAsm;
 
59184
  friend class ::WinDeclSpecs;
 
59185
  friend class ::WinMemberExplSpec;
 
59186
  friend class ::WinTypeKeywords;
 
59187
  friend class ::WinFriend;
49344
59188
  friend class ::ExtAC;
49345
59189
  friend class ::ExtACBuilderCoupling;
49346
59190
  friend class ::ExtACSyntaxCoupling;
49347
59191
  friend class ::ExtACTree;
49348
59192
  friend class ::ExtACKeywords;
49349
 
  friend class ::WinAsm;
49350
 
  friend class ::WinDeclSpecs;
49351
 
  friend class ::WinMemberExplSpec;
49352
 
  friend class ::WinTypeKeywords;
 
59193
  friend class ::ExtGnu;
49353
59194
  friend class ::PragmaOnceUnitState;
49354
59195
  friend class ::PragmaOnce;
49355
 
  friend class ::CCExprResolve;
49356
 
  friend class ::CExprResolve;
 
59196
  friend class ::CMatchSyntax;
49357
59197
 
49358
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59198
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49359
59199
 
49360
59200
  CTree *sons[4]; // typeid, open, type_id/expr, close
49361
59201
 
49362
59202
public:
 
59203
  /** Constructor.
 
59204
   *  \param tid The 'typeid' operator.
 
59205
   *  \param o The left parenthesis of the type name or expression.
 
59206
   *  \param e The expression or type name for which to get the type identifier.
 
59207
   *  \param c The right parenthesis of the type name or expression. */
49363
59208
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
49364
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
59209
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
59210
    AddSon (sons[2], e); AddSon (sons[3], c);
49365
59211
  }
 
59212
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49366
59213
  static const char *NodeId ();
 
59214
  /** Get the name of the node. Can be compared with NodeId(). */
49367
59215
  const char *NodeName () const { return NodeId (); }
 
59216
  /** Get the number of sons. */
49368
59217
  int Sons () const { return 4; }
 
59218
  /** Get the n-th son.
 
59219
   *  \param n The index of the son.
 
59220
   *  \return The n-th son or NULL. */
49369
59221
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
59222
  /** Replace a son.
 
59223
   *  \param old_son The son to replace.
 
59224
   *  \param new_son The new son. */
49370
59225
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49371
59226
    CTree::ReplaceSon (sons, 4, old_son, new_son);
49372
59227
  }
 
59228
  /** Get the typeid argument, i.e. the expression or type name for
 
59229
   *  which to get the type identifier. */
49373
59230
  CTree *Arg () const { return sons[2]; }
49374
59231
   private:
49375
59232
  typedef CT_TypeidExpr CCExprResolveExpr;
49376
59233
 
49377
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59234
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49378
59235
 public :
49379
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59236
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49380
59237
  typedef CT_TypeidExpr CExprResolveExpr;
49381
59238
 
49382
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59239
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49383
59240
 public :
49384
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49385
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59241
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59242
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49386
59243
};
49387
59244
 
 
59245
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
59246
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
49388
59247
 
49389
 
#line 49390 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59248
#line 59249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49390
59249
} // closed Puma
 
59250
class CCExprResolve;
 
59251
class CExprResolve;
49391
59252
class WinIfExists;
49392
59253
class WinImportHandler;
49393
59254
class WinMacros;
49394
 
class CMatchSyntax;
49395
 
class ExtGnu;
 
59255
class WinAsm;
 
59256
class WinDeclSpecs;
 
59257
class WinMemberExplSpec;
 
59258
class WinTypeKeywords;
 
59259
class WinFriend;
49396
59260
class ExtAC;
49397
59261
class ExtACBuilderCoupling;
49398
59262
class ExtACSyntaxCoupling;
49399
59263
class ExtACTree;
49400
59264
class ExtACKeywords;
49401
 
class WinAsm;
49402
 
class WinDeclSpecs;
49403
 
class WinMemberExplSpec;
49404
 
class WinTypeKeywords;
 
59265
class ExtGnu;
49405
59266
class PragmaOnceUnitState;
49406
59267
class PragmaOnce;
49407
 
class CCExprResolve;
49408
 
class CExprResolve;
49409
 
namespace Puma {
49410
 
 
49411
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59268
class CMatchSyntax;
 
59269
namespace Puma {
 
59270
 
 
59271
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59272
 
 
59273
#line 59274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59274
} // closed Puma
 
59275
 
 
59276
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59277
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59278
#include "CCExprResolveH.ah"
 
59279
#endif
 
59280
namespace Puma {
 
59281
 
 
59282
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59283
 
 
59284
#line 59285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59285
} // closed Puma
 
59286
 
 
59287
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59288
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59289
#include "CExprResolveH.ah"
 
59290
#endif
 
59291
namespace Puma {
 
59292
 
 
59293
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49412
59294
class CT_SizeofExpr : public CT_Expression {
49413
 
#line 49414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59295
#line 59296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59296
  friend class ::CCExprResolve;
 
59297
  friend class ::CExprResolve;
49414
59298
  friend class ::WinIfExists;
49415
59299
  friend class ::WinImportHandler;
49416
59300
  friend class ::WinMacros;
49417
 
  friend class ::CMatchSyntax;
49418
 
  friend class ::ExtGnu;
 
59301
  friend class ::WinAsm;
 
59302
  friend class ::WinDeclSpecs;
 
59303
  friend class ::WinMemberExplSpec;
 
59304
  friend class ::WinTypeKeywords;
 
59305
  friend class ::WinFriend;
49419
59306
  friend class ::ExtAC;
49420
59307
  friend class ::ExtACBuilderCoupling;
49421
59308
  friend class ::ExtACSyntaxCoupling;
49422
59309
  friend class ::ExtACTree;
49423
59310
  friend class ::ExtACKeywords;
49424
 
  friend class ::WinAsm;
49425
 
  friend class ::WinDeclSpecs;
49426
 
  friend class ::WinMemberExplSpec;
49427
 
  friend class ::WinTypeKeywords;
 
59311
  friend class ::ExtGnu;
49428
59312
  friend class ::PragmaOnceUnitState;
49429
59313
  friend class ::PragmaOnce;
49430
 
  friend class ::CCExprResolve;
49431
 
  friend class ::CExprResolve;
 
59314
  friend class ::CMatchSyntax;
49432
59315
 
49433
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59316
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49434
59317
 
49435
59318
  CTree *sons[5]; // key, open, type, close, expr
49436
59319
 
49437
59320
public:
 
59321
  /** Constructor.
 
59322
   *  \param k The 'sizeof' keyword.
 
59323
   *  \param o Left parenthesis around the type name.
 
59324
   *  \param t The type from which to get the size.
 
59325
   *  \param c Right parenthesis around the type name. */
49438
59326
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
49439
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
59327
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
59328
    AddSon (sons[3], c); AddSon (sons[4], 0);
49440
59329
  }
 
59330
  /** Constructor.
 
59331
   *  \param k The 'sizeof' keyword.
 
59332
   *  \param e The expression from which to get the size. */
49441
59333
  CT_SizeofExpr (CTree *k, CTree *e) {
49442
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
59334
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
59335
    AddSon (sons[3], 0); AddSon (sons[4], e);
49443
59336
  }
 
59337
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49444
59338
  static const char *NodeId ();
 
59339
  /** Get the name of the node. Can be compared with NodeId(). */
49445
59340
  const char *NodeName () const { return NodeId (); }
 
59341
  /** Get the number of sons. */
49446
59342
  int Sons () const { return CTree::Sons (sons, 5); }
 
59343
  /** Get the n-th son.
 
59344
   *  \param n The index of the son.
 
59345
   *  \return The n-th son or NULL. */
49447
59346
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
59347
  /** Replace a son.
 
59348
   *  \param old_son The son to replace.
 
59349
   *  \param new_son The new son. */
49448
59350
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49449
59351
    CTree::ReplaceSon (sons, 5, old_son, new_son);
49450
59352
  }
 
59353
  /** Get the expression. */
49451
59354
  CTree *Expr () const { return sons[4]; }
 
59355
  /** Get the type name. */
49452
59356
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
49453
59357
   private:
49454
59358
  typedef CT_SizeofExpr CCExprResolveExpr;
49455
59359
 
49456
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59360
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49457
59361
 public :
49458
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59362
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49459
59363
  typedef CT_SizeofExpr CExprResolveExpr;
49460
59364
 
49461
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59365
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49462
59366
 public :
49463
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49464
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59367
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59368
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49465
59369
};
49466
59370
 
 
59371
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
59372
 *  Tree node representing an index designator, i.e. [1]. */
49467
59373
 
49468
 
#line 49469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59374
#line 59375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49469
59375
} // closed Puma
 
59376
class CCExprResolve;
 
59377
class CExprResolve;
49470
59378
class WinIfExists;
49471
59379
class WinImportHandler;
49472
59380
class WinMacros;
49473
 
class CMatchSyntax;
49474
 
class ExtGnu;
 
59381
class WinAsm;
 
59382
class WinDeclSpecs;
 
59383
class WinMemberExplSpec;
 
59384
class WinTypeKeywords;
 
59385
class WinFriend;
49475
59386
class ExtAC;
49476
59387
class ExtACBuilderCoupling;
49477
59388
class ExtACSyntaxCoupling;
49478
59389
class ExtACTree;
49479
59390
class ExtACKeywords;
49480
 
class WinAsm;
49481
 
class WinDeclSpecs;
49482
 
class WinMemberExplSpec;
49483
 
class WinTypeKeywords;
 
59391
class ExtGnu;
49484
59392
class PragmaOnceUnitState;
49485
59393
class PragmaOnce;
49486
 
class CCExprResolve;
49487
 
class CExprResolve;
49488
 
namespace Puma {
49489
 
 
49490
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59394
class CMatchSyntax;
 
59395
namespace Puma {
 
59396
 
 
59397
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59398
 
 
59399
#line 59400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59400
} // closed Puma
 
59401
 
 
59402
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59403
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59404
#include "CCExprResolveH.ah"
 
59405
#endif
 
59406
namespace Puma {
 
59407
 
 
59408
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59409
 
 
59410
#line 59411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59411
} // closed Puma
 
59412
 
 
59413
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59414
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59415
#include "CExprResolveH.ah"
 
59416
#endif
 
59417
namespace Puma {
 
59418
 
 
59419
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49491
59420
class CT_IndexDesignator : public CT_Expression {
49492
 
#line 49493 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59421
#line 59422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59422
  friend class ::CCExprResolve;
 
59423
  friend class ::CExprResolve;
49493
59424
  friend class ::WinIfExists;
49494
59425
  friend class ::WinImportHandler;
49495
59426
  friend class ::WinMacros;
49496
 
  friend class ::CMatchSyntax;
49497
 
  friend class ::ExtGnu;
 
59427
  friend class ::WinAsm;
 
59428
  friend class ::WinDeclSpecs;
 
59429
  friend class ::WinMemberExplSpec;
 
59430
  friend class ::WinTypeKeywords;
 
59431
  friend class ::WinFriend;
49498
59432
  friend class ::ExtAC;
49499
59433
  friend class ::ExtACBuilderCoupling;
49500
59434
  friend class ::ExtACSyntaxCoupling;
49501
59435
  friend class ::ExtACTree;
49502
59436
  friend class ::ExtACKeywords;
49503
 
  friend class ::WinAsm;
49504
 
  friend class ::WinDeclSpecs;
49505
 
  friend class ::WinMemberExplSpec;
49506
 
  friend class ::WinTypeKeywords;
 
59437
  friend class ::ExtGnu;
49507
59438
  friend class ::PragmaOnceUnitState;
49508
59439
  friend class ::PragmaOnce;
49509
 
  friend class ::CCExprResolve;
49510
 
  friend class ::CExprResolve;
 
59440
  friend class ::CMatchSyntax;
49511
59441
 
49512
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59442
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49513
59443
 
49514
59444
  CTree *sons[3]; // open, index, close
49515
59445
 
49516
59446
public:
 
59447
  /** Constructor.
 
59448
   *  \param o Left bracket of the index designator.
 
59449
   *  \param i The index expression.
 
59450
   *  \param c Right bracket of the index designator. */
49517
59451
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
49518
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
59452
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
49519
59453
  }
 
59454
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49520
59455
  static const char *NodeId ();
 
59456
  /** Get the name of the node. Can be compared with NodeId(). */
49521
59457
  const char *NodeName () const { return NodeId (); }
 
59458
  /** Get the number of sons. */
49522
59459
  int Sons () const { return 3; }
 
59460
  /** Get the n-th son.
 
59461
   *  \param n The index of the son.
 
59462
   *  \return The n-th son or NULL. */
49523
59463
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
59464
  /** Replace a son.
 
59465
   *  \param old_son The son to replace.
 
59466
   *  \param new_son The new son. */
49524
59467
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49525
59468
    CTree::ReplaceSon (sons, 3, old_son, new_son);
49526
59469
  }
49527
59470
   private:
49528
59471
  typedef CT_IndexDesignator CCExprResolveExpr;
49529
59472
 
49530
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59473
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49531
59474
 public :
49532
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59475
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49533
59476
  typedef CT_IndexDesignator CExprResolveExpr;
49534
59477
 
49535
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59478
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49536
59479
 public :
49537
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49538
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59480
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59481
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49539
59482
};
49540
59483
 
 
59484
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
59485
 *  Tree node representing a member designator, e.g. .a. */
49541
59486
 
49542
 
#line 49543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59487
#line 59488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49543
59488
} // closed Puma
 
59489
class CCExprResolve;
 
59490
class CExprResolve;
49544
59491
class WinIfExists;
49545
59492
class WinImportHandler;
49546
59493
class WinMacros;
49547
 
class CMatchSyntax;
49548
 
class ExtGnu;
 
59494
class WinAsm;
 
59495
class WinDeclSpecs;
 
59496
class WinMemberExplSpec;
 
59497
class WinTypeKeywords;
 
59498
class WinFriend;
49549
59499
class ExtAC;
49550
59500
class ExtACBuilderCoupling;
49551
59501
class ExtACSyntaxCoupling;
49552
59502
class ExtACTree;
49553
59503
class ExtACKeywords;
49554
 
class WinAsm;
49555
 
class WinDeclSpecs;
49556
 
class WinMemberExplSpec;
49557
 
class WinTypeKeywords;
 
59504
class ExtGnu;
49558
59505
class PragmaOnceUnitState;
49559
59506
class PragmaOnce;
49560
 
class CCExprResolve;
49561
 
class CExprResolve;
49562
 
namespace Puma {
49563
 
 
49564
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59507
class CMatchSyntax;
 
59508
namespace Puma {
 
59509
 
 
59510
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59511
 
 
59512
#line 59513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59513
} // closed Puma
 
59514
 
 
59515
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59516
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59517
#include "CCExprResolveH.ah"
 
59518
#endif
 
59519
namespace Puma {
 
59520
 
 
59521
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59522
 
 
59523
#line 59524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59524
} // closed Puma
 
59525
 
 
59526
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59527
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59528
#include "CExprResolveH.ah"
 
59529
#endif
 
59530
namespace Puma {
 
59531
 
 
59532
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49565
59533
class CT_MembDesignator : public CT_Expression {
49566
 
#line 49567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59534
#line 59535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59535
  friend class ::CCExprResolve;
 
59536
  friend class ::CExprResolve;
49567
59537
  friend class ::WinIfExists;
49568
59538
  friend class ::WinImportHandler;
49569
59539
  friend class ::WinMacros;
49570
 
  friend class ::CMatchSyntax;
49571
 
  friend class ::ExtGnu;
 
59540
  friend class ::WinAsm;
 
59541
  friend class ::WinDeclSpecs;
 
59542
  friend class ::WinMemberExplSpec;
 
59543
  friend class ::WinTypeKeywords;
 
59544
  friend class ::WinFriend;
49572
59545
  friend class ::ExtAC;
49573
59546
  friend class ::ExtACBuilderCoupling;
49574
59547
  friend class ::ExtACSyntaxCoupling;
49575
59548
  friend class ::ExtACTree;
49576
59549
  friend class ::ExtACKeywords;
49577
 
  friend class ::WinAsm;
49578
 
  friend class ::WinDeclSpecs;
49579
 
  friend class ::WinMemberExplSpec;
49580
 
  friend class ::WinTypeKeywords;
 
59550
  friend class ::ExtGnu;
49581
59551
  friend class ::PragmaOnceUnitState;
49582
59552
  friend class ::PragmaOnce;
49583
 
  friend class ::CCExprResolve;
49584
 
  friend class ::CExprResolve;
 
59553
  friend class ::CMatchSyntax;
49585
59554
 
49586
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59555
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49587
59556
 
49588
59557
  CTree *sons[2]; // dot, member
49589
59558
 
49590
59559
public:
49591
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
59560
  /** Constructor.
 
59561
   *  \param d The dot before the member name.
 
59562
   *  \param m The member name. */
 
59563
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
59564
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49592
59565
  static const char *NodeId ();
 
59566
  /** Get the name of the node. Can be compared with NodeId(). */
49593
59567
  const char *NodeName () const { return NodeId (); }
 
59568
  /** Get the number of sons. */
49594
59569
  int Sons () const { return 2; }
 
59570
  /** Get the n-th son.
 
59571
   *  \param n The index of the son.
 
59572
   *  \return The n-th son or NULL. */
49595
59573
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
59574
  /** Replace a son.
 
59575
   *  \param old_son The son to replace.
 
59576
   *  \param new_son The new son. */
49596
59577
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49597
59578
    CTree::ReplaceSon (sons, 2, old_son, new_son);
49598
59579
  }
49599
59580
   private:
49600
59581
  typedef CT_MembDesignator CCExprResolveExpr;
49601
59582
 
49602
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59583
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49603
59584
 public :
49604
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59585
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49605
59586
  typedef CT_MembDesignator CExprResolveExpr;
49606
59587
 
49607
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59588
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49608
59589
 public :
49609
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49610
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59590
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59591
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49611
59592
};
49612
59593
 
 
59594
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
59595
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
49613
59596
 
49614
 
#line 49615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59597
#line 59598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49615
59598
} // closed Puma
 
59599
class CCExprResolve;
 
59600
class CExprResolve;
49616
59601
class WinIfExists;
49617
59602
class WinImportHandler;
49618
59603
class WinMacros;
49619
 
class CMatchSyntax;
49620
 
class ExtGnu;
 
59604
class WinAsm;
 
59605
class WinDeclSpecs;
 
59606
class WinMemberExplSpec;
 
59607
class WinTypeKeywords;
 
59608
class WinFriend;
49621
59609
class ExtAC;
49622
59610
class ExtACBuilderCoupling;
49623
59611
class ExtACSyntaxCoupling;
49624
59612
class ExtACTree;
49625
59613
class ExtACKeywords;
49626
 
class WinAsm;
49627
 
class WinDeclSpecs;
49628
 
class WinMemberExplSpec;
49629
 
class WinTypeKeywords;
 
59614
class ExtGnu;
49630
59615
class PragmaOnceUnitState;
49631
59616
class PragmaOnce;
49632
 
class CCExprResolve;
49633
 
class CExprResolve;
 
59617
class CMatchSyntax;
49634
59618
namespace Puma {
49635
59619
 
49636
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59620
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49637
59621
class CT_DesignatorSeq : public CT_List, public CSemValue {
49638
 
#line 49639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59622
#line 59623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59623
  friend class ::CCExprResolve;
 
59624
  friend class ::CExprResolve;
49639
59625
  friend class ::WinIfExists;
49640
59626
  friend class ::WinImportHandler;
49641
59627
  friend class ::WinMacros;
49642
 
  friend class ::CMatchSyntax;
49643
 
  friend class ::ExtGnu;
 
59628
  friend class ::WinAsm;
 
59629
  friend class ::WinDeclSpecs;
 
59630
  friend class ::WinMemberExplSpec;
 
59631
  friend class ::WinTypeKeywords;
 
59632
  friend class ::WinFriend;
49644
59633
  friend class ::ExtAC;
49645
59634
  friend class ::ExtACBuilderCoupling;
49646
59635
  friend class ::ExtACSyntaxCoupling;
49647
59636
  friend class ::ExtACTree;
49648
59637
  friend class ::ExtACKeywords;
49649
 
  friend class ::WinAsm;
49650
 
  friend class ::WinDeclSpecs;
49651
 
  friend class ::WinMemberExplSpec;
49652
 
  friend class ::WinTypeKeywords;
 
59638
  friend class ::ExtGnu;
49653
59639
  friend class ::PragmaOnceUnitState;
49654
59640
  friend class ::PragmaOnce;
49655
 
  friend class ::CCExprResolve;
49656
 
  friend class ::CExprResolve;
 
59641
  friend class ::CMatchSyntax;
49657
59642
 
49658
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59643
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49659
59644
 
49660
59645
public:
 
59646
  /** Constructor.
 
59647
   *  \param size Initial number of designators. */
49661
59648
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
59649
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49662
59650
  static const char *NodeId ();
 
59651
  /** Get the name of the node. Can be compared with NodeId(). */
49663
59652
  const char *NodeName () const { return NodeId (); }
49664
59653
 
 
59654
  /** Get the type of the entity to initialize. */
49665
59655
  CTypeInfo *Type () const { return type; }
 
59656
  /** Get the value of the entity to initialize. */
49666
59657
  CExprValue *Value () const { return value; }
 
59658
  /** Get the semantic value object. */
49667
59659
  CSemValue *SemValue () const { return (CSemValue*)this; }
49668
59660
};
49669
59661
 
49673
59665
/*                                                                           */
49674
59666
/*****************************************************************************/
49675
59667
 
 
59668
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
59669
 *  Base class for all tree nodes representing declaration specifiers. */
49676
59670
 
49677
 
#line 49678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59671
#line 59672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49678
59672
} // closed Puma
 
59673
class CCExprResolve;
 
59674
class CExprResolve;
49679
59675
class WinIfExists;
49680
59676
class WinImportHandler;
49681
59677
class WinMacros;
49682
 
class CMatchSyntax;
49683
 
class ExtGnu;
 
59678
class WinAsm;
 
59679
class WinDeclSpecs;
 
59680
class WinMemberExplSpec;
 
59681
class WinTypeKeywords;
 
59682
class WinFriend;
49684
59683
class ExtAC;
49685
59684
class ExtACBuilderCoupling;
49686
59685
class ExtACSyntaxCoupling;
49687
59686
class ExtACTree;
49688
59687
class ExtACKeywords;
49689
 
class WinAsm;
49690
 
class WinDeclSpecs;
49691
 
class WinMemberExplSpec;
49692
 
class WinTypeKeywords;
 
59688
class ExtGnu;
49693
59689
class PragmaOnceUnitState;
49694
59690
class PragmaOnce;
49695
 
class CCExprResolve;
49696
 
class CExprResolve;
 
59691
class CMatchSyntax;
49697
59692
namespace Puma {
49698
59693
 
49699
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59694
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49700
59695
class CT_DeclSpec : public CTree {
49701
 
#line 49702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59696
#line 59697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59697
  friend class ::CCExprResolve;
 
59698
  friend class ::CExprResolve;
49702
59699
  friend class ::WinIfExists;
49703
59700
  friend class ::WinImportHandler;
49704
59701
  friend class ::WinMacros;
49705
 
  friend class ::CMatchSyntax;
49706
 
  friend class ::ExtGnu;
 
59702
  friend class ::WinAsm;
 
59703
  friend class ::WinDeclSpecs;
 
59704
  friend class ::WinMemberExplSpec;
 
59705
  friend class ::WinTypeKeywords;
 
59706
  friend class ::WinFriend;
49707
59707
  friend class ::ExtAC;
49708
59708
  friend class ::ExtACBuilderCoupling;
49709
59709
  friend class ::ExtACSyntaxCoupling;
49710
59710
  friend class ::ExtACTree;
49711
59711
  friend class ::ExtACKeywords;
49712
 
  friend class ::WinAsm;
49713
 
  friend class ::WinDeclSpecs;
49714
 
  friend class ::WinMemberExplSpec;
49715
 
  friend class ::WinTypeKeywords;
 
59712
  friend class ::ExtGnu;
49716
59713
  friend class ::PragmaOnceUnitState;
49717
59714
  friend class ::PragmaOnce;
49718
 
  friend class ::CCExprResolve;
49719
 
  friend class ::CExprResolve;
 
59715
  friend class ::CMatchSyntax;
49720
59716
 
49721
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59717
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49722
59718
 
49723
59719
protected:
 
59720
  /** Constructor. */
49724
59721
  CT_DeclSpec () {}
49725
59722
};
49726
59723
 
 
59724
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
59725
 *  Tree node representing a primitive declaration specifier. */
49727
59726
 
49728
 
#line 49729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59727
#line 59728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49729
59728
} // closed Puma
 
59729
class CCExprResolve;
 
59730
class CExprResolve;
49730
59731
class WinIfExists;
49731
59732
class WinImportHandler;
49732
59733
class WinMacros;
49733
 
class CMatchSyntax;
49734
 
class ExtGnu;
 
59734
class WinAsm;
 
59735
class WinDeclSpecs;
 
59736
class WinMemberExplSpec;
 
59737
class WinTypeKeywords;
 
59738
class WinFriend;
49735
59739
class ExtAC;
49736
59740
class ExtACBuilderCoupling;
49737
59741
class ExtACSyntaxCoupling;
49738
59742
class ExtACTree;
49739
59743
class ExtACKeywords;
49740
 
class WinAsm;
49741
 
class WinDeclSpecs;
49742
 
class WinMemberExplSpec;
49743
 
class WinTypeKeywords;
 
59744
class ExtGnu;
49744
59745
class PragmaOnceUnitState;
49745
59746
class PragmaOnce;
49746
 
class CCExprResolve;
49747
 
class CExprResolve;
 
59747
class CMatchSyntax;
49748
59748
namespace Puma {
49749
59749
 
49750
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59750
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49751
59751
class CT_PrimDeclSpec : public CT_DeclSpec {
49752
 
#line 49753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59752
#line 59753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59753
  friend class ::CCExprResolve;
 
59754
  friend class ::CExprResolve;
49753
59755
  friend class ::WinIfExists;
49754
59756
  friend class ::WinImportHandler;
49755
59757
  friend class ::WinMacros;
49756
 
  friend class ::CMatchSyntax;
49757
 
  friend class ::ExtGnu;
 
59758
  friend class ::WinAsm;
 
59759
  friend class ::WinDeclSpecs;
 
59760
  friend class ::WinMemberExplSpec;
 
59761
  friend class ::WinTypeKeywords;
 
59762
  friend class ::WinFriend;
49758
59763
  friend class ::ExtAC;
49759
59764
  friend class ::ExtACBuilderCoupling;
49760
59765
  friend class ::ExtACSyntaxCoupling;
49761
59766
  friend class ::ExtACTree;
49762
59767
  friend class ::ExtACKeywords;
49763
 
  friend class ::WinAsm;
49764
 
  friend class ::WinDeclSpecs;
49765
 
  friend class ::WinMemberExplSpec;
49766
 
  friend class ::WinTypeKeywords;
 
59768
  friend class ::ExtGnu;
49767
59769
  friend class ::PragmaOnceUnitState;
49768
59770
  friend class ::PragmaOnce;
49769
 
  friend class ::CCExprResolve;
49770
 
  friend class ::CExprResolve;
 
59771
  friend class ::CMatchSyntax;
49771
59772
 
49772
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59773
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49773
59774
 
49774
59775
public:
49775
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
49776
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
49777
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
49778
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
49779
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
49780
 
              // AspectC++ specific type specifier
49781
 
              PDS_UNKNOWN_T,
49782
 
              // Win specific declaration specifiers
49783
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
49784
 
              PDS_UNKNOWN, PDS_NUM };
 
59776
  /** Declaration specifier types. */
 
59777
  enum Type { 
 
59778
    PDS_FRIEND,    /** friend */
 
59779
    PDS_TYPEDEF,   /** typedef */
 
59780
    PDS_AUTO,      /** auto */
 
59781
    PDS_REGISTER,  /** register */
 
59782
    PDS_STATIC,    /** static */
 
59783
    PDS_EXTERN,    /** extern */
 
59784
    PDS_MUTABLE,   /** mutable */
 
59785
    PDS_INLINE,    /** inline */
 
59786
    PDS_VIRTUAL,   /** virtual */
 
59787
    PDS_EXPLICIT,  /** explicit */
 
59788
    PDS_CONST,     /** const */
 
59789
    PDS_VOLATILE,  /** volatile */
 
59790
    PDS_RESTRICT,  /** restrict */
 
59791
    PDS_CHAR,      /** char */
 
59792
    PDS_WCHAR_T,   /** wchar_t */
 
59793
    PDS_BOOL,      /** bool */
 
59794
    PDS_SHORT,     /** short */
 
59795
    PDS_INT,       /** int */
 
59796
    PDS_LONG,      /** long */
 
59797
    PDS_SIGNED,    /** signed */
 
59798
    PDS_UNSIGNED,  /** unsigned */
 
59799
    PDS_FLOAT,     /** float */
 
59800
    PDS_DOUBLE,    /** double */
 
59801
    PDS_VOID,      /** void */
 
59802
    // AspectC++ specific type specifier
 
59803
    PDS_UNKNOWN_T, /** unknown_t */
 
59804
    // Win specific declaration specifiers
 
59805
    PDS_CDECL,     /** __cdecl */
 
59806
    PDS_STDCALL,   /** __stdcall */
 
59807
    PDS_FASTCALL,  /** __fastcall */
 
59808
    PDS_INT64,     /** __int64 */
 
59809
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
59810
    PDS_NUM        /** Number of declaration specifier types. */
 
59811
  };
49785
59812
 
49786
59813
private:
49787
59814
  Type _type;
49788
 
  CT_Token *_token;
 
59815
  CTree *_token; // has to be a CT_Token
49789
59816
 
49790
59817
  void determine_type ();
49791
59818
 
49792
59819
public:
49793
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
59820
  /** Constructor.
 
59821
   *  \param t The token containing the declaration specifier. */
 
59822
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
59823
  /** Constructor.
 
59824
   *  \param t The declaration specifier type. */
49794
59825
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
59826
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49795
59827
  static const char *NodeId ();
 
59828
  /** Get the name of the node. Can be compared with NodeId(). */
49796
59829
  const char *NodeName () const { return NodeId (); }
 
59830
  /** Get the number of sons. */
49797
59831
  int Sons () const { return _token ? 1 : 0; }
 
59832
  /** Get the n-th son.
 
59833
   *  \param n The index of the son.
 
59834
   *  \return The n-th son or NULL. */
49798
59835
  CTree *Son (int n) const 
49799
59836
   { return (n == 0) ? _token : (CTree*)0; }
 
59837
  /** Get the textual representation of the declaration specifier.
 
59838
   *  \return The string representation or " ". */
49800
59839
  const char *SpecText () const 
49801
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
59840
   { return _token ? _token->token ()->text () : " "; }
 
59841
  /** Get the declaration specifier type. */
49802
59842
  Type SpecType () const { return _type; }
 
59843
  /** Number of declaration specifier types. */
49803
59844
  static const int NumTypes = PDS_NUM;
 
59845
  /** Replace a son.
 
59846
   *  \param old_son The son to replace.
 
59847
   *  \param new_son The new son. */
 
59848
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
59849
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
59850
    determine_type ();
 
59851
  }
49804
59852
};
49805
59853
 
 
59854
/** \class CT_NamedType CTree.h Puma/CTree.h
 
59855
 *  Tree node representing a named type, e.g. (int*)a. 
 
59856
 *  where int* is a type with a generated name. */
49806
59857
 
49807
 
#line 49808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59858
#line 59859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49808
59859
} // closed Puma
 
59860
class CCExprResolve;
 
59861
class CExprResolve;
49809
59862
class WinIfExists;
49810
59863
class WinImportHandler;
49811
59864
class WinMacros;
49812
 
class CMatchSyntax;
49813
 
class ExtGnu;
 
59865
class WinAsm;
 
59866
class WinDeclSpecs;
 
59867
class WinMemberExplSpec;
 
59868
class WinTypeKeywords;
 
59869
class WinFriend;
49814
59870
class ExtAC;
49815
59871
class ExtACBuilderCoupling;
49816
59872
class ExtACSyntaxCoupling;
49817
59873
class ExtACTree;
49818
59874
class ExtACKeywords;
49819
 
class WinAsm;
49820
 
class WinDeclSpecs;
49821
 
class WinMemberExplSpec;
49822
 
class WinTypeKeywords;
 
59875
class ExtGnu;
49823
59876
class PragmaOnceUnitState;
49824
59877
class PragmaOnce;
49825
 
class CCExprResolve;
49826
 
class CExprResolve;
 
59878
class CMatchSyntax;
49827
59879
namespace Puma {
49828
59880
 
49829
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59881
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49830
59882
class CT_NamedType : public CT_DeclSpec, public CSemObject {
49831
 
#line 49832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59883
#line 59884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59884
  friend class ::CCExprResolve;
 
59885
  friend class ::CExprResolve;
49832
59886
  friend class ::WinIfExists;
49833
59887
  friend class ::WinImportHandler;
49834
59888
  friend class ::WinMacros;
49835
 
  friend class ::CMatchSyntax;
49836
 
  friend class ::ExtGnu;
 
59889
  friend class ::WinAsm;
 
59890
  friend class ::WinDeclSpecs;
 
59891
  friend class ::WinMemberExplSpec;
 
59892
  friend class ::WinTypeKeywords;
 
59893
  friend class ::WinFriend;
49837
59894
  friend class ::ExtAC;
49838
59895
  friend class ::ExtACBuilderCoupling;
49839
59896
  friend class ::ExtACSyntaxCoupling;
49840
59897
  friend class ::ExtACTree;
49841
59898
  friend class ::ExtACKeywords;
49842
 
  friend class ::WinAsm;
49843
 
  friend class ::WinDeclSpecs;
49844
 
  friend class ::WinMemberExplSpec;
49845
 
  friend class ::WinTypeKeywords;
 
59899
  friend class ::ExtGnu;
49846
59900
  friend class ::PragmaOnceUnitState;
49847
59901
  friend class ::PragmaOnce;
49848
 
  friend class ::CCExprResolve;
49849
 
  friend class ::CExprResolve;
 
59902
  friend class ::CMatchSyntax;
49850
59903
 
49851
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59904
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49852
59905
 
49853
59906
  CTree *sons[2]; // declspecs, declarator
49854
59907
 
49855
59908
public:
49856
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
59909
  /** Constructor.
 
59910
   *  \param dss The declaration specifier sequence of the type.
 
59911
   *  \param d The type declarator. */
 
59912
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
59913
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49857
59914
  static const char *NodeId ();
 
59915
  /** Get the name of the node. Can be compared with NodeId(). */
49858
59916
  const char *NodeName () const { return NodeId (); }
 
59917
  /** Get the number of sons. */
49859
59918
  int Sons () const { return CTree::Sons (sons, 2); }
 
59919
  /** Get the n-th son.
 
59920
   *  \param n The index of the son.
 
59921
   *  \return The n-th son or NULL. */
49860
59922
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
59923
  /** Get the declarator. */
49861
59924
  CTree *Declarator () const { return sons[1]; }
 
59925
  /** Replace a son.
 
59926
   *  \param old_son The son to replace.
 
59927
   *  \param new_son The new son. */
49862
59928
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49863
59929
    CTree::ReplaceSon (sons, 2, old_son, new_son);
49864
59930
  }
 
59931
  /** Get the semantic information object. */
49865
59932
  CSemObject *SemObject () const { return (CSemObject*)this; }
49866
59933
};
49867
59934
      
 
59935
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
59936
 *  Tree node representing a class specifier, e.g. class X. */
49868
59937
 
49869
 
#line 49870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59938
#line 59939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49870
59939
} // closed Puma
 
59940
class CCExprResolve;
 
59941
class CExprResolve;
49871
59942
class WinIfExists;
49872
59943
class WinImportHandler;
49873
59944
class WinMacros;
49874
 
class CMatchSyntax;
49875
 
class ExtGnu;
 
59945
class WinAsm;
 
59946
class WinDeclSpecs;
 
59947
class WinMemberExplSpec;
 
59948
class WinTypeKeywords;
 
59949
class WinFriend;
49876
59950
class ExtAC;
49877
59951
class ExtACBuilderCoupling;
49878
59952
class ExtACSyntaxCoupling;
49879
59953
class ExtACTree;
49880
59954
class ExtACKeywords;
49881
 
class WinAsm;
49882
 
class WinDeclSpecs;
49883
 
class WinMemberExplSpec;
49884
 
class WinTypeKeywords;
 
59955
class ExtGnu;
49885
59956
class PragmaOnceUnitState;
49886
59957
class PragmaOnce;
49887
 
class CCExprResolve;
49888
 
class CExprResolve;
 
59958
class CMatchSyntax;
49889
59959
namespace Puma {
49890
59960
 
49891
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59961
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49892
59962
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
49893
 
#line 49894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
59963
#line 59964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
59964
  friend class ::CCExprResolve;
 
59965
  friend class ::CExprResolve;
49894
59966
  friend class ::WinIfExists;
49895
59967
  friend class ::WinImportHandler;
49896
59968
  friend class ::WinMacros;
49897
 
  friend class ::CMatchSyntax;
49898
 
  friend class ::ExtGnu;
 
59969
  friend class ::WinAsm;
 
59970
  friend class ::WinDeclSpecs;
 
59971
  friend class ::WinMemberExplSpec;
 
59972
  friend class ::WinTypeKeywords;
 
59973
  friend class ::WinFriend;
49899
59974
  friend class ::ExtAC;
49900
59975
  friend class ::ExtACBuilderCoupling;
49901
59976
  friend class ::ExtACSyntaxCoupling;
49902
59977
  friend class ::ExtACTree;
49903
59978
  friend class ::ExtACKeywords;
49904
 
  friend class ::WinAsm;
49905
 
  friend class ::WinDeclSpecs;
49906
 
  friend class ::WinMemberExplSpec;
49907
 
  friend class ::WinTypeKeywords;
 
59979
  friend class ::ExtGnu;
49908
59980
  friend class ::PragmaOnceUnitState;
49909
59981
  friend class ::PragmaOnce;
49910
 
  friend class ::CCExprResolve;
49911
 
  friend class ::CExprResolve;
 
59982
  friend class ::CMatchSyntax;
49912
59983
 
49913
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59984
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49914
59985
 
49915
59986
  CTree *sons[2]; // key, name
49916
59987
  
49917
59988
public:
49918
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
59989
  /** Constructor.
 
59990
   *  \param k The 'class' or 'struct' keyword.
 
59991
   *  \param n The class name. */
 
59992
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
59993
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49919
59994
  static const char *NodeId ();
 
59995
  /** Get the name of the node. Can be compared with NodeId(). */
49920
59996
  const char *NodeName () const { return NodeId (); }
 
59997
  /** Get the number of sons. */
49921
59998
  int Sons () const { return 2; }
 
59999
  /** Get the n-th son.
 
60000
   *  \param n The index of the son.
 
60001
   *  \return The n-th son or NULL. */
49922
60002
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
60003
  /** Get the class name. */
49923
60004
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
60005
  /** Get the semantic information object. */
49924
60006
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
60007
  /** Replace a son.
 
60008
   *  \param old_son The son to replace.
 
60009
   *  \param new_son The new son. */
49925
60010
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49926
60011
    CTree::ReplaceSon (sons, 2, old_son, new_son);
49927
60012
  }
49928
60013
};
49929
60014
 
 
60015
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
60016
 *  Tree node representing a union specifier, e.g. union X. */
49930
60017
 
49931
 
#line 49932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60018
#line 60019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49932
60019
} // closed Puma
 
60020
class CCExprResolve;
 
60021
class CExprResolve;
49933
60022
class WinIfExists;
49934
60023
class WinImportHandler;
49935
60024
class WinMacros;
49936
 
class CMatchSyntax;
49937
 
class ExtGnu;
 
60025
class WinAsm;
 
60026
class WinDeclSpecs;
 
60027
class WinMemberExplSpec;
 
60028
class WinTypeKeywords;
 
60029
class WinFriend;
49938
60030
class ExtAC;
49939
60031
class ExtACBuilderCoupling;
49940
60032
class ExtACSyntaxCoupling;
49941
60033
class ExtACTree;
49942
60034
class ExtACKeywords;
49943
 
class WinAsm;
49944
 
class WinDeclSpecs;
49945
 
class WinMemberExplSpec;
49946
 
class WinTypeKeywords;
 
60035
class ExtGnu;
49947
60036
class PragmaOnceUnitState;
49948
60037
class PragmaOnce;
49949
 
class CCExprResolve;
49950
 
class CExprResolve;
 
60038
class CMatchSyntax;
49951
60039
namespace Puma {
49952
60040
 
49953
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60041
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49954
60042
class CT_UnionSpec : public CT_ClassSpec {
49955
 
#line 49956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60043
#line 60044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60044
  friend class ::CCExprResolve;
 
60045
  friend class ::CExprResolve;
49956
60046
  friend class ::WinIfExists;
49957
60047
  friend class ::WinImportHandler;
49958
60048
  friend class ::WinMacros;
49959
 
  friend class ::CMatchSyntax;
49960
 
  friend class ::ExtGnu;
 
60049
  friend class ::WinAsm;
 
60050
  friend class ::WinDeclSpecs;
 
60051
  friend class ::WinMemberExplSpec;
 
60052
  friend class ::WinTypeKeywords;
 
60053
  friend class ::WinFriend;
49961
60054
  friend class ::ExtAC;
49962
60055
  friend class ::ExtACBuilderCoupling;
49963
60056
  friend class ::ExtACSyntaxCoupling;
49964
60057
  friend class ::ExtACTree;
49965
60058
  friend class ::ExtACKeywords;
49966
 
  friend class ::WinAsm;
49967
 
  friend class ::WinDeclSpecs;
49968
 
  friend class ::WinMemberExplSpec;
49969
 
  friend class ::WinTypeKeywords;
 
60059
  friend class ::ExtGnu;
49970
60060
  friend class ::PragmaOnceUnitState;
49971
60061
  friend class ::PragmaOnce;
49972
 
  friend class ::CCExprResolve;
49973
 
  friend class ::CExprResolve;
 
60062
  friend class ::CMatchSyntax;
49974
60063
 
49975
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60064
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49976
60065
 
49977
60066
public:
 
60067
  /** Constructor.
 
60068
   *  \param k The 'union' keyword.
 
60069
   *  \param n The name of the union. */
49978
60070
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
60071
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49979
60072
  static const char *NodeId ();
 
60073
  /** Get the name of the node. Can be compared with NodeId(). */
49980
60074
  const char *NodeName () const { return NodeId (); }
49981
60075
};
49982
60076
 
 
60077
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
60078
 *  Tree node representing an enumeration specifier, e.g. enum X. */
49983
60079
 
49984
 
#line 49985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60080
#line 60081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
49985
60081
} // closed Puma
 
60082
class CCExprResolve;
 
60083
class CExprResolve;
49986
60084
class WinIfExists;
49987
60085
class WinImportHandler;
49988
60086
class WinMacros;
49989
 
class CMatchSyntax;
49990
 
class ExtGnu;
 
60087
class WinAsm;
 
60088
class WinDeclSpecs;
 
60089
class WinMemberExplSpec;
 
60090
class WinTypeKeywords;
 
60091
class WinFriend;
49991
60092
class ExtAC;
49992
60093
class ExtACBuilderCoupling;
49993
60094
class ExtACSyntaxCoupling;
49994
60095
class ExtACTree;
49995
60096
class ExtACKeywords;
49996
 
class WinAsm;
49997
 
class WinDeclSpecs;
49998
 
class WinMemberExplSpec;
49999
 
class WinTypeKeywords;
 
60097
class ExtGnu;
50000
60098
class PragmaOnceUnitState;
50001
60099
class PragmaOnce;
50002
 
class CCExprResolve;
50003
 
class CExprResolve;
 
60100
class CMatchSyntax;
50004
60101
namespace Puma {
50005
60102
 
50006
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60103
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50007
60104
class CT_EnumSpec : public CT_ClassSpec {
50008
 
#line 50009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60105
#line 60106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60106
  friend class ::CCExprResolve;
 
60107
  friend class ::CExprResolve;
50009
60108
  friend class ::WinIfExists;
50010
60109
  friend class ::WinImportHandler;
50011
60110
  friend class ::WinMacros;
50012
 
  friend class ::CMatchSyntax;
50013
 
  friend class ::ExtGnu;
 
60111
  friend class ::WinAsm;
 
60112
  friend class ::WinDeclSpecs;
 
60113
  friend class ::WinMemberExplSpec;
 
60114
  friend class ::WinTypeKeywords;
 
60115
  friend class ::WinFriend;
50014
60116
  friend class ::ExtAC;
50015
60117
  friend class ::ExtACBuilderCoupling;
50016
60118
  friend class ::ExtACSyntaxCoupling;
50017
60119
  friend class ::ExtACTree;
50018
60120
  friend class ::ExtACKeywords;
50019
 
  friend class ::WinAsm;
50020
 
  friend class ::WinDeclSpecs;
50021
 
  friend class ::WinMemberExplSpec;
50022
 
  friend class ::WinTypeKeywords;
 
60121
  friend class ::ExtGnu;
50023
60122
  friend class ::PragmaOnceUnitState;
50024
60123
  friend class ::PragmaOnce;
50025
 
  friend class ::CCExprResolve;
50026
 
  friend class ::CExprResolve;
 
60124
  friend class ::CMatchSyntax;
50027
60125
 
50028
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60126
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50029
60127
 
50030
60128
public:
 
60129
  /** Constructor.
 
60130
   *  \param k The 'enum' keyword. 
 
60131
   *  \param n The name of the enumeration. */
50031
60132
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
60133
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50032
60134
  static const char *NodeId ();
 
60135
  /** Get the name of the node. Can be compared with NodeId(). */
50033
60136
  const char *NodeName () const { return NodeId (); }
50034
60137
};
50035
60138
 
 
60139
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
60140
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
50036
60141
 
50037
 
#line 50038 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60142
#line 60143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50038
60143
} // closed Puma
 
60144
class CCExprResolve;
 
60145
class CExprResolve;
50039
60146
class WinIfExists;
50040
60147
class WinImportHandler;
50041
60148
class WinMacros;
50042
 
class CMatchSyntax;
50043
 
class ExtGnu;
 
60149
class WinAsm;
 
60150
class WinDeclSpecs;
 
60151
class WinMemberExplSpec;
 
60152
class WinTypeKeywords;
 
60153
class WinFriend;
50044
60154
class ExtAC;
50045
60155
class ExtACBuilderCoupling;
50046
60156
class ExtACSyntaxCoupling;
50047
60157
class ExtACTree;
50048
60158
class ExtACKeywords;
50049
 
class WinAsm;
50050
 
class WinDeclSpecs;
50051
 
class WinMemberExplSpec;
50052
 
class WinTypeKeywords;
 
60159
class ExtGnu;
50053
60160
class PragmaOnceUnitState;
50054
60161
class PragmaOnce;
50055
 
class CCExprResolve;
50056
 
class CExprResolve;
 
60162
class CMatchSyntax;
50057
60163
namespace Puma {
50058
60164
 
50059
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60165
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50060
60166
class CT_ExceptionSpec : public CT_DeclSpec {
50061
 
#line 50062 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60167
#line 60168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60168
  friend class ::CCExprResolve;
 
60169
  friend class ::CExprResolve;
50062
60170
  friend class ::WinIfExists;
50063
60171
  friend class ::WinImportHandler;
50064
60172
  friend class ::WinMacros;
50065
 
  friend class ::CMatchSyntax;
50066
 
  friend class ::ExtGnu;
 
60173
  friend class ::WinAsm;
 
60174
  friend class ::WinDeclSpecs;
 
60175
  friend class ::WinMemberExplSpec;
 
60176
  friend class ::WinTypeKeywords;
 
60177
  friend class ::WinFriend;
50067
60178
  friend class ::ExtAC;
50068
60179
  friend class ::ExtACBuilderCoupling;
50069
60180
  friend class ::ExtACSyntaxCoupling;
50070
60181
  friend class ::ExtACTree;
50071
60182
  friend class ::ExtACKeywords;
50072
 
  friend class ::WinAsm;
50073
 
  friend class ::WinDeclSpecs;
50074
 
  friend class ::WinMemberExplSpec;
50075
 
  friend class ::WinTypeKeywords;
 
60183
  friend class ::ExtGnu;
50076
60184
  friend class ::PragmaOnceUnitState;
50077
60185
  friend class ::PragmaOnce;
50078
 
  friend class ::CCExprResolve;
50079
 
  friend class ::CExprResolve;
 
60186
  friend class ::CMatchSyntax;
50080
60187
 
50081
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60188
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50082
60189
 
50083
60190
  CTree *sons[2]; // throw, type_id_list
50084
60191
  
50085
60192
public:
50086
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
60193
  /** Constructor.
 
60194
   *  \param k The 'throw' keyword.
 
60195
   *  \param l The type list for the exception type to throw. */
 
60196
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
60197
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50087
60198
  static const char *NodeId ();
 
60199
  /** Get the name of the node. Can be compared with NodeId(). */
50088
60200
  const char *NodeName () const { return NodeId (); }
 
60201
  /** Get the number of sons. */
50089
60202
  int Sons () const { return 2; }
 
60203
  /** Get the n-th son.
 
60204
   *  \param n The index of the son.
 
60205
   *  \return The n-th son or NULL. */
50090
60206
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
60207
  /** Get the exception type list. */
50091
60208
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
60209
  /** Replace a son.
 
60210
   *  \param old_son The son to replace.
 
60211
   *  \param new_son The new son. */
50092
60212
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50093
60213
    CTree::ReplaceSon (sons, 2, old_son, new_son);
50094
60214
  }
50100
60220
/*                                                                           */
50101
60221
/*****************************************************************************/
50102
60222
 
 
60223
/** \class CT_Decl CTree.h Puma/CTree.h
 
60224
 *  Base class for all tree nodes representing declarations. */
50103
60225
 
50104
 
#line 50105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60226
#line 60227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50105
60227
} // closed Puma
 
60228
class CCExprResolve;
 
60229
class CExprResolve;
50106
60230
class WinIfExists;
50107
60231
class WinImportHandler;
50108
60232
class WinMacros;
50109
 
class CMatchSyntax;
50110
 
class ExtGnu;
 
60233
class WinAsm;
 
60234
class WinDeclSpecs;
 
60235
class WinMemberExplSpec;
 
60236
class WinTypeKeywords;
 
60237
class WinFriend;
50111
60238
class ExtAC;
50112
60239
class ExtACBuilderCoupling;
50113
60240
class ExtACSyntaxCoupling;
50114
60241
class ExtACTree;
50115
60242
class ExtACKeywords;
50116
 
class WinAsm;
50117
 
class WinDeclSpecs;
50118
 
class WinMemberExplSpec;
50119
 
class WinTypeKeywords;
 
60243
class ExtGnu;
50120
60244
class PragmaOnceUnitState;
50121
60245
class PragmaOnce;
50122
 
class CCExprResolve;
50123
 
class CExprResolve;
 
60246
class CMatchSyntax;
50124
60247
namespace Puma {
50125
60248
 
50126
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60249
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50127
60250
class CT_Decl : public CTree {
50128
 
#line 50129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60251
#line 60252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60252
  friend class ::CCExprResolve;
 
60253
  friend class ::CExprResolve;
50129
60254
  friend class ::WinIfExists;
50130
60255
  friend class ::WinImportHandler;
50131
60256
  friend class ::WinMacros;
50132
 
  friend class ::CMatchSyntax;
50133
 
  friend class ::ExtGnu;
 
60257
  friend class ::WinAsm;
 
60258
  friend class ::WinDeclSpecs;
 
60259
  friend class ::WinMemberExplSpec;
 
60260
  friend class ::WinTypeKeywords;
 
60261
  friend class ::WinFriend;
50134
60262
  friend class ::ExtAC;
50135
60263
  friend class ::ExtACBuilderCoupling;
50136
60264
  friend class ::ExtACSyntaxCoupling;
50137
60265
  friend class ::ExtACTree;
50138
60266
  friend class ::ExtACKeywords;
50139
 
  friend class ::WinAsm;
50140
 
  friend class ::WinDeclSpecs;
50141
 
  friend class ::WinMemberExplSpec;
50142
 
  friend class ::WinTypeKeywords;
 
60267
  friend class ::ExtGnu;
50143
60268
  friend class ::PragmaOnceUnitState;
50144
60269
  friend class ::PragmaOnce;
50145
 
  friend class ::CCExprResolve;
50146
 
  friend class ::CExprResolve;
 
60270
  friend class ::CMatchSyntax;
50147
60271
 
50148
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60272
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50149
60273
 
50150
60274
  CT_LinkageSpec *_linkage;
 
60275
  
50151
60276
protected:
 
60277
  /** Constructor. */
50152
60278
  CT_Decl () : _linkage (0) {}
 
60279
  
50153
60280
public:
 
60281
  /** Set the linkage of the declared entity.
 
60282
   *  \param l The linkage specifiers. */
50154
60283
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
60284
  /** Get the linkage specifiers. */
50155
60285
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
60286
  /** Get this. */
 
60287
  virtual CT_Decl *IsDeclaration () { return this; }
50156
60288
};
50157
60289
 
 
60290
/** \class CT_Program CTree.h Puma/CTree.h
 
60291
 *  Root node of C/C++ syntax tree. */
50158
60292
 
50159
 
#line 50160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60293
#line 60294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50160
60294
} // closed Puma
 
60295
class CCExprResolve;
 
60296
class CExprResolve;
50161
60297
class WinIfExists;
50162
60298
class WinImportHandler;
50163
60299
class WinMacros;
50164
 
class CMatchSyntax;
50165
 
class ExtGnu;
 
60300
class WinAsm;
 
60301
class WinDeclSpecs;
 
60302
class WinMemberExplSpec;
 
60303
class WinTypeKeywords;
 
60304
class WinFriend;
50166
60305
class ExtAC;
50167
60306
class ExtACBuilderCoupling;
50168
60307
class ExtACSyntaxCoupling;
50169
60308
class ExtACTree;
50170
60309
class ExtACKeywords;
50171
 
class WinAsm;
50172
 
class WinDeclSpecs;
50173
 
class WinMemberExplSpec;
50174
 
class WinTypeKeywords;
 
60310
class ExtGnu;
50175
60311
class PragmaOnceUnitState;
50176
60312
class PragmaOnce;
50177
 
class CCExprResolve;
50178
 
class CExprResolve;
 
60313
class CMatchSyntax;
50179
60314
namespace Puma {
50180
60315
 
50181
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60316
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50182
60317
class CT_Program : public CT_DeclList, public CSemScope {
50183
 
#line 50184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60318
#line 60319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60319
  friend class ::CCExprResolve;
 
60320
  friend class ::CExprResolve;
50184
60321
  friend class ::WinIfExists;
50185
60322
  friend class ::WinImportHandler;
50186
60323
  friend class ::WinMacros;
50187
 
  friend class ::CMatchSyntax;
50188
 
  friend class ::ExtGnu;
 
60324
  friend class ::WinAsm;
 
60325
  friend class ::WinDeclSpecs;
 
60326
  friend class ::WinMemberExplSpec;
 
60327
  friend class ::WinTypeKeywords;
 
60328
  friend class ::WinFriend;
50189
60329
  friend class ::ExtAC;
50190
60330
  friend class ::ExtACBuilderCoupling;
50191
60331
  friend class ::ExtACSyntaxCoupling;
50192
60332
  friend class ::ExtACTree;
50193
60333
  friend class ::ExtACKeywords;
50194
 
  friend class ::WinAsm;
50195
 
  friend class ::WinDeclSpecs;
50196
 
  friend class ::WinMemberExplSpec;
50197
 
  friend class ::WinTypeKeywords;
 
60334
  friend class ::ExtGnu;
50198
60335
  friend class ::PragmaOnceUnitState;
50199
60336
  friend class ::PragmaOnce;
50200
 
  friend class ::CCExprResolve;
50201
 
  friend class ::CExprResolve;
 
60337
  friend class ::CMatchSyntax;
50202
60338
 
50203
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60339
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50204
60340
 
50205
60341
public:
 
60342
  /** Constructor.
 
60343
   *  \param size The initial number of declarations in the program.
 
60344
   *  \param incr The initial increment count. */
50206
60345
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
60346
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50207
60347
  static const char *NodeId ();
 
60348
  /** Get the name of the node. Can be compared with NodeId(). */
50208
60349
  const char *NodeName () const { return NodeId (); }
 
60350
  /** Get the semantic scope object. */
 
60351
  CSemScope *SemScope () const { return (CSemScope*)this; }
50209
60352
};
50210
60353
   
 
60354
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
60355
 *  Tree node representing an object declaration, e.g. int *i. */
50211
60356
 
50212
 
#line 50213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60357
#line 60358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50213
60358
} // closed Puma
 
60359
class CCExprResolve;
 
60360
class CExprResolve;
50214
60361
class WinIfExists;
50215
60362
class WinImportHandler;
50216
60363
class WinMacros;
50217
 
class CMatchSyntax;
50218
 
class ExtGnu;
 
60364
class WinAsm;
 
60365
class WinDeclSpecs;
 
60366
class WinMemberExplSpec;
 
60367
class WinTypeKeywords;
 
60368
class WinFriend;
50219
60369
class ExtAC;
50220
60370
class ExtACBuilderCoupling;
50221
60371
class ExtACSyntaxCoupling;
50222
60372
class ExtACTree;
50223
60373
class ExtACKeywords;
50224
 
class WinAsm;
50225
 
class WinDeclSpecs;
50226
 
class WinMemberExplSpec;
50227
 
class WinTypeKeywords;
 
60374
class ExtGnu;
50228
60375
class PragmaOnceUnitState;
50229
60376
class PragmaOnce;
50230
 
class CCExprResolve;
50231
 
class CExprResolve;
 
60377
class CMatchSyntax;
50232
60378
namespace Puma {
50233
60379
 
50234
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60380
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50235
60381
class CT_ObjDecl : public CT_Decl {
50236
 
#line 50237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60382
#line 60383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60383
  friend class ::CCExprResolve;
 
60384
  friend class ::CExprResolve;
50237
60385
  friend class ::WinIfExists;
50238
60386
  friend class ::WinImportHandler;
50239
60387
  friend class ::WinMacros;
50240
 
  friend class ::CMatchSyntax;
50241
 
  friend class ::ExtGnu;
 
60388
  friend class ::WinAsm;
 
60389
  friend class ::WinDeclSpecs;
 
60390
  friend class ::WinMemberExplSpec;
 
60391
  friend class ::WinTypeKeywords;
 
60392
  friend class ::WinFriend;
50242
60393
  friend class ::ExtAC;
50243
60394
  friend class ::ExtACBuilderCoupling;
50244
60395
  friend class ::ExtACSyntaxCoupling;
50245
60396
  friend class ::ExtACTree;
50246
60397
  friend class ::ExtACKeywords;
50247
 
  friend class ::WinAsm;
50248
 
  friend class ::WinDeclSpecs;
50249
 
  friend class ::WinMemberExplSpec;
50250
 
  friend class ::WinTypeKeywords;
 
60398
  friend class ::ExtGnu;
50251
60399
  friend class ::PragmaOnceUnitState;
50252
60400
  friend class ::PragmaOnce;
50253
 
  friend class ::CCExprResolve;
50254
 
  friend class ::CExprResolve;
 
60401
  friend class ::CMatchSyntax;
50255
60402
 
50256
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60403
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50257
60404
 
50258
60405
  CTree *sons[3]; // declspecs, declarators, colon
50259
60406
 
50260
60407
public:
 
60408
  /** Constructor.
 
60409
   *  \param dsl The declaration specifier sequence.
 
60410
   *  \param dl The declarator list.
 
60411
   *  \param c Optional colon. */
50261
60412
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
50262
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
60413
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
50263
60414
  }
 
60415
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50264
60416
  static const char *NodeId ();
 
60417
  /** Get the name of the node. Can be compared with NodeId(). */
50265
60418
  const char *NodeName () const { return NodeId (); }
 
60419
  /** Get the number of sons. */
50266
60420
  int Sons () const { return 3; }
 
60421
  /** Get the n-th son.
 
60422
   *  \param n The index of the son.
 
60423
   *  \return The n-th son or NULL. */
50267
60424
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
60425
  /** Get the declaration specifier sequence. */
50268
60426
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
60427
  /** Get the declarator list. */
50269
60428
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
60429
  /** Replace a son.
 
60430
   *  \param old_son The son to replace.
 
60431
   *  \param new_son The new son. */
50270
60432
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50271
60433
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50272
60434
  }
50273
60435
};
50274
60436
 
 
60437
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
60438
 *  Tree node representing a template declaration. */
50275
60439
 
50276
 
#line 50277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60440
#line 60441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50277
60441
} // closed Puma
 
60442
class CCExprResolve;
 
60443
class CExprResolve;
50278
60444
class WinIfExists;
50279
60445
class WinImportHandler;
50280
60446
class WinMacros;
50281
 
class CMatchSyntax;
50282
 
class ExtGnu;
 
60447
class WinAsm;
 
60448
class WinDeclSpecs;
 
60449
class WinMemberExplSpec;
 
60450
class WinTypeKeywords;
 
60451
class WinFriend;
50283
60452
class ExtAC;
50284
60453
class ExtACBuilderCoupling;
50285
60454
class ExtACSyntaxCoupling;
50286
60455
class ExtACTree;
50287
60456
class ExtACKeywords;
50288
 
class WinAsm;
50289
 
class WinDeclSpecs;
50290
 
class WinMemberExplSpec;
50291
 
class WinTypeKeywords;
 
60457
class ExtGnu;
50292
60458
class PragmaOnceUnitState;
50293
60459
class PragmaOnce;
50294
 
class CCExprResolve;
50295
 
class CExprResolve;
 
60460
class CMatchSyntax;
50296
60461
namespace Puma {
50297
60462
 
50298
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60463
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50299
60464
class CT_TemplateDecl : public CT_Decl, public CSemScope {
50300
 
#line 50301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60465
#line 60466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60466
  friend class ::CCExprResolve;
 
60467
  friend class ::CExprResolve;
50301
60468
  friend class ::WinIfExists;
50302
60469
  friend class ::WinImportHandler;
50303
60470
  friend class ::WinMacros;
50304
 
  friend class ::CMatchSyntax;
50305
 
  friend class ::ExtGnu;
 
60471
  friend class ::WinAsm;
 
60472
  friend class ::WinDeclSpecs;
 
60473
  friend class ::WinMemberExplSpec;
 
60474
  friend class ::WinTypeKeywords;
 
60475
  friend class ::WinFriend;
50306
60476
  friend class ::ExtAC;
50307
60477
  friend class ::ExtACBuilderCoupling;
50308
60478
  friend class ::ExtACSyntaxCoupling;
50309
60479
  friend class ::ExtACTree;
50310
60480
  friend class ::ExtACKeywords;
50311
 
  friend class ::WinAsm;
50312
 
  friend class ::WinDeclSpecs;
50313
 
  friend class ::WinMemberExplSpec;
50314
 
  friend class ::WinTypeKeywords;
 
60481
  friend class ::ExtGnu;
50315
60482
  friend class ::PragmaOnceUnitState;
50316
60483
  friend class ::PragmaOnce;
50317
 
  friend class ::CCExprResolve;
50318
 
  friend class ::CExprResolve;
 
60484
  friend class ::CMatchSyntax;
50319
60485
 
50320
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60486
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50321
60487
 
50322
60488
  CTree *sons[3]; // export, param_list, decl
50323
60489
 
50324
60490
public:
 
60491
  /** Constructor.
 
60492
   *  \param e Optional 'export' keyword. 
 
60493
   *  \param p The template parameter list.
 
60494
   *  \param d The class or function declaration. */
50325
60495
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
50326
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
60496
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
50327
60497
  }
 
60498
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50328
60499
  static const char *NodeId ();
 
60500
  /** Get the name of the node. Can be compared with NodeId(). */
50329
60501
  const char *NodeName () const { return NodeId (); }
 
60502
  /** Get the number of sons. */
50330
60503
  int Sons () const { return CTree::Sons (sons, 3); }
 
60504
  /** Get the n-th son.
 
60505
   *  \param n The index of the son.
 
60506
   *  \return The n-th son or NULL. */
50331
60507
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
60508
  /** Replace a son.
 
60509
   *  \param old_son The son to replace.
 
60510
   *  \param new_son The new son. */
50332
60511
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50333
60512
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
50334
60513
  }
 
60514
  /** Get the 'export' keyword. */
50335
60515
  CTree *Export () const { return sons[0]; }
 
60516
  /** Get the template parameter list. */
50336
60517
  CT_TemplateParamList *Parameters () const { 
50337
60518
    return (CT_TemplateParamList*)sons[1]; 
50338
60519
  }
 
60520
  /** Get the class or function declaration. */
50339
60521
  CTree *Declaration () const { return sons[2]; }
 
60522
  /** Get the semantic scope object. */
 
60523
  CSemScope *SemScope () const { return (CSemScope*)this; }
50340
60524
};
50341
60525
 
 
60526
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
60527
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
50342
60528
 
50343
 
#line 50344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60529
#line 60530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50344
60530
} // closed Puma
 
60531
class CCExprResolve;
 
60532
class CExprResolve;
50345
60533
class WinIfExists;
50346
60534
class WinImportHandler;
50347
60535
class WinMacros;
50348
 
class CMatchSyntax;
50349
 
class ExtGnu;
 
60536
class WinAsm;
 
60537
class WinDeclSpecs;
 
60538
class WinMemberExplSpec;
 
60539
class WinTypeKeywords;
 
60540
class WinFriend;
50350
60541
class ExtAC;
50351
60542
class ExtACBuilderCoupling;
50352
60543
class ExtACSyntaxCoupling;
50353
60544
class ExtACTree;
50354
60545
class ExtACKeywords;
50355
 
class WinAsm;
50356
 
class WinDeclSpecs;
50357
 
class WinMemberExplSpec;
50358
 
class WinTypeKeywords;
 
60546
class ExtGnu;
50359
60547
class PragmaOnceUnitState;
50360
60548
class PragmaOnce;
50361
 
class CCExprResolve;
50362
 
class CExprResolve;
 
60549
class CMatchSyntax;
50363
60550
namespace Puma {
50364
60551
 
50365
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60552
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50366
60553
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
50367
 
#line 50368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60554
#line 60555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60555
  friend class ::CCExprResolve;
 
60556
  friend class ::CExprResolve;
50368
60557
  friend class ::WinIfExists;
50369
60558
  friend class ::WinImportHandler;
50370
60559
  friend class ::WinMacros;
50371
 
  friend class ::CMatchSyntax;
50372
 
  friend class ::ExtGnu;
 
60560
  friend class ::WinAsm;
 
60561
  friend class ::WinDeclSpecs;
 
60562
  friend class ::WinMemberExplSpec;
 
60563
  friend class ::WinTypeKeywords;
 
60564
  friend class ::WinFriend;
50373
60565
  friend class ::ExtAC;
50374
60566
  friend class ::ExtACBuilderCoupling;
50375
60567
  friend class ::ExtACSyntaxCoupling;
50376
60568
  friend class ::ExtACTree;
50377
60569
  friend class ::ExtACKeywords;
50378
 
  friend class ::WinAsm;
50379
 
  friend class ::WinDeclSpecs;
50380
 
  friend class ::WinMemberExplSpec;
50381
 
  friend class ::WinTypeKeywords;
 
60570
  friend class ::ExtGnu;
50382
60571
  friend class ::PragmaOnceUnitState;
50383
60572
  friend class ::PragmaOnce;
50384
 
  friend class ::CCExprResolve;
50385
 
  friend class ::CExprResolve;
 
60573
  friend class ::CMatchSyntax;
50386
60574
 
50387
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60575
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50388
60576
 
50389
60577
protected:
 
60578
  /** Constructor. */
50390
60579
  CT_TemplateParamDecl () {}
50391
60580
  
50392
60581
public:
 
60582
  /** Get the template default argument. */
50393
60583
  virtual CT_ExprList *DefaultArgument () const = 0;
 
60584
  /** Get the semantic information object. */
50394
60585
  CSemObject *SemObject () const { return (CSemObject*)this; }
50395
60586
};
50396
60587
 
50397
60588
 
50398
 
#line 50399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60589
#line 60590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50399
60590
} // closed Puma
 
60591
class CCExprResolve;
 
60592
class CExprResolve;
50400
60593
class WinIfExists;
50401
60594
class WinImportHandler;
50402
60595
class WinMacros;
50403
 
class CMatchSyntax;
50404
 
class ExtGnu;
 
60596
class WinAsm;
 
60597
class WinDeclSpecs;
 
60598
class WinMemberExplSpec;
 
60599
class WinTypeKeywords;
 
60600
class WinFriend;
50405
60601
class ExtAC;
50406
60602
class ExtACBuilderCoupling;
50407
60603
class ExtACSyntaxCoupling;
50408
60604
class ExtACTree;
50409
60605
class ExtACKeywords;
50410
 
class WinAsm;
50411
 
class WinDeclSpecs;
50412
 
class WinMemberExplSpec;
50413
 
class WinTypeKeywords;
 
60606
class ExtGnu;
50414
60607
class PragmaOnceUnitState;
50415
60608
class PragmaOnce;
50416
 
class CCExprResolve;
50417
 
class CExprResolve;
 
60609
class CMatchSyntax;
50418
60610
namespace Puma {
50419
60611
 
50420
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60612
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50421
60613
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
50422
 
#line 50423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60614
#line 60615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60615
  friend class ::CCExprResolve;
 
60616
  friend class ::CExprResolve;
50423
60617
  friend class ::WinIfExists;
50424
60618
  friend class ::WinImportHandler;
50425
60619
  friend class ::WinMacros;
50426
 
  friend class ::CMatchSyntax;
50427
 
  friend class ::ExtGnu;
 
60620
  friend class ::WinAsm;
 
60621
  friend class ::WinDeclSpecs;
 
60622
  friend class ::WinMemberExplSpec;
 
60623
  friend class ::WinTypeKeywords;
 
60624
  friend class ::WinFriend;
50428
60625
  friend class ::ExtAC;
50429
60626
  friend class ::ExtACBuilderCoupling;
50430
60627
  friend class ::ExtACSyntaxCoupling;
50431
60628
  friend class ::ExtACTree;
50432
60629
  friend class ::ExtACKeywords;
50433
 
  friend class ::WinAsm;
50434
 
  friend class ::WinDeclSpecs;
50435
 
  friend class ::WinMemberExplSpec;
50436
 
  friend class ::WinTypeKeywords;
 
60630
  friend class ::ExtGnu;
50437
60631
  friend class ::PragmaOnceUnitState;
50438
60632
  friend class ::PragmaOnce;
50439
 
  friend class ::CCExprResolve;
50440
 
  friend class ::CExprResolve;
 
60633
  friend class ::CMatchSyntax;
50441
60634
 
50442
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60635
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50443
60636
 
50444
60637
  CTree *sons[3]; // declspecs, declarator, init
50445
60638
 
50446
60639
public:
50447
60640
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
50448
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
60641
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
50449
60642
  }
 
60643
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50450
60644
  static const char *NodeId ();
 
60645
  /** Get the name of the node. Can be compared with NodeId(). */
50451
60646
  const char *NodeName () const { return NodeId (); }
 
60647
  /** Get the number of sons. */
50452
60648
  int Sons () const { return CTree::Sons (sons, 3); }
 
60649
  /** Get the n-th son.
 
60650
   *  \param n The index of the son.
 
60651
   *  \return The n-th son or NULL. */
50453
60652
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50454
60653
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
50455
60654
  CTree *Declarator () const { return sons[1]; }
50456
60655
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
50457
60656
  CSemObject *SemObject () const { return (CSemObject*)this; }
50458
 
  void Initializer (CTree *i) { sons[2] = i; }
 
60657
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
60658
  /** Replace a son.
 
60659
   *  \param old_son The son to replace.
 
60660
   *  \param new_son The new son. */
50459
60661
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50460
60662
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50461
60663
  }
50462
60664
};
50463
60665
 
50464
60666
 
50465
 
#line 50466 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60667
#line 60668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50466
60668
} // closed Puma
 
60669
class CCExprResolve;
 
60670
class CExprResolve;
50467
60671
class WinIfExists;
50468
60672
class WinImportHandler;
50469
60673
class WinMacros;
50470
 
class CMatchSyntax;
50471
 
class ExtGnu;
 
60674
class WinAsm;
 
60675
class WinDeclSpecs;
 
60676
class WinMemberExplSpec;
 
60677
class WinTypeKeywords;
 
60678
class WinFriend;
50472
60679
class ExtAC;
50473
60680
class ExtACBuilderCoupling;
50474
60681
class ExtACSyntaxCoupling;
50475
60682
class ExtACTree;
50476
60683
class ExtACKeywords;
50477
 
class WinAsm;
50478
 
class WinDeclSpecs;
50479
 
class WinMemberExplSpec;
50480
 
class WinTypeKeywords;
 
60684
class ExtGnu;
50481
60685
class PragmaOnceUnitState;
50482
60686
class PragmaOnce;
50483
 
class CCExprResolve;
50484
 
class CExprResolve;
 
60687
class CMatchSyntax;
50485
60688
namespace Puma {
50486
60689
 
50487
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60690
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50488
60691
class CT_TypeParamDecl : public CT_TemplateParamDecl {
50489
 
#line 50490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60692
#line 60693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60693
  friend class ::CCExprResolve;
 
60694
  friend class ::CExprResolve;
50490
60695
  friend class ::WinIfExists;
50491
60696
  friend class ::WinImportHandler;
50492
60697
  friend class ::WinMacros;
50493
 
  friend class ::CMatchSyntax;
50494
 
  friend class ::ExtGnu;
 
60698
  friend class ::WinAsm;
 
60699
  friend class ::WinDeclSpecs;
 
60700
  friend class ::WinMemberExplSpec;
 
60701
  friend class ::WinTypeKeywords;
 
60702
  friend class ::WinFriend;
50495
60703
  friend class ::ExtAC;
50496
60704
  friend class ::ExtACBuilderCoupling;
50497
60705
  friend class ::ExtACSyntaxCoupling;
50498
60706
  friend class ::ExtACTree;
50499
60707
  friend class ::ExtACKeywords;
50500
 
  friend class ::WinAsm;
50501
 
  friend class ::WinDeclSpecs;
50502
 
  friend class ::WinMemberExplSpec;
50503
 
  friend class ::WinTypeKeywords;
 
60708
  friend class ::ExtGnu;
50504
60709
  friend class ::PragmaOnceUnitState;
50505
60710
  friend class ::PragmaOnce;
50506
 
  friend class ::CCExprResolve;
50507
 
  friend class ::CExprResolve;
 
60711
  friend class ::CMatchSyntax;
50508
60712
 
50509
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60713
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50510
60714
 
50511
60715
  CTree *sons[4]; // params, key, id, init
50512
60716
 
50513
60717
public:
50514
60718
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
50515
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
60719
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
60720
    AddSon (sons[2], id); AddSon (sons[3], i);
50516
60721
  }
 
60722
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50517
60723
  static const char *NodeId ();
 
60724
  /** Get the name of the node. Can be compared with NodeId(). */
50518
60725
  const char *NodeName () const { return NodeId (); }
 
60726
  /** Get the number of sons. */
50519
60727
  int Sons () const { return CTree::Sons (sons, 4); }
 
60728
  /** Get the n-th son.
 
60729
   *  \param n The index of the son.
 
60730
   *  \return The n-th son or NULL. */
50520
60731
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
50521
60732
  CT_TemplateParamList *Parameters () const { 
50522
60733
    return (CT_TemplateParamList*)sons[0]; 
50523
60734
  }
50524
60735
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
50525
60736
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
50526
 
  void Initializer (CTree *i) { sons[3] = i; }
 
60737
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
60738
  /** Replace a son.
 
60739
   *  \param old_son The son to replace.
 
60740
   *  \param new_son The new son. */
50527
60741
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50528
60742
    CTree::ReplaceSon (sons, 4, old_son, new_son);
50529
60743
  }
50530
60744
};
50531
60745
 
50532
60746
 
50533
 
#line 50534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60747
#line 60748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50534
60748
} // closed Puma
 
60749
class CCExprResolve;
 
60750
class CExprResolve;
50535
60751
class WinIfExists;
50536
60752
class WinImportHandler;
50537
60753
class WinMacros;
50538
 
class CMatchSyntax;
50539
 
class ExtGnu;
 
60754
class WinAsm;
 
60755
class WinDeclSpecs;
 
60756
class WinMemberExplSpec;
 
60757
class WinTypeKeywords;
 
60758
class WinFriend;
50540
60759
class ExtAC;
50541
60760
class ExtACBuilderCoupling;
50542
60761
class ExtACSyntaxCoupling;
50543
60762
class ExtACTree;
50544
60763
class ExtACKeywords;
50545
 
class WinAsm;
50546
 
class WinDeclSpecs;
50547
 
class WinMemberExplSpec;
50548
 
class WinTypeKeywords;
 
60764
class ExtGnu;
50549
60765
class PragmaOnceUnitState;
50550
60766
class PragmaOnce;
50551
 
class CCExprResolve;
50552
 
class CExprResolve;
 
60767
class CMatchSyntax;
50553
60768
namespace Puma {
50554
60769
 
50555
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60770
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50556
60771
class CT_EnumDef : public CT_Decl, public CSemObject {
50557
 
#line 50558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60772
#line 60773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60773
  friend class ::CCExprResolve;
 
60774
  friend class ::CExprResolve;
50558
60775
  friend class ::WinIfExists;
50559
60776
  friend class ::WinImportHandler;
50560
60777
  friend class ::WinMacros;
50561
 
  friend class ::CMatchSyntax;
50562
 
  friend class ::ExtGnu;
 
60778
  friend class ::WinAsm;
 
60779
  friend class ::WinDeclSpecs;
 
60780
  friend class ::WinMemberExplSpec;
 
60781
  friend class ::WinTypeKeywords;
 
60782
  friend class ::WinFriend;
50563
60783
  friend class ::ExtAC;
50564
60784
  friend class ::ExtACBuilderCoupling;
50565
60785
  friend class ::ExtACSyntaxCoupling;
50566
60786
  friend class ::ExtACTree;
50567
60787
  friend class ::ExtACKeywords;
50568
 
  friend class ::WinAsm;
50569
 
  friend class ::WinDeclSpecs;
50570
 
  friend class ::WinMemberExplSpec;
50571
 
  friend class ::WinTypeKeywords;
 
60788
  friend class ::ExtGnu;
50572
60789
  friend class ::PragmaOnceUnitState;
50573
60790
  friend class ::PragmaOnce;
50574
 
  friend class ::CCExprResolve;
50575
 
  friend class ::CExprResolve;
 
60791
  friend class ::CMatchSyntax;
50576
60792
 
50577
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60793
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50578
60794
 
50579
60795
  CTree *sons[3]; // key, name, enumerators
50580
60796
 
50581
60797
public:
50582
60798
  CT_EnumDef (CTree *k, CTree *n) {
50583
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
60799
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
50584
60800
  }
 
60801
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50585
60802
  static const char *NodeId ();
 
60803
  /** Get the name of the node. Can be compared with NodeId(). */
50586
60804
  const char *NodeName () const { return NodeId (); }
 
60805
  /** Get the number of sons. */
50587
60806
  int Sons () const { return CTree::Sons (sons, 3); }
 
60807
  /** Get the n-th son.
 
60808
   *  \param n The index of the son.
 
60809
   *  \return The n-th son or NULL. */
50588
60810
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50589
60811
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
50590
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
60812
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
50591
60813
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
60814
  /** Replace a son.
 
60815
   *  \param old_son The son to replace.
 
60816
   *  \param new_son The new son. */
50592
60817
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50593
60818
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50594
60819
  }
50596
60821
};
50597
60822
 
50598
60823
 
50599
 
#line 50600 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60824
#line 60825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50600
60825
} // closed Puma
 
60826
class CCExprResolve;
 
60827
class CExprResolve;
50601
60828
class WinIfExists;
50602
60829
class WinImportHandler;
50603
60830
class WinMacros;
50604
 
class CMatchSyntax;
50605
 
class ExtGnu;
 
60831
class WinAsm;
 
60832
class WinDeclSpecs;
 
60833
class WinMemberExplSpec;
 
60834
class WinTypeKeywords;
 
60835
class WinFriend;
50606
60836
class ExtAC;
50607
60837
class ExtACBuilderCoupling;
50608
60838
class ExtACSyntaxCoupling;
50609
60839
class ExtACTree;
50610
60840
class ExtACKeywords;
50611
 
class WinAsm;
50612
 
class WinDeclSpecs;
50613
 
class WinMemberExplSpec;
50614
 
class WinTypeKeywords;
 
60841
class ExtGnu;
50615
60842
class PragmaOnceUnitState;
50616
60843
class PragmaOnce;
50617
 
class CCExprResolve;
50618
 
class CExprResolve;
 
60844
class CMatchSyntax;
50619
60845
namespace Puma {
50620
60846
 
50621
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60847
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50622
60848
class CT_Enumerator : public CT_Decl, public CSemObject {
50623
 
#line 50624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60849
#line 60850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60850
  friend class ::CCExprResolve;
 
60851
  friend class ::CExprResolve;
50624
60852
  friend class ::WinIfExists;
50625
60853
  friend class ::WinImportHandler;
50626
60854
  friend class ::WinMacros;
50627
 
  friend class ::CMatchSyntax;
50628
 
  friend class ::ExtGnu;
 
60855
  friend class ::WinAsm;
 
60856
  friend class ::WinDeclSpecs;
 
60857
  friend class ::WinMemberExplSpec;
 
60858
  friend class ::WinTypeKeywords;
 
60859
  friend class ::WinFriend;
50629
60860
  friend class ::ExtAC;
50630
60861
  friend class ::ExtACBuilderCoupling;
50631
60862
  friend class ::ExtACSyntaxCoupling;
50632
60863
  friend class ::ExtACTree;
50633
60864
  friend class ::ExtACKeywords;
50634
 
  friend class ::WinAsm;
50635
 
  friend class ::WinDeclSpecs;
50636
 
  friend class ::WinMemberExplSpec;
50637
 
  friend class ::WinTypeKeywords;
 
60865
  friend class ::ExtGnu;
50638
60866
  friend class ::PragmaOnceUnitState;
50639
60867
  friend class ::PragmaOnce;
50640
 
  friend class ::CCExprResolve;
50641
 
  friend class ::CExprResolve;
 
60868
  friend class ::CMatchSyntax;
50642
60869
 
50643
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60870
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50644
60871
 
50645
60872
  CTree *sons[2]; // name, init
50646
60873
 
50647
60874
public:
50648
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
60875
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
60876
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50649
60877
  static const char *NodeId ();
 
60878
  /** Get the name of the node. Can be compared with NodeId(). */
50650
60879
  const char *NodeName () const { return NodeId (); }
 
60880
  /** Get the number of sons. */
50651
60881
  int Sons () const { return CTree::Sons (sons, 2); }
 
60882
  /** Get the n-th son.
 
60883
   *  \param n The index of the son.
 
60884
   *  \return The n-th son or NULL. */
50652
60885
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
50653
60886
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
50654
 
  void Initializer (CTree *i) { sons[1] = i; }
 
60887
  void Initializer (CTree *i) { AddSon (sons[1], i); }
50655
60888
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
60889
  /** Replace a son.
 
60890
   *  \param old_son The son to replace.
 
60891
   *  \param new_son The new son. */
50656
60892
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50657
60893
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
50658
60894
  }
50660
60896
};
50661
60897
 
50662
60898
 
50663
 
#line 50664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60899
#line 60900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50664
60900
} // closed Puma
 
60901
class CCExprResolve;
 
60902
class CExprResolve;
50665
60903
class WinIfExists;
50666
60904
class WinImportHandler;
50667
60905
class WinMacros;
50668
 
class CMatchSyntax;
50669
 
class ExtGnu;
 
60906
class WinAsm;
 
60907
class WinDeclSpecs;
 
60908
class WinMemberExplSpec;
 
60909
class WinTypeKeywords;
 
60910
class WinFriend;
50670
60911
class ExtAC;
50671
60912
class ExtACBuilderCoupling;
50672
60913
class ExtACSyntaxCoupling;
50673
60914
class ExtACTree;
50674
60915
class ExtACKeywords;
50675
 
class WinAsm;
50676
 
class WinDeclSpecs;
50677
 
class WinMemberExplSpec;
50678
 
class WinTypeKeywords;
 
60916
class ExtGnu;
50679
60917
class PragmaOnceUnitState;
50680
60918
class PragmaOnce;
50681
 
class CCExprResolve;
50682
 
class CExprResolve;
 
60919
class CMatchSyntax;
50683
60920
namespace Puma {
50684
60921
 
50685
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60922
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50686
60923
class CT_FctDef : public CT_Decl, public CSemObject {
50687
 
#line 50688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60924
#line 60925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
60925
  friend class ::CCExprResolve;
 
60926
  friend class ::CExprResolve;
50688
60927
  friend class ::WinIfExists;
50689
60928
  friend class ::WinImportHandler;
50690
60929
  friend class ::WinMacros;
50691
 
  friend class ::CMatchSyntax;
50692
 
  friend class ::ExtGnu;
 
60930
  friend class ::WinAsm;
 
60931
  friend class ::WinDeclSpecs;
 
60932
  friend class ::WinMemberExplSpec;
 
60933
  friend class ::WinTypeKeywords;
 
60934
  friend class ::WinFriend;
50693
60935
  friend class ::ExtAC;
50694
60936
  friend class ::ExtACBuilderCoupling;
50695
60937
  friend class ::ExtACSyntaxCoupling;
50696
60938
  friend class ::ExtACTree;
50697
60939
  friend class ::ExtACKeywords;
50698
 
  friend class ::WinAsm;
50699
 
  friend class ::WinDeclSpecs;
50700
 
  friend class ::WinMemberExplSpec;
50701
 
  friend class ::WinTypeKeywords;
 
60940
  friend class ::ExtGnu;
50702
60941
  friend class ::PragmaOnceUnitState;
50703
60942
  friend class ::PragmaOnce;
50704
 
  friend class ::CCExprResolve;
50705
 
  friend class ::CExprResolve;
 
60943
  friend class ::CMatchSyntax;
50706
60944
 
50707
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60945
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50708
60946
 
50709
60947
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
50710
60948
 
50711
60949
public:
50712
60950
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
50713
60951
             CTree *b, CTree *hs) {
50714
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
50715
 
    sons[5] = b; sons[6] = hs; 
 
60952
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
60953
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
60954
    AddSon (sons[6], hs); 
50716
60955
  }
 
60956
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50717
60957
  static const char *NodeId ();
 
60958
  /** Get the name of the node. Can be compared with NodeId(). */
50718
60959
  const char *NodeName () const { return NodeId (); }
 
60960
  /** Get the number of sons. */
50719
60961
  int Sons () const { return CTree::Sons (sons, 7); }
 
60962
  /** Get the n-th son.
 
60963
   *  \param n The index of the son.
 
60964
   *  \return The n-th son or NULL. */
50720
60965
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
50721
60966
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
50722
60967
  CTree *Declarator () const { return sons[1]; }
50726
60971
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
50727
60972
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
50728
60973
  CSemObject *SemObject () const { return (CSemObject*)this; }
50729
 
  void CtorInit (CTree *i) { sons[3] = i; }
50730
 
  void Body (CTree *b) { sons[5] = b; }
 
60974
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
60975
  void Body (CTree *b) { AddSon (sons[5], b); }
50731
60976
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
50732
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
60977
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
60978
    AddSon (sons[5], b); AddSon (sons[6], h);
50733
60979
  }
 
60980
  /** Replace a son.
 
60981
   *  \param old_son The son to replace.
 
60982
   *  \param new_son The new son. */
50734
60983
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50735
60984
    CTree::ReplaceSon (sons, 7, old_son, new_son);
50736
60985
  }
50737
60986
};
50738
60987
 
50739
60988
 
50740
 
#line 50741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
60989
#line 60990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50741
60990
} // closed Puma
 
60991
class CCExprResolve;
 
60992
class CExprResolve;
50742
60993
class WinIfExists;
50743
60994
class WinImportHandler;
50744
60995
class WinMacros;
50745
 
class CMatchSyntax;
50746
 
class ExtGnu;
 
60996
class WinAsm;
 
60997
class WinDeclSpecs;
 
60998
class WinMemberExplSpec;
 
60999
class WinTypeKeywords;
 
61000
class WinFriend;
50747
61001
class ExtAC;
50748
61002
class ExtACBuilderCoupling;
50749
61003
class ExtACSyntaxCoupling;
50750
61004
class ExtACTree;
50751
61005
class ExtACKeywords;
50752
 
class WinAsm;
50753
 
class WinDeclSpecs;
50754
 
class WinMemberExplSpec;
50755
 
class WinTypeKeywords;
 
61006
class ExtGnu;
50756
61007
class PragmaOnceUnitState;
50757
61008
class PragmaOnce;
50758
 
class CCExprResolve;
50759
 
class CExprResolve;
 
61009
class CMatchSyntax;
50760
61010
namespace Puma {
50761
61011
 
50762
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61012
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50763
61013
class CT_AsmDef : public CT_Decl {
50764
 
#line 50765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61014
#line 61015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61015
  friend class ::CCExprResolve;
 
61016
  friend class ::CExprResolve;
50765
61017
  friend class ::WinIfExists;
50766
61018
  friend class ::WinImportHandler;
50767
61019
  friend class ::WinMacros;
50768
 
  friend class ::CMatchSyntax;
50769
 
  friend class ::ExtGnu;
 
61020
  friend class ::WinAsm;
 
61021
  friend class ::WinDeclSpecs;
 
61022
  friend class ::WinMemberExplSpec;
 
61023
  friend class ::WinTypeKeywords;
 
61024
  friend class ::WinFriend;
50770
61025
  friend class ::ExtAC;
50771
61026
  friend class ::ExtACBuilderCoupling;
50772
61027
  friend class ::ExtACSyntaxCoupling;
50773
61028
  friend class ::ExtACTree;
50774
61029
  friend class ::ExtACKeywords;
50775
 
  friend class ::WinAsm;
50776
 
  friend class ::WinDeclSpecs;
50777
 
  friend class ::WinMemberExplSpec;
50778
 
  friend class ::WinTypeKeywords;
 
61030
  friend class ::ExtGnu;
50779
61031
  friend class ::PragmaOnceUnitState;
50780
61032
  friend class ::PragmaOnce;
50781
 
  friend class ::CCExprResolve;
50782
 
  friend class ::CExprResolve;
 
61033
  friend class ::CMatchSyntax;
50783
61034
 
50784
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61035
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50785
61036
 
50786
61037
  CTree *sons[5]; // asm, open, str, close, semi_colon
50787
61038
 
50788
61039
public:
50789
61040
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
50790
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
61041
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
61042
    AddSon (sons[3], c); AddSon (sons[4], sc); 
50791
61043
  }
 
61044
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50792
61045
  static const char *NodeId ();
 
61046
  /** Get the name of the node. Can be compared with NodeId(). */
50793
61047
  const char *NodeName () const { return NodeId (); }
 
61048
  /** Get the number of sons. */
50794
61049
  int Sons () const { return 5; }
 
61050
  /** Get the n-th son.
 
61051
   *  \param n The index of the son.
 
61052
   *  \return The n-th son or NULL. */
50795
61053
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
50796
61054
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
61055
  /** Replace a son.
 
61056
   *  \param old_son The son to replace.
 
61057
   *  \param new_son The new son. */
50797
61058
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50798
61059
    CTree::ReplaceSon (sons, 5, old_son, new_son);
50799
61060
  }
50800
61061
};
50801
61062
 
50802
61063
 
50803
 
#line 50804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61064
#line 61065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50804
61065
} // closed Puma
 
61066
class CCExprResolve;
 
61067
class CExprResolve;
50805
61068
class WinIfExists;
50806
61069
class WinImportHandler;
50807
61070
class WinMacros;
50808
 
class CMatchSyntax;
50809
 
class ExtGnu;
 
61071
class WinAsm;
 
61072
class WinDeclSpecs;
 
61073
class WinMemberExplSpec;
 
61074
class WinTypeKeywords;
 
61075
class WinFriend;
50810
61076
class ExtAC;
50811
61077
class ExtACBuilderCoupling;
50812
61078
class ExtACSyntaxCoupling;
50813
61079
class ExtACTree;
50814
61080
class ExtACKeywords;
50815
 
class WinAsm;
50816
 
class WinDeclSpecs;
50817
 
class WinMemberExplSpec;
50818
 
class WinTypeKeywords;
 
61081
class ExtGnu;
50819
61082
class PragmaOnceUnitState;
50820
61083
class PragmaOnce;
50821
 
class CCExprResolve;
50822
 
class CExprResolve;
 
61084
class CMatchSyntax;
50823
61085
namespace Puma {
50824
61086
 
50825
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61087
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50826
61088
class CT_Handler : public CT_Decl, public CSemScope {
50827
 
#line 50828 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61089
#line 61090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61090
  friend class ::CCExprResolve;
 
61091
  friend class ::CExprResolve;
50828
61092
  friend class ::WinIfExists;
50829
61093
  friend class ::WinImportHandler;
50830
61094
  friend class ::WinMacros;
50831
 
  friend class ::CMatchSyntax;
50832
 
  friend class ::ExtGnu;
 
61095
  friend class ::WinAsm;
 
61096
  friend class ::WinDeclSpecs;
 
61097
  friend class ::WinMemberExplSpec;
 
61098
  friend class ::WinTypeKeywords;
 
61099
  friend class ::WinFriend;
50833
61100
  friend class ::ExtAC;
50834
61101
  friend class ::ExtACBuilderCoupling;
50835
61102
  friend class ::ExtACSyntaxCoupling;
50836
61103
  friend class ::ExtACTree;
50837
61104
  friend class ::ExtACKeywords;
50838
 
  friend class ::WinAsm;
50839
 
  friend class ::WinDeclSpecs;
50840
 
  friend class ::WinMemberExplSpec;
50841
 
  friend class ::WinTypeKeywords;
 
61105
  friend class ::ExtGnu;
50842
61106
  friend class ::PragmaOnceUnitState;
50843
61107
  friend class ::PragmaOnce;
50844
 
  friend class ::CCExprResolve;
50845
 
  friend class ::CExprResolve;
 
61108
  friend class ::CMatchSyntax;
50846
61109
 
50847
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61110
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50848
61111
 
50849
61112
  CTree *sons[3]; // catch, exception_decl, stmt
50850
61113
 
50851
61114
public:
50852
61115
  CT_Handler (CTree *c, CTree *e, CTree *s) {
50853
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
61116
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
50854
61117
  }
 
61118
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50855
61119
  static const char *NodeId ();
 
61120
  /** Get the name of the node. Can be compared with NodeId(). */
50856
61121
  const char *NodeName () const { return NodeId (); }
 
61122
  /** Get the number of sons. */
50857
61123
  int Sons () const { return 3; }
 
61124
  /** Get the n-th son.
 
61125
   *  \param n The index of the son.
 
61126
   *  \return The n-th son or NULL. */
50858
61127
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50859
61128
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
50860
61129
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
61130
  /** Replace a son.
 
61131
   *  \param old_son The son to replace.
 
61132
   *  \param new_son The new son. */
50861
61133
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50862
61134
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50863
61135
  }
 
61136
  CSemScope *SemScope () const { return (CSemScope*)this; }
50864
61137
};
50865
61138
 
50866
61139
 
50867
 
#line 50868 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61140
#line 61141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50868
61141
} // closed Puma
 
61142
class CCExprResolve;
 
61143
class CExprResolve;
50869
61144
class WinIfExists;
50870
61145
class WinImportHandler;
50871
61146
class WinMacros;
50872
 
class CMatchSyntax;
50873
 
class ExtGnu;
 
61147
class WinAsm;
 
61148
class WinDeclSpecs;
 
61149
class WinMemberExplSpec;
 
61150
class WinTypeKeywords;
 
61151
class WinFriend;
50874
61152
class ExtAC;
50875
61153
class ExtACBuilderCoupling;
50876
61154
class ExtACSyntaxCoupling;
50877
61155
class ExtACTree;
50878
61156
class ExtACKeywords;
50879
 
class WinAsm;
50880
 
class WinDeclSpecs;
50881
 
class WinMemberExplSpec;
50882
 
class WinTypeKeywords;
 
61157
class ExtGnu;
50883
61158
class PragmaOnceUnitState;
50884
61159
class PragmaOnce;
50885
 
class CCExprResolve;
50886
 
class CExprResolve;
 
61160
class CMatchSyntax;
50887
61161
namespace Puma {
50888
61162
 
50889
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61163
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50890
61164
class CT_LinkageSpec : public CT_Decl {
50891
 
#line 50892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61165
#line 61166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61166
  friend class ::CCExprResolve;
 
61167
  friend class ::CExprResolve;
50892
61168
  friend class ::WinIfExists;
50893
61169
  friend class ::WinImportHandler;
50894
61170
  friend class ::WinMacros;
50895
 
  friend class ::CMatchSyntax;
50896
 
  friend class ::ExtGnu;
 
61171
  friend class ::WinAsm;
 
61172
  friend class ::WinDeclSpecs;
 
61173
  friend class ::WinMemberExplSpec;
 
61174
  friend class ::WinTypeKeywords;
 
61175
  friend class ::WinFriend;
50897
61176
  friend class ::ExtAC;
50898
61177
  friend class ::ExtACBuilderCoupling;
50899
61178
  friend class ::ExtACSyntaxCoupling;
50900
61179
  friend class ::ExtACTree;
50901
61180
  friend class ::ExtACKeywords;
50902
 
  friend class ::WinAsm;
50903
 
  friend class ::WinDeclSpecs;
50904
 
  friend class ::WinMemberExplSpec;
50905
 
  friend class ::WinTypeKeywords;
 
61181
  friend class ::ExtGnu;
50906
61182
  friend class ::PragmaOnceUnitState;
50907
61183
  friend class ::PragmaOnce;
50908
 
  friend class ::CCExprResolve;
50909
 
  friend class ::CExprResolve;
 
61184
  friend class ::CMatchSyntax;
50910
61185
 
50911
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61186
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50912
61187
 
50913
61188
  CTree *sons[5]; // extern, str, open, decls, close
50914
61189
 
50915
61190
public:
50916
61191
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
50917
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
61192
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
61193
    AddSon (sons[3], d); AddSon (sons[4], c);
50918
61194
    if (isList ())
50919
61195
      ((CT_DeclList*)Decls ())->Linkage (this);
50920
61196
    else
50921
61197
      ((CT_Decl*)Decls ())->Linkage (this);
50922
61198
  }
 
61199
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50923
61200
  static const char *NodeId ();
 
61201
  /** Get the name of the node. Can be compared with NodeId(). */
50924
61202
  const char *NodeName () const { return NodeId (); }
 
61203
  /** Get the number of sons. */
50925
61204
  int Sons () const { return CTree::Sons (sons, 5); }
 
61205
  /** Get the n-th son.
 
61206
   *  \param n The index of the son.
 
61207
   *  \return The n-th son or NULL. */
50926
61208
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
50927
61209
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
50928
61210
  CTree *Decls () const { return sons[3]; }
50929
61211
  bool isList () const {
50930
61212
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
50931
61213
  }
 
61214
  /** Replace a son.
 
61215
   *  \param old_son The son to replace.
 
61216
   *  \param new_son The new son. */
50932
61217
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50933
61218
    CTree::ReplaceSon (sons, 5, old_son, new_son);
50934
61219
  }
50935
61220
};
50936
61221
 
50937
61222
 
50938
 
#line 50939 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61223
#line 61224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
50939
61224
} // closed Puma
 
61225
class CCExprResolve;
 
61226
class CExprResolve;
50940
61227
class WinIfExists;
50941
61228
class WinImportHandler;
50942
61229
class WinMacros;
50943
 
class CMatchSyntax;
50944
 
class ExtGnu;
 
61230
class WinAsm;
 
61231
class WinDeclSpecs;
 
61232
class WinMemberExplSpec;
 
61233
class WinTypeKeywords;
 
61234
class WinFriend;
50945
61235
class ExtAC;
50946
61236
class ExtACBuilderCoupling;
50947
61237
class ExtACSyntaxCoupling;
50948
61238
class ExtACTree;
50949
61239
class ExtACKeywords;
50950
 
class WinAsm;
50951
 
class WinDeclSpecs;
50952
 
class WinMemberExplSpec;
50953
 
class WinTypeKeywords;
 
61240
class ExtGnu;
50954
61241
class PragmaOnceUnitState;
50955
61242
class PragmaOnce;
50956
 
class CCExprResolve;
50957
 
class CExprResolve;
 
61243
class CMatchSyntax;
50958
61244
namespace Puma {
50959
61245
 
50960
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61246
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50961
61247
class CT_ArgDecl : public CT_Decl, public CSemObject {
50962
 
#line 50963 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61248
#line 61249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61249
  friend class ::CCExprResolve;
 
61250
  friend class ::CExprResolve;
50963
61251
  friend class ::WinIfExists;
50964
61252
  friend class ::WinImportHandler;
50965
61253
  friend class ::WinMacros;
50966
 
  friend class ::CMatchSyntax;
50967
 
  friend class ::ExtGnu;
 
61254
  friend class ::WinAsm;
 
61255
  friend class ::WinDeclSpecs;
 
61256
  friend class ::WinMemberExplSpec;
 
61257
  friend class ::WinTypeKeywords;
 
61258
  friend class ::WinFriend;
50968
61259
  friend class ::ExtAC;
50969
61260
  friend class ::ExtACBuilderCoupling;
50970
61261
  friend class ::ExtACSyntaxCoupling;
50971
61262
  friend class ::ExtACTree;
50972
61263
  friend class ::ExtACKeywords;
50973
 
  friend class ::WinAsm;
50974
 
  friend class ::WinDeclSpecs;
50975
 
  friend class ::WinMemberExplSpec;
50976
 
  friend class ::WinTypeKeywords;
 
61264
  friend class ::ExtGnu;
50977
61265
  friend class ::PragmaOnceUnitState;
50978
61266
  friend class ::PragmaOnce;
50979
 
  friend class ::CCExprResolve;
50980
 
  friend class ::CExprResolve;
 
61267
  friend class ::CMatchSyntax;
50981
61268
 
50982
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61269
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50983
61270
 
50984
61271
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
50985
61272
 
50986
61273
public:
50987
61274
  CT_ArgDecl (CTree *dsl, CTree *d) {
50988
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
61275
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
61276
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
50989
61277
  }
50990
61278
  CT_ArgDecl (CTree *ellipsis) {
50991
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
61279
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
61280
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
50992
61281
  }
 
61282
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50993
61283
  static const char *NodeId ();
 
61284
  /** Get the name of the node. Can be compared with NodeId(). */
50994
61285
  const char *NodeName () const { return NodeId (); }
 
61286
  /** Get the number of sons. */
50995
61287
  int Sons () const { return CTree::Sons (sons, 4); }
 
61288
  /** Get the n-th son.
 
61289
   *  \param n The index of the son.
 
61290
   *  \return The n-th son or NULL. */
50996
61291
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
50997
61292
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
50998
61293
  CTree *Declarator () const { return sons[1]; }
50999
61294
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
51000
61295
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
51001
61296
  CSemObject *SemObject () const { return (CSemObject*)this; }
51002
 
  void Initializer (CTree *i) { sons[2] = i; }
 
61297
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
61298
  /** Replace a son.
 
61299
   *  \param old_son The son to replace.
 
61300
   *  \param new_son The new son. */
51003
61301
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51004
61302
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51005
61303
  }
51006
61304
};
51007
61305
 
51008
61306
 
51009
 
#line 51010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61307
#line 61308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51010
61308
} // closed Puma
 
61309
class CCExprResolve;
 
61310
class CExprResolve;
51011
61311
class WinIfExists;
51012
61312
class WinImportHandler;
51013
61313
class WinMacros;
51014
 
class CMatchSyntax;
51015
 
class ExtGnu;
 
61314
class WinAsm;
 
61315
class WinDeclSpecs;
 
61316
class WinMemberExplSpec;
 
61317
class WinTypeKeywords;
 
61318
class WinFriend;
51016
61319
class ExtAC;
51017
61320
class ExtACBuilderCoupling;
51018
61321
class ExtACSyntaxCoupling;
51019
61322
class ExtACTree;
51020
61323
class ExtACKeywords;
51021
 
class WinAsm;
51022
 
class WinDeclSpecs;
51023
 
class WinMemberExplSpec;
51024
 
class WinTypeKeywords;
 
61324
class ExtGnu;
51025
61325
class PragmaOnceUnitState;
51026
61326
class PragmaOnce;
51027
 
class CCExprResolve;
51028
 
class CExprResolve;
 
61327
class CMatchSyntax;
51029
61328
namespace Puma {
51030
61329
 
51031
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61330
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51032
61331
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
51033
 
#line 51034 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61332
#line 61333 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61333
  friend class ::CCExprResolve;
 
61334
  friend class ::CExprResolve;
51034
61335
  friend class ::WinIfExists;
51035
61336
  friend class ::WinImportHandler;
51036
61337
  friend class ::WinMacros;
51037
 
  friend class ::CMatchSyntax;
51038
 
  friend class ::ExtGnu;
 
61338
  friend class ::WinAsm;
 
61339
  friend class ::WinDeclSpecs;
 
61340
  friend class ::WinMemberExplSpec;
 
61341
  friend class ::WinTypeKeywords;
 
61342
  friend class ::WinFriend;
51039
61343
  friend class ::ExtAC;
51040
61344
  friend class ::ExtACBuilderCoupling;
51041
61345
  friend class ::ExtACSyntaxCoupling;
51042
61346
  friend class ::ExtACTree;
51043
61347
  friend class ::ExtACKeywords;
51044
 
  friend class ::WinAsm;
51045
 
  friend class ::WinDeclSpecs;
51046
 
  friend class ::WinMemberExplSpec;
51047
 
  friend class ::WinTypeKeywords;
 
61348
  friend class ::ExtGnu;
51048
61349
  friend class ::PragmaOnceUnitState;
51049
61350
  friend class ::PragmaOnce;
51050
 
  friend class ::CCExprResolve;
51051
 
  friend class ::CExprResolve;
 
61351
  friend class ::CMatchSyntax;
51052
61352
 
51053
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61353
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51054
61354
 
51055
61355
public:
51056
61356
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
51057
61357
   CT_DeclList (size, 2) { AddProperties (props); }
 
61358
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51058
61359
  static const char *NodeId ();
 
61360
  /** Get the name of the node. Can be compared with NodeId(). */
51059
61361
  const char *NodeName () const { return NodeId (); }
 
61362
  CSemScope *SemScope () const { return (CSemScope*)this; }
51060
61363
};
51061
61364
 
51062
61365
 
51063
 
#line 51064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61366
#line 61367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51064
61367
} // closed Puma
 
61368
class CCExprResolve;
 
61369
class CExprResolve;
51065
61370
class WinIfExists;
51066
61371
class WinImportHandler;
51067
61372
class WinMacros;
51068
 
class CMatchSyntax;
51069
 
class ExtGnu;
 
61373
class WinAsm;
 
61374
class WinDeclSpecs;
 
61375
class WinMemberExplSpec;
 
61376
class WinTypeKeywords;
 
61377
class WinFriend;
51070
61378
class ExtAC;
51071
61379
class ExtACBuilderCoupling;
51072
61380
class ExtACSyntaxCoupling;
51073
61381
class ExtACTree;
51074
61382
class ExtACKeywords;
51075
 
class WinAsm;
51076
 
class WinDeclSpecs;
51077
 
class WinMemberExplSpec;
51078
 
class WinTypeKeywords;
 
61383
class ExtGnu;
51079
61384
class PragmaOnceUnitState;
51080
61385
class PragmaOnce;
51081
 
class CCExprResolve;
51082
 
class CExprResolve;
 
61386
class CMatchSyntax;
51083
61387
namespace Puma {
51084
61388
 
51085
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61389
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51086
61390
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
51087
 
#line 51088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61391
#line 61392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61392
  friend class ::CCExprResolve;
 
61393
  friend class ::CExprResolve;
51088
61394
  friend class ::WinIfExists;
51089
61395
  friend class ::WinImportHandler;
51090
61396
  friend class ::WinMacros;
51091
 
  friend class ::CMatchSyntax;
51092
 
  friend class ::ExtGnu;
 
61397
  friend class ::WinAsm;
 
61398
  friend class ::WinDeclSpecs;
 
61399
  friend class ::WinMemberExplSpec;
 
61400
  friend class ::WinTypeKeywords;
 
61401
  friend class ::WinFriend;
51093
61402
  friend class ::ExtAC;
51094
61403
  friend class ::ExtACBuilderCoupling;
51095
61404
  friend class ::ExtACSyntaxCoupling;
51096
61405
  friend class ::ExtACTree;
51097
61406
  friend class ::ExtACKeywords;
51098
 
  friend class ::WinAsm;
51099
 
  friend class ::WinDeclSpecs;
51100
 
  friend class ::WinMemberExplSpec;
51101
 
  friend class ::WinTypeKeywords;
 
61407
  friend class ::ExtGnu;
51102
61408
  friend class ::PragmaOnceUnitState;
51103
61409
  friend class ::PragmaOnce;
51104
 
  friend class ::CCExprResolve;
51105
 
  friend class ::CExprResolve;
 
61410
  friend class ::CMatchSyntax;
51106
61411
 
51107
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61412
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51108
61413
 
51109
61414
public:
51110
61415
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
61416
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51111
61417
  static const char *NodeId ();
 
61418
  /** Get the name of the node. Can be compared with NodeId(). */
51112
61419
  const char *NodeName () const { return NodeId (); }
 
61420
  CSemScope *SemScope () const { return (CSemScope*)this; }
51113
61421
};
51114
61422
 
51115
61423
 
51116
 
#line 51117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61424
#line 61425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51117
61425
} // closed Puma
 
61426
class CCExprResolve;
 
61427
class CExprResolve;
51118
61428
class WinIfExists;
51119
61429
class WinImportHandler;
51120
61430
class WinMacros;
51121
 
class CMatchSyntax;
51122
 
class ExtGnu;
 
61431
class WinAsm;
 
61432
class WinDeclSpecs;
 
61433
class WinMemberExplSpec;
 
61434
class WinTypeKeywords;
 
61435
class WinFriend;
51123
61436
class ExtAC;
51124
61437
class ExtACBuilderCoupling;
51125
61438
class ExtACSyntaxCoupling;
51126
61439
class ExtACTree;
51127
61440
class ExtACKeywords;
51128
 
class WinAsm;
51129
 
class WinDeclSpecs;
51130
 
class WinMemberExplSpec;
51131
 
class WinTypeKeywords;
 
61441
class ExtGnu;
51132
61442
class PragmaOnceUnitState;
51133
61443
class PragmaOnce;
51134
 
class CCExprResolve;
51135
 
class CExprResolve;
 
61444
class CMatchSyntax;
51136
61445
namespace Puma {
51137
61446
 
51138
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61447
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51139
61448
class CT_ArgNameList : public CT_ArgDeclList {
51140
 
#line 51141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61449
#line 61450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61450
  friend class ::CCExprResolve;
 
61451
  friend class ::CExprResolve;
51141
61452
  friend class ::WinIfExists;
51142
61453
  friend class ::WinImportHandler;
51143
61454
  friend class ::WinMacros;
51144
 
  friend class ::CMatchSyntax;
51145
 
  friend class ::ExtGnu;
 
61455
  friend class ::WinAsm;
 
61456
  friend class ::WinDeclSpecs;
 
61457
  friend class ::WinMemberExplSpec;
 
61458
  friend class ::WinTypeKeywords;
 
61459
  friend class ::WinFriend;
51146
61460
  friend class ::ExtAC;
51147
61461
  friend class ::ExtACBuilderCoupling;
51148
61462
  friend class ::ExtACSyntaxCoupling;
51149
61463
  friend class ::ExtACTree;
51150
61464
  friend class ::ExtACKeywords;
51151
 
  friend class ::WinAsm;
51152
 
  friend class ::WinDeclSpecs;
51153
 
  friend class ::WinMemberExplSpec;
51154
 
  friend class ::WinTypeKeywords;
 
61465
  friend class ::ExtGnu;
51155
61466
  friend class ::PragmaOnceUnitState;
51156
61467
  friend class ::PragmaOnce;
51157
 
  friend class ::CCExprResolve;
51158
 
  friend class ::CExprResolve;
 
61468
  friend class ::CMatchSyntax;
51159
61469
 
51160
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61470
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51161
61471
 
51162
61472
public:
51163
61473
  CT_ArgNameList () : CT_ArgDeclList () {}
 
61474
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51164
61475
  static const char *NodeId ();
 
61476
  /** Get the name of the node. Can be compared with NodeId(). */
51165
61477
  const char *NodeName () const { return NodeId (); }
51166
61478
};
51167
61479
 
51168
61480
 
51169
 
#line 51170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61481
#line 61482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51170
61482
} // closed Puma
 
61483
class CCExprResolve;
 
61484
class CExprResolve;
51171
61485
class WinIfExists;
51172
61486
class WinImportHandler;
51173
61487
class WinMacros;
51174
 
class CMatchSyntax;
51175
 
class ExtGnu;
 
61488
class WinAsm;
 
61489
class WinDeclSpecs;
 
61490
class WinMemberExplSpec;
 
61491
class WinTypeKeywords;
 
61492
class WinFriend;
51176
61493
class ExtAC;
51177
61494
class ExtACBuilderCoupling;
51178
61495
class ExtACSyntaxCoupling;
51179
61496
class ExtACTree;
51180
61497
class ExtACKeywords;
51181
 
class WinAsm;
51182
 
class WinDeclSpecs;
51183
 
class WinMemberExplSpec;
51184
 
class WinTypeKeywords;
 
61498
class ExtGnu;
51185
61499
class PragmaOnceUnitState;
51186
61500
class PragmaOnce;
51187
 
class CCExprResolve;
51188
 
class CExprResolve;
 
61501
class CMatchSyntax;
51189
61502
namespace Puma {
51190
61503
 
51191
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61504
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51192
61505
class CT_NamespaceDef : public CT_Decl, public CSemObject {
51193
 
#line 51194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61506
#line 61507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61507
  friend class ::CCExprResolve;
 
61508
  friend class ::CExprResolve;
51194
61509
  friend class ::WinIfExists;
51195
61510
  friend class ::WinImportHandler;
51196
61511
  friend class ::WinMacros;
51197
 
  friend class ::CMatchSyntax;
51198
 
  friend class ::ExtGnu;
 
61512
  friend class ::WinAsm;
 
61513
  friend class ::WinDeclSpecs;
 
61514
  friend class ::WinMemberExplSpec;
 
61515
  friend class ::WinTypeKeywords;
 
61516
  friend class ::WinFriend;
51199
61517
  friend class ::ExtAC;
51200
61518
  friend class ::ExtACBuilderCoupling;
51201
61519
  friend class ::ExtACSyntaxCoupling;
51202
61520
  friend class ::ExtACTree;
51203
61521
  friend class ::ExtACKeywords;
51204
 
  friend class ::WinAsm;
51205
 
  friend class ::WinDeclSpecs;
51206
 
  friend class ::WinMemberExplSpec;
51207
 
  friend class ::WinTypeKeywords;
 
61522
  friend class ::ExtGnu;
51208
61523
  friend class ::PragmaOnceUnitState;
51209
61524
  friend class ::PragmaOnce;
51210
 
  friend class ::CCExprResolve;
51211
 
  friend class ::CExprResolve;
 
61525
  friend class ::CMatchSyntax;
51212
61526
 
51213
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61527
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51214
61528
 
51215
61529
  CTree *sons[3]; // ns, name, members
51216
61530
 
51217
61531
public:
51218
61532
  CT_NamespaceDef (CTree *n, CTree *nm) {
51219
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
61533
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
51220
61534
  }
51221
61535
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
51222
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
61536
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
51223
61537
  }
 
61538
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51224
61539
  static const char *NodeId ();
 
61540
  /** Get the name of the node. Can be compared with NodeId(). */
51225
61541
  const char *NodeName () const { return NodeId (); }
 
61542
  /** Get the number of sons. */
51226
61543
  int Sons () const { return CTree::Sons (sons, 3); }
 
61544
  /** Get the n-th son.
 
61545
   *  \param n The index of the son.
 
61546
   *  \return The n-th son or NULL. */
51227
61547
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51228
 
  void Members (CTree *m) { sons[2] = m; }
 
61548
  void Members (CTree *m) { AddSon (sons[2], m); }
51229
61549
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
51230
61550
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
51231
61551
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
61552
  /** Replace a son.
 
61553
   *  \param old_son The son to replace.
 
61554
   *  \param new_son The new son. */
51232
61555
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51233
61556
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51234
61557
  }
51235
61558
};
51236
61559
 
51237
61560
 
51238
 
#line 51239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61561
#line 61562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51239
61562
} // closed Puma
 
61563
class CCExprResolve;
 
61564
class CExprResolve;
51240
61565
class WinIfExists;
51241
61566
class WinImportHandler;
51242
61567
class WinMacros;
51243
 
class CMatchSyntax;
51244
 
class ExtGnu;
 
61568
class WinAsm;
 
61569
class WinDeclSpecs;
 
61570
class WinMemberExplSpec;
 
61571
class WinTypeKeywords;
 
61572
class WinFriend;
51245
61573
class ExtAC;
51246
61574
class ExtACBuilderCoupling;
51247
61575
class ExtACSyntaxCoupling;
51248
61576
class ExtACTree;
51249
61577
class ExtACKeywords;
51250
 
class WinAsm;
51251
 
class WinDeclSpecs;
51252
 
class WinMemberExplSpec;
51253
 
class WinTypeKeywords;
 
61578
class ExtGnu;
51254
61579
class PragmaOnceUnitState;
51255
61580
class PragmaOnce;
51256
 
class CCExprResolve;
51257
 
class CExprResolve;
 
61581
class CMatchSyntax;
51258
61582
namespace Puma {
51259
61583
 
51260
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61584
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51261
61585
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
51262
 
#line 51263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61586
#line 61587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61587
  friend class ::CCExprResolve;
 
61588
  friend class ::CExprResolve;
51263
61589
  friend class ::WinIfExists;
51264
61590
  friend class ::WinImportHandler;
51265
61591
  friend class ::WinMacros;
51266
 
  friend class ::CMatchSyntax;
51267
 
  friend class ::ExtGnu;
 
61592
  friend class ::WinAsm;
 
61593
  friend class ::WinDeclSpecs;
 
61594
  friend class ::WinMemberExplSpec;
 
61595
  friend class ::WinTypeKeywords;
 
61596
  friend class ::WinFriend;
51268
61597
  friend class ::ExtAC;
51269
61598
  friend class ::ExtACBuilderCoupling;
51270
61599
  friend class ::ExtACSyntaxCoupling;
51271
61600
  friend class ::ExtACTree;
51272
61601
  friend class ::ExtACKeywords;
51273
 
  friend class ::WinAsm;
51274
 
  friend class ::WinDeclSpecs;
51275
 
  friend class ::WinMemberExplSpec;
51276
 
  friend class ::WinTypeKeywords;
 
61602
  friend class ::ExtGnu;
51277
61603
  friend class ::PragmaOnceUnitState;
51278
61604
  friend class ::PragmaOnce;
51279
 
  friend class ::CCExprResolve;
51280
 
  friend class ::CExprResolve;
 
61605
  friend class ::CMatchSyntax;
51281
61606
 
51282
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61607
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51283
61608
 
51284
61609
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
51285
61610
 
51286
61611
public:
51287
61612
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
51288
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
61613
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
61614
    AddSon (sons[3], nm); AddSon (sons[4], s); 
51289
61615
  }
 
61616
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51290
61617
  static const char *NodeId ();
 
61618
  /** Get the name of the node. Can be compared with NodeId(). */
51291
61619
  const char *NodeName () const { return NodeId (); }
 
61620
  /** Get the number of sons. */
51292
61621
  int Sons () const { return 5; }
 
61622
  /** Get the n-th son.
 
61623
   *  \param n The index of the son.
 
61624
   *  \return The n-th son or NULL. */
51293
61625
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
51294
61626
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
51295
61627
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
51296
61628
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
61629
  /** Replace a son.
 
61630
   *  \param old_son The son to replace.
 
61631
   *  \param new_son The new son. */
51297
61632
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51298
61633
    CTree::ReplaceSon (sons, 5, old_son, new_son);
51299
61634
  }
51300
61635
};
51301
61636
 
51302
61637
 
51303
 
#line 51304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61638
#line 61639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51304
61639
} // closed Puma
 
61640
class CCExprResolve;
 
61641
class CExprResolve;
51305
61642
class WinIfExists;
51306
61643
class WinImportHandler;
51307
61644
class WinMacros;
51308
 
class CMatchSyntax;
51309
 
class ExtGnu;
 
61645
class WinAsm;
 
61646
class WinDeclSpecs;
 
61647
class WinMemberExplSpec;
 
61648
class WinTypeKeywords;
 
61649
class WinFriend;
51310
61650
class ExtAC;
51311
61651
class ExtACBuilderCoupling;
51312
61652
class ExtACSyntaxCoupling;
51313
61653
class ExtACTree;
51314
61654
class ExtACKeywords;
51315
 
class WinAsm;
51316
 
class WinDeclSpecs;
51317
 
class WinMemberExplSpec;
51318
 
class WinTypeKeywords;
 
61655
class ExtGnu;
51319
61656
class PragmaOnceUnitState;
51320
61657
class PragmaOnce;
51321
 
class CCExprResolve;
51322
 
class CExprResolve;
 
61658
class CMatchSyntax;
51323
61659
namespace Puma {
51324
61660
 
51325
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61661
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51326
61662
class CT_UsingDirective : public CT_Decl {
51327
 
#line 51328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61663
#line 61664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61664
  friend class ::CCExprResolve;
 
61665
  friend class ::CExprResolve;
51328
61666
  friend class ::WinIfExists;
51329
61667
  friend class ::WinImportHandler;
51330
61668
  friend class ::WinMacros;
51331
 
  friend class ::CMatchSyntax;
51332
 
  friend class ::ExtGnu;
 
61669
  friend class ::WinAsm;
 
61670
  friend class ::WinDeclSpecs;
 
61671
  friend class ::WinMemberExplSpec;
 
61672
  friend class ::WinTypeKeywords;
 
61673
  friend class ::WinFriend;
51333
61674
  friend class ::ExtAC;
51334
61675
  friend class ::ExtACBuilderCoupling;
51335
61676
  friend class ::ExtACSyntaxCoupling;
51336
61677
  friend class ::ExtACTree;
51337
61678
  friend class ::ExtACKeywords;
51338
 
  friend class ::WinAsm;
51339
 
  friend class ::WinDeclSpecs;
51340
 
  friend class ::WinMemberExplSpec;
51341
 
  friend class ::WinTypeKeywords;
 
61679
  friend class ::ExtGnu;
51342
61680
  friend class ::PragmaOnceUnitState;
51343
61681
  friend class ::PragmaOnce;
51344
 
  friend class ::CCExprResolve;
51345
 
  friend class ::CExprResolve;
 
61682
  friend class ::CMatchSyntax;
51346
61683
 
51347
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61684
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51348
61685
 
51349
61686
  CTree *sons[4]; // using, ns, name, semi_colon
51350
61687
 
51351
61688
public:
51352
61689
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
51353
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
61690
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
61691
    AddSon (sons[3], s); 
51354
61692
  }
 
61693
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51355
61694
  static const char *NodeId ();
 
61695
  /** Get the name of the node. Can be compared with NodeId(). */
51356
61696
  const char *NodeName () const { return NodeId (); }
 
61697
  /** Get the number of sons. */
51357
61698
  int Sons () const { return 4; }
 
61699
  /** Get the n-th son.
 
61700
   *  \param n The index of the son.
 
61701
   *  \return The n-th son or NULL. */
51358
61702
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51359
61703
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
61704
  /** Replace a son.
 
61705
   *  \param old_son The son to replace.
 
61706
   *  \param new_son The new son. */
51360
61707
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51361
61708
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51362
61709
  }
51369
61716
/*****************************************************************************/
51370
61717
 
51371
61718
 
51372
 
#line 51373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61719
#line 61720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51373
61720
} // closed Puma
 
61721
class CCExprResolve;
 
61722
class CExprResolve;
51374
61723
class WinIfExists;
51375
61724
class WinImportHandler;
51376
61725
class WinMacros;
51377
 
class CMatchSyntax;
51378
 
class ExtGnu;
 
61726
class WinAsm;
 
61727
class WinDeclSpecs;
 
61728
class WinMemberExplSpec;
 
61729
class WinTypeKeywords;
 
61730
class WinFriend;
51379
61731
class ExtAC;
51380
61732
class ExtACBuilderCoupling;
51381
61733
class ExtACSyntaxCoupling;
51382
61734
class ExtACTree;
51383
61735
class ExtACKeywords;
51384
 
class WinAsm;
51385
 
class WinDeclSpecs;
51386
 
class WinMemberExplSpec;
51387
 
class WinTypeKeywords;
 
61736
class ExtGnu;
51388
61737
class PragmaOnceUnitState;
51389
61738
class PragmaOnce;
51390
 
class CCExprResolve;
51391
 
class CExprResolve;
 
61739
class CMatchSyntax;
51392
61740
namespace Puma {
51393
61741
 
51394
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61742
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51395
61743
class CT_Declarator : public CTree {
51396
 
#line 51397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61744
#line 61745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61745
  friend class ::CCExprResolve;
 
61746
  friend class ::CExprResolve;
51397
61747
  friend class ::WinIfExists;
51398
61748
  friend class ::WinImportHandler;
51399
61749
  friend class ::WinMacros;
51400
 
  friend class ::CMatchSyntax;
51401
 
  friend class ::ExtGnu;
 
61750
  friend class ::WinAsm;
 
61751
  friend class ::WinDeclSpecs;
 
61752
  friend class ::WinMemberExplSpec;
 
61753
  friend class ::WinTypeKeywords;
 
61754
  friend class ::WinFriend;
51402
61755
  friend class ::ExtAC;
51403
61756
  friend class ::ExtACBuilderCoupling;
51404
61757
  friend class ::ExtACSyntaxCoupling;
51405
61758
  friend class ::ExtACTree;
51406
61759
  friend class ::ExtACKeywords;
51407
 
  friend class ::WinAsm;
51408
 
  friend class ::WinDeclSpecs;
51409
 
  friend class ::WinMemberExplSpec;
51410
 
  friend class ::WinTypeKeywords;
 
61760
  friend class ::ExtGnu;
51411
61761
  friend class ::PragmaOnceUnitState;
51412
61762
  friend class ::PragmaOnce;
51413
 
  friend class ::CCExprResolve;
51414
 
  friend class ::CExprResolve;
 
61763
  friend class ::CMatchSyntax;
51415
61764
 
51416
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61765
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51417
61766
 
51418
61767
protected:
51419
61768
  CT_Declarator () {}
51428
61777
};
51429
61778
 
51430
61779
 
51431
 
#line 51432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61780
#line 61781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51432
61781
} // closed Puma
 
61782
class CCExprResolve;
 
61783
class CExprResolve;
51433
61784
class WinIfExists;
51434
61785
class WinImportHandler;
51435
61786
class WinMacros;
51436
 
class CMatchSyntax;
51437
 
class ExtGnu;
 
61787
class WinAsm;
 
61788
class WinDeclSpecs;
 
61789
class WinMemberExplSpec;
 
61790
class WinTypeKeywords;
 
61791
class WinFriend;
51438
61792
class ExtAC;
51439
61793
class ExtACBuilderCoupling;
51440
61794
class ExtACSyntaxCoupling;
51441
61795
class ExtACTree;
51442
61796
class ExtACKeywords;
51443
 
class WinAsm;
51444
 
class WinDeclSpecs;
51445
 
class WinMemberExplSpec;
51446
 
class WinTypeKeywords;
 
61797
class ExtGnu;
51447
61798
class PragmaOnceUnitState;
51448
61799
class PragmaOnce;
51449
 
class CCExprResolve;
51450
 
class CExprResolve;
 
61800
class CMatchSyntax;
51451
61801
namespace Puma {
51452
61802
 
51453
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61803
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51454
61804
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
51455
 
#line 51456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61805
#line 61806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61806
  friend class ::CCExprResolve;
 
61807
  friend class ::CExprResolve;
51456
61808
  friend class ::WinIfExists;
51457
61809
  friend class ::WinImportHandler;
51458
61810
  friend class ::WinMacros;
51459
 
  friend class ::CMatchSyntax;
51460
 
  friend class ::ExtGnu;
 
61811
  friend class ::WinAsm;
 
61812
  friend class ::WinDeclSpecs;
 
61813
  friend class ::WinMemberExplSpec;
 
61814
  friend class ::WinTypeKeywords;
 
61815
  friend class ::WinFriend;
51461
61816
  friend class ::ExtAC;
51462
61817
  friend class ::ExtACBuilderCoupling;
51463
61818
  friend class ::ExtACSyntaxCoupling;
51464
61819
  friend class ::ExtACTree;
51465
61820
  friend class ::ExtACKeywords;
51466
 
  friend class ::WinAsm;
51467
 
  friend class ::WinDeclSpecs;
51468
 
  friend class ::WinMemberExplSpec;
51469
 
  friend class ::WinTypeKeywords;
 
61821
  friend class ::ExtGnu;
51470
61822
  friend class ::PragmaOnceUnitState;
51471
61823
  friend class ::PragmaOnce;
51472
 
  friend class ::CCExprResolve;
51473
 
  friend class ::CExprResolve;
51474
 
 
51475
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51476
 
 
51477
 
  CTree *sons[2]; // declarator, init
 
61824
  friend class ::CMatchSyntax;
 
61825
 
 
61826
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61827
 
 
61828
  CTree *sons[3]; // declarator, ext, init
51478
61829
  CTree *obj_decl;
51479
61830
 
51480
61831
public:
51481
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
51482
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
61832
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
61833
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
61834
    AddSon (obj_decl, 0); 
51483
61835
  }
 
61836
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51484
61837
  static const char *NodeId ();
 
61838
  /** Get the name of the node. Can be compared with NodeId(). */
51485
61839
  const char *NodeName () const { return NodeId (); }
51486
 
  int Sons () const { return CTree::Sons (sons, 2); }
51487
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
61840
  /** Get the number of sons. */
 
61841
  int Sons () const { return CTree::Sons (sons, 3); }
 
61842
  /** Get the n-th son.
 
61843
   *  \param n The index of the son.
 
61844
   *  \return The n-th son or NULL. */
 
61845
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51488
61846
  CTree *Declarator () const { return sons[0]; }
51489
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
61847
  CTree *Extension () const { return sons[1]; }
 
61848
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
51490
61849
  CSemObject *SemObject () const { return (CSemObject*)this; }
51491
61850
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
51492
 
  void Initializer (CTree* i) { sons[1] = i; }
51493
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
61851
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
61852
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
61853
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
61854
  /** Replace a son.
 
61855
   *  \param old_son The son to replace.
 
61856
   *  \param new_son The new son. */
51494
61857
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51495
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
61858
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51496
61859
  }
51497
61860
};
51498
61861
 
51499
61862
 
51500
 
#line 51501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61863
#line 61864 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51501
61864
} // closed Puma
 
61865
class CCExprResolve;
 
61866
class CExprResolve;
51502
61867
class WinIfExists;
51503
61868
class WinImportHandler;
51504
61869
class WinMacros;
51505
 
class CMatchSyntax;
51506
 
class ExtGnu;
 
61870
class WinAsm;
 
61871
class WinDeclSpecs;
 
61872
class WinMemberExplSpec;
 
61873
class WinTypeKeywords;
 
61874
class WinFriend;
51507
61875
class ExtAC;
51508
61876
class ExtACBuilderCoupling;
51509
61877
class ExtACSyntaxCoupling;
51510
61878
class ExtACTree;
51511
61879
class ExtACKeywords;
51512
 
class WinAsm;
51513
 
class WinDeclSpecs;
51514
 
class WinMemberExplSpec;
51515
 
class WinTypeKeywords;
 
61880
class ExtGnu;
51516
61881
class PragmaOnceUnitState;
51517
61882
class PragmaOnce;
51518
 
class CCExprResolve;
51519
 
class CExprResolve;
 
61883
class CMatchSyntax;
51520
61884
namespace Puma {
51521
61885
 
51522
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61886
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51523
61887
class CT_BracedDeclarator : public CT_Declarator {
51524
 
#line 51525 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61888
#line 61889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61889
  friend class ::CCExprResolve;
 
61890
  friend class ::CExprResolve;
51525
61891
  friend class ::WinIfExists;
51526
61892
  friend class ::WinImportHandler;
51527
61893
  friend class ::WinMacros;
51528
 
  friend class ::CMatchSyntax;
51529
 
  friend class ::ExtGnu;
 
61894
  friend class ::WinAsm;
 
61895
  friend class ::WinDeclSpecs;
 
61896
  friend class ::WinMemberExplSpec;
 
61897
  friend class ::WinTypeKeywords;
 
61898
  friend class ::WinFriend;
51530
61899
  friend class ::ExtAC;
51531
61900
  friend class ::ExtACBuilderCoupling;
51532
61901
  friend class ::ExtACSyntaxCoupling;
51533
61902
  friend class ::ExtACTree;
51534
61903
  friend class ::ExtACKeywords;
51535
 
  friend class ::WinAsm;
51536
 
  friend class ::WinDeclSpecs;
51537
 
  friend class ::WinMemberExplSpec;
51538
 
  friend class ::WinTypeKeywords;
 
61904
  friend class ::ExtGnu;
51539
61905
  friend class ::PragmaOnceUnitState;
51540
61906
  friend class ::PragmaOnce;
51541
 
  friend class ::CCExprResolve;
51542
 
  friend class ::CExprResolve;
 
61907
  friend class ::CMatchSyntax;
51543
61908
 
51544
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61909
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51545
61910
 
51546
61911
  CTree *sons[4]; // open, win_specs, declarator, close
51547
61912
 
51548
61913
public:
51549
61914
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
51550
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
61915
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
61916
    AddSon (sons[2], d); AddSon (sons[3], c); 
51551
61917
  }
51552
61918
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
51553
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
61919
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
61920
    AddSon (sons[2], d); AddSon (sons[3], c); 
51554
61921
  }
 
61922
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51555
61923
  static const char *NodeId ();
 
61924
  /** Get the name of the node. Can be compared with NodeId(). */
51556
61925
  const char *NodeName () const { return NodeId (); }
 
61926
  /** Get the number of sons. */
51557
61927
  int Sons () const { return CTree::Sons (sons, 4); }
 
61928
  /** Get the n-th son.
 
61929
   *  \param n The index of the son.
 
61930
   *  \return The n-th son or NULL. */
51558
61931
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51559
61932
  CTree *Declarator () const { return sons[2]; }
 
61933
  /** Replace a son.
 
61934
   *  \param old_son The son to replace.
 
61935
   *  \param new_son The new son. */
51560
61936
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51561
61937
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51562
61938
  }
51563
61939
};
51564
61940
 
51565
61941
 
51566
 
#line 51567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61942
#line 61943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51567
61943
} // closed Puma
 
61944
class CCExprResolve;
 
61945
class CExprResolve;
51568
61946
class WinIfExists;
51569
61947
class WinImportHandler;
51570
61948
class WinMacros;
51571
 
class CMatchSyntax;
51572
 
class ExtGnu;
 
61949
class WinAsm;
 
61950
class WinDeclSpecs;
 
61951
class WinMemberExplSpec;
 
61952
class WinTypeKeywords;
 
61953
class WinFriend;
51573
61954
class ExtAC;
51574
61955
class ExtACBuilderCoupling;
51575
61956
class ExtACSyntaxCoupling;
51576
61957
class ExtACTree;
51577
61958
class ExtACKeywords;
51578
 
class WinAsm;
51579
 
class WinDeclSpecs;
51580
 
class WinMemberExplSpec;
51581
 
class WinTypeKeywords;
 
61959
class ExtGnu;
51582
61960
class PragmaOnceUnitState;
51583
61961
class PragmaOnce;
51584
 
class CCExprResolve;
51585
 
class CExprResolve;
 
61962
class CMatchSyntax;
51586
61963
namespace Puma {
51587
61964
 
51588
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61965
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51589
61966
class CT_ArrayDelimiter : public CTree {
51590
 
#line 51591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
61967
#line 61968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
61968
  friend class ::CCExprResolve;
 
61969
  friend class ::CExprResolve;
51591
61970
  friend class ::WinIfExists;
51592
61971
  friend class ::WinImportHandler;
51593
61972
  friend class ::WinMacros;
51594
 
  friend class ::CMatchSyntax;
51595
 
  friend class ::ExtGnu;
 
61973
  friend class ::WinAsm;
 
61974
  friend class ::WinDeclSpecs;
 
61975
  friend class ::WinMemberExplSpec;
 
61976
  friend class ::WinTypeKeywords;
 
61977
  friend class ::WinFriend;
51596
61978
  friend class ::ExtAC;
51597
61979
  friend class ::ExtACBuilderCoupling;
51598
61980
  friend class ::ExtACSyntaxCoupling;
51599
61981
  friend class ::ExtACTree;
51600
61982
  friend class ::ExtACKeywords;
51601
 
  friend class ::WinAsm;
51602
 
  friend class ::WinDeclSpecs;
51603
 
  friend class ::WinMemberExplSpec;
51604
 
  friend class ::WinTypeKeywords;
 
61983
  friend class ::ExtGnu;
51605
61984
  friend class ::PragmaOnceUnitState;
51606
61985
  friend class ::PragmaOnce;
51607
 
  friend class ::CCExprResolve;
51608
 
  friend class ::CExprResolve;
 
61986
  friend class ::CMatchSyntax;
51609
61987
 
51610
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61988
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51611
61989
 
51612
61990
  CTree *sons[4]; // star, static, quals, expr
51613
61991
  bool pos0;
51614
61992
 
51615
61993
public:
51616
61994
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
51617
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
61995
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
61996
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
51618
61997
  }
 
61998
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51619
61999
  static const char *NodeId ();
 
62000
  /** Get the name of the node. Can be compared with NodeId(). */
51620
62001
  const char *NodeName () const { return NodeId (); }
 
62002
  /** Get the number of sons. */
51621
62003
  int Sons () const { return CTree::Sons (sons, 4); }
 
62004
  /** Get the n-th son.
 
62005
   *  \param n The index of the son.
 
62006
   *  \return The n-th son or NULL. */
51622
62007
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51623
62008
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
51624
62009
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
51625
62010
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
51626
62011
  CTree *Expr () const { return sons[3]; }
 
62012
  /** Replace a son.
 
62013
   *  \param old_son The son to replace.
 
62014
   *  \param new_son The new son. */
51627
62015
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51628
62016
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51629
62017
  }
51630
62018
};
51631
62019
 
51632
62020
 
51633
 
#line 51634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62021
#line 62022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51634
62022
} // closed Puma
 
62023
class CCExprResolve;
 
62024
class CExprResolve;
51635
62025
class WinIfExists;
51636
62026
class WinImportHandler;
51637
62027
class WinMacros;
51638
 
class CMatchSyntax;
51639
 
class ExtGnu;
 
62028
class WinAsm;
 
62029
class WinDeclSpecs;
 
62030
class WinMemberExplSpec;
 
62031
class WinTypeKeywords;
 
62032
class WinFriend;
51640
62033
class ExtAC;
51641
62034
class ExtACBuilderCoupling;
51642
62035
class ExtACSyntaxCoupling;
51643
62036
class ExtACTree;
51644
62037
class ExtACKeywords;
51645
 
class WinAsm;
51646
 
class WinDeclSpecs;
51647
 
class WinMemberExplSpec;
51648
 
class WinTypeKeywords;
 
62038
class ExtGnu;
51649
62039
class PragmaOnceUnitState;
51650
62040
class PragmaOnce;
51651
 
class CCExprResolve;
51652
 
class CExprResolve;
 
62041
class CMatchSyntax;
51653
62042
namespace Puma {
51654
62043
 
51655
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62044
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51656
62045
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
51657
 
#line 51658 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62046
#line 62047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62047
  friend class ::CCExprResolve;
 
62048
  friend class ::CExprResolve;
51658
62049
  friend class ::WinIfExists;
51659
62050
  friend class ::WinImportHandler;
51660
62051
  friend class ::WinMacros;
51661
 
  friend class ::CMatchSyntax;
51662
 
  friend class ::ExtGnu;
 
62052
  friend class ::WinAsm;
 
62053
  friend class ::WinDeclSpecs;
 
62054
  friend class ::WinMemberExplSpec;
 
62055
  friend class ::WinTypeKeywords;
 
62056
  friend class ::WinFriend;
51663
62057
  friend class ::ExtAC;
51664
62058
  friend class ::ExtACBuilderCoupling;
51665
62059
  friend class ::ExtACSyntaxCoupling;
51666
62060
  friend class ::ExtACTree;
51667
62061
  friend class ::ExtACKeywords;
51668
 
  friend class ::WinAsm;
51669
 
  friend class ::WinDeclSpecs;
51670
 
  friend class ::WinMemberExplSpec;
51671
 
  friend class ::WinTypeKeywords;
 
62062
  friend class ::ExtGnu;
51672
62063
  friend class ::PragmaOnceUnitState;
51673
62064
  friend class ::PragmaOnce;
51674
 
  friend class ::CCExprResolve;
51675
 
  friend class ::CExprResolve;
 
62065
  friend class ::CMatchSyntax;
51676
62066
 
51677
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62067
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51678
62068
 
51679
62069
  CTree *sons[4]; // declarator, open, delim, close
51680
62070
 
51681
62071
public:
51682
62072
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
51683
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
62073
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
62074
    AddSon (sons[2], ad); AddSon (sons[3], c); 
51684
62075
  }
 
62076
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51685
62077
  static const char *NodeId ();
 
62078
  /** Get the name of the node. Can be compared with NodeId(). */
51686
62079
  const char *NodeName () const { return NodeId (); }
 
62080
  /** Get the number of sons. */
51687
62081
  int Sons () const { return 4; }
 
62082
  /** Get the n-th son.
 
62083
   *  \param n The index of the son.
 
62084
   *  \return The n-th son or NULL. */
51688
62085
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51689
62086
  CTree *Declarator () const { return sons[0]; }
51690
62087
  CT_ArrayDelimiter *Delimiter () const 
51691
62088
   { return (CT_ArrayDelimiter*)sons[2]; }
 
62089
  /** Replace a son.
 
62090
   *  \param old_son The son to replace.
 
62091
   *  \param new_son The new son. */
51692
62092
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51693
62093
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51694
62094
  }
51698
62098
};
51699
62099
 
51700
62100
 
51701
 
#line 51702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62101
#line 62102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51702
62102
} // closed Puma
 
62103
class CCExprResolve;
 
62104
class CExprResolve;
51703
62105
class WinIfExists;
51704
62106
class WinImportHandler;
51705
62107
class WinMacros;
51706
 
class CMatchSyntax;
51707
 
class ExtGnu;
 
62108
class WinAsm;
 
62109
class WinDeclSpecs;
 
62110
class WinMemberExplSpec;
 
62111
class WinTypeKeywords;
 
62112
class WinFriend;
51708
62113
class ExtAC;
51709
62114
class ExtACBuilderCoupling;
51710
62115
class ExtACSyntaxCoupling;
51711
62116
class ExtACTree;
51712
62117
class ExtACKeywords;
51713
 
class WinAsm;
51714
 
class WinDeclSpecs;
51715
 
class WinMemberExplSpec;
51716
 
class WinTypeKeywords;
 
62118
class ExtGnu;
51717
62119
class PragmaOnceUnitState;
51718
62120
class PragmaOnce;
51719
 
class CCExprResolve;
51720
 
class CExprResolve;
 
62121
class CMatchSyntax;
51721
62122
namespace Puma {
51722
62123
 
51723
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62124
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51724
62125
class CT_FctDeclarator : public CT_Declarator {
51725
 
#line 51726 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62126
#line 62127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62127
  friend class ::CCExprResolve;
 
62128
  friend class ::CExprResolve;
51726
62129
  friend class ::WinIfExists;
51727
62130
  friend class ::WinImportHandler;
51728
62131
  friend class ::WinMacros;
51729
 
  friend class ::CMatchSyntax;
51730
 
  friend class ::ExtGnu;
 
62132
  friend class ::WinAsm;
 
62133
  friend class ::WinDeclSpecs;
 
62134
  friend class ::WinMemberExplSpec;
 
62135
  friend class ::WinTypeKeywords;
 
62136
  friend class ::WinFriend;
51731
62137
  friend class ::ExtAC;
51732
62138
  friend class ::ExtACBuilderCoupling;
51733
62139
  friend class ::ExtACSyntaxCoupling;
51734
62140
  friend class ::ExtACTree;
51735
62141
  friend class ::ExtACKeywords;
51736
 
  friend class ::WinAsm;
51737
 
  friend class ::WinDeclSpecs;
51738
 
  friend class ::WinMemberExplSpec;
51739
 
  friend class ::WinTypeKeywords;
 
62142
  friend class ::ExtGnu;
51740
62143
  friend class ::PragmaOnceUnitState;
51741
62144
  friend class ::PragmaOnce;
51742
 
  friend class ::CCExprResolve;
51743
 
  friend class ::CExprResolve;
 
62145
  friend class ::CMatchSyntax;
51744
62146
 
51745
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62147
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51746
62148
 
51747
62149
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
51748
62150
 
51749
62151
public:
51750
62152
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
51751
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
62153
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
62154
    AddSon (sons[2], cv); AddSon (sons[3], es); 
51752
62155
  }
 
62156
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51753
62157
  static const char *NodeId ();
 
62158
  /** Get the name of the node. Can be compared with NodeId(). */
51754
62159
  const char *NodeName () const { return NodeId (); }
 
62160
  /** Get the number of sons. */
51755
62161
  int Sons () const { return CTree::Sons (sons, 4); }
 
62162
  /** Get the n-th son.
 
62163
   *  \param n The index of the son.
 
62164
   *  \return The n-th son or NULL. */
51756
62165
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51757
62166
  CTree *Declarator () const { return sons[0]; }
51758
62167
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
51759
62168
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
51760
62169
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
62170
  /** Replace a son.
 
62171
   *  \param old_son The son to replace.
 
62172
   *  \param new_son The new son. */
51761
62173
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51762
62174
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51763
62175
  }
51764
62176
};
51765
62177
 
51766
62178
 
51767
 
#line 51768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62179
#line 62180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51768
62180
} // closed Puma
 
62181
class CCExprResolve;
 
62182
class CExprResolve;
51769
62183
class WinIfExists;
51770
62184
class WinImportHandler;
51771
62185
class WinMacros;
51772
 
class CMatchSyntax;
51773
 
class ExtGnu;
 
62186
class WinAsm;
 
62187
class WinDeclSpecs;
 
62188
class WinMemberExplSpec;
 
62189
class WinTypeKeywords;
 
62190
class WinFriend;
51774
62191
class ExtAC;
51775
62192
class ExtACBuilderCoupling;
51776
62193
class ExtACSyntaxCoupling;
51777
62194
class ExtACTree;
51778
62195
class ExtACKeywords;
51779
 
class WinAsm;
51780
 
class WinDeclSpecs;
51781
 
class WinMemberExplSpec;
51782
 
class WinTypeKeywords;
 
62196
class ExtGnu;
51783
62197
class PragmaOnceUnitState;
51784
62198
class PragmaOnce;
51785
 
class CCExprResolve;
51786
 
class CExprResolve;
 
62199
class CMatchSyntax;
51787
62200
namespace Puma {
51788
62201
 
51789
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62202
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51790
62203
class CT_RefDeclarator : public CT_Declarator {
51791
 
#line 51792 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62204
#line 62205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62205
  friend class ::CCExprResolve;
 
62206
  friend class ::CExprResolve;
51792
62207
  friend class ::WinIfExists;
51793
62208
  friend class ::WinImportHandler;
51794
62209
  friend class ::WinMacros;
51795
 
  friend class ::CMatchSyntax;
51796
 
  friend class ::ExtGnu;
 
62210
  friend class ::WinAsm;
 
62211
  friend class ::WinDeclSpecs;
 
62212
  friend class ::WinMemberExplSpec;
 
62213
  friend class ::WinTypeKeywords;
 
62214
  friend class ::WinFriend;
51797
62215
  friend class ::ExtAC;
51798
62216
  friend class ::ExtACBuilderCoupling;
51799
62217
  friend class ::ExtACSyntaxCoupling;
51800
62218
  friend class ::ExtACTree;
51801
62219
  friend class ::ExtACKeywords;
51802
 
  friend class ::WinAsm;
51803
 
  friend class ::WinDeclSpecs;
51804
 
  friend class ::WinMemberExplSpec;
51805
 
  friend class ::WinTypeKeywords;
 
62220
  friend class ::ExtGnu;
51806
62221
  friend class ::PragmaOnceUnitState;
51807
62222
  friend class ::PragmaOnce;
51808
 
  friend class ::CCExprResolve;
51809
 
  friend class ::CExprResolve;
 
62223
  friend class ::CMatchSyntax;
51810
62224
 
51811
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62225
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51812
62226
 
51813
62227
  CTree *sons[2]; // ref, declarator
51814
62228
 
51815
62229
public:
51816
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
62230
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
62231
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51817
62232
  static const char *NodeId ();
 
62233
  /** Get the name of the node. Can be compared with NodeId(). */
51818
62234
  const char *NodeName () const { return NodeId (); }
 
62235
  /** Get the number of sons. */
51819
62236
  int Sons () const { return 2; }
 
62237
  /** Get the n-th son.
 
62238
   *  \param n The index of the son.
 
62239
   *  \return The n-th son or NULL. */
51820
62240
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
51821
62241
  CTree *Declarator () const { return sons[1]; }
 
62242
  /** Replace a son.
 
62243
   *  \param old_son The son to replace.
 
62244
   *  \param new_son The new son. */
51822
62245
  void ReplaceSon (CTree *old_son, CTree *new_son) {
51823
62246
    CTree::ReplaceSon (sons, 2, old_son, new_son);
51824
62247
  }
51825
62248
};
51826
62249
 
51827
62250
 
51828
 
#line 51829 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62251
#line 62252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51829
62252
} // closed Puma
 
62253
class CCExprResolve;
 
62254
class CExprResolve;
51830
62255
class WinIfExists;
51831
62256
class WinImportHandler;
51832
62257
class WinMacros;
51833
 
class CMatchSyntax;
51834
 
class ExtGnu;
 
62258
class WinAsm;
 
62259
class WinDeclSpecs;
 
62260
class WinMemberExplSpec;
 
62261
class WinTypeKeywords;
 
62262
class WinFriend;
51835
62263
class ExtAC;
51836
62264
class ExtACBuilderCoupling;
51837
62265
class ExtACSyntaxCoupling;
51838
62266
class ExtACTree;
51839
62267
class ExtACKeywords;
51840
 
class WinAsm;
51841
 
class WinDeclSpecs;
51842
 
class WinMemberExplSpec;
51843
 
class WinTypeKeywords;
 
62268
class ExtGnu;
51844
62269
class PragmaOnceUnitState;
51845
62270
class PragmaOnce;
51846
 
class CCExprResolve;
51847
 
class CExprResolve;
 
62271
class CMatchSyntax;
51848
62272
namespace Puma {
51849
62273
 
51850
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62274
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51851
62275
class CT_PtrDeclarator : public CT_Declarator {
51852
 
#line 51853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62276
#line 62277 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62277
  friend class ::CCExprResolve;
 
62278
  friend class ::CExprResolve;
51853
62279
  friend class ::WinIfExists;
51854
62280
  friend class ::WinImportHandler;
51855
62281
  friend class ::WinMacros;
51856
 
  friend class ::CMatchSyntax;
51857
 
  friend class ::ExtGnu;
 
62282
  friend class ::WinAsm;
 
62283
  friend class ::WinDeclSpecs;
 
62284
  friend class ::WinMemberExplSpec;
 
62285
  friend class ::WinTypeKeywords;
 
62286
  friend class ::WinFriend;
51858
62287
  friend class ::ExtAC;
51859
62288
  friend class ::ExtACBuilderCoupling;
51860
62289
  friend class ::ExtACSyntaxCoupling;
51861
62290
  friend class ::ExtACTree;
51862
62291
  friend class ::ExtACKeywords;
51863
 
  friend class ::WinAsm;
51864
 
  friend class ::WinDeclSpecs;
51865
 
  friend class ::WinMemberExplSpec;
51866
 
  friend class ::WinTypeKeywords;
 
62292
  friend class ::ExtGnu;
51867
62293
  friend class ::PragmaOnceUnitState;
51868
62294
  friend class ::PragmaOnce;
51869
 
  friend class ::CCExprResolve;
51870
 
  friend class ::CExprResolve;
 
62295
  friend class ::CMatchSyntax;
51871
62296
 
51872
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62297
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51873
62298
 
51874
62299
  CTree *sons[3]; // ptr, cv_quals, declarator
51875
62300
 
51876
62301
public:
51877
62302
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
51878
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
62303
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
51879
62304
  }
 
62305
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51880
62306
  static const char *NodeId ();
 
62307
  /** Get the name of the node. Can be compared with NodeId(). */
51881
62308
  const char *NodeName () const { return NodeId (); }
 
62309
  /** Get the number of sons. */
51882
62310
  int Sons () const { return CTree::Sons (sons, 3); }
 
62311
  /** Get the n-th son.
 
62312
   *  \param n The index of the son.
 
62313
   *  \return The n-th son or NULL. */
51883
62314
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51884
62315
  CTree *Declarator () const { return sons[2]; }
51885
62316
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
62317
  /** Replace a son.
 
62318
   *  \param old_son The son to replace.
 
62319
   *  \param new_son The new son. */
51886
62320
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51887
62321
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51888
62322
  }
51889
62323
};
51890
62324
 
51891
62325
 
51892
 
#line 51893 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62326
#line 62327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51893
62327
} // closed Puma
 
62328
class CCExprResolve;
 
62329
class CExprResolve;
51894
62330
class WinIfExists;
51895
62331
class WinImportHandler;
51896
62332
class WinMacros;
51897
 
class CMatchSyntax;
51898
 
class ExtGnu;
 
62333
class WinAsm;
 
62334
class WinDeclSpecs;
 
62335
class WinMemberExplSpec;
 
62336
class WinTypeKeywords;
 
62337
class WinFriend;
51899
62338
class ExtAC;
51900
62339
class ExtACBuilderCoupling;
51901
62340
class ExtACSyntaxCoupling;
51902
62341
class ExtACTree;
51903
62342
class ExtACKeywords;
51904
 
class WinAsm;
51905
 
class WinDeclSpecs;
51906
 
class WinMemberExplSpec;
51907
 
class WinTypeKeywords;
 
62343
class ExtGnu;
51908
62344
class PragmaOnceUnitState;
51909
62345
class PragmaOnce;
51910
 
class CCExprResolve;
51911
 
class CExprResolve;
 
62346
class CMatchSyntax;
51912
62347
namespace Puma {
51913
62348
 
51914
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62349
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51915
62350
class CT_MembPtrDeclarator : public CT_Declarator {
51916
 
#line 51917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62351
#line 62352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62352
  friend class ::CCExprResolve;
 
62353
  friend class ::CExprResolve;
51917
62354
  friend class ::WinIfExists;
51918
62355
  friend class ::WinImportHandler;
51919
62356
  friend class ::WinMacros;
51920
 
  friend class ::CMatchSyntax;
51921
 
  friend class ::ExtGnu;
 
62357
  friend class ::WinAsm;
 
62358
  friend class ::WinDeclSpecs;
 
62359
  friend class ::WinMemberExplSpec;
 
62360
  friend class ::WinTypeKeywords;
 
62361
  friend class ::WinFriend;
51922
62362
  friend class ::ExtAC;
51923
62363
  friend class ::ExtACBuilderCoupling;
51924
62364
  friend class ::ExtACSyntaxCoupling;
51925
62365
  friend class ::ExtACTree;
51926
62366
  friend class ::ExtACKeywords;
51927
 
  friend class ::WinAsm;
51928
 
  friend class ::WinDeclSpecs;
51929
 
  friend class ::WinMemberExplSpec;
51930
 
  friend class ::WinTypeKeywords;
 
62367
  friend class ::ExtGnu;
51931
62368
  friend class ::PragmaOnceUnitState;
51932
62369
  friend class ::PragmaOnce;
51933
 
  friend class ::CCExprResolve;
51934
 
  friend class ::CExprResolve;
 
62370
  friend class ::CMatchSyntax;
51935
62371
 
51936
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62372
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51937
62373
 
51938
62374
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
51939
62375
 
51940
62376
public:
51941
62377
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
51942
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
62378
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
62379
    AddSon (sons[3], q); AddSon (sons[4], d); 
51943
62380
  }
 
62381
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51944
62382
  static const char *NodeId ();
 
62383
  /** Get the name of the node. Can be compared with NodeId(). */
51945
62384
  const char *NodeName () const { return NodeId (); }
 
62385
  /** Get the number of sons. */
51946
62386
  int Sons () const { return CTree::Sons (sons, 5); }
 
62387
  /** Get the n-th son.
 
62388
   *  \param n The index of the son.
 
62389
   *  \return The n-th son or NULL. */
51947
62390
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
51948
62391
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
51949
62392
  CTree *Declarator () const { return sons[4]; }
51950
62393
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
62394
  /** Replace a son.
 
62395
   *  \param old_son The son to replace.
 
62396
   *  \param new_son The new son. */
51951
62397
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51952
62398
    CTree::ReplaceSon (sons, 5, old_son, new_son);
51953
62399
  }
51954
62400
};
51955
62401
 
51956
62402
 
51957
 
#line 51958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62403
#line 62404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
51958
62404
} // closed Puma
 
62405
class CCExprResolve;
 
62406
class CExprResolve;
51959
62407
class WinIfExists;
51960
62408
class WinImportHandler;
51961
62409
class WinMacros;
51962
 
class CMatchSyntax;
51963
 
class ExtGnu;
 
62410
class WinAsm;
 
62411
class WinDeclSpecs;
 
62412
class WinMemberExplSpec;
 
62413
class WinTypeKeywords;
 
62414
class WinFriend;
51964
62415
class ExtAC;
51965
62416
class ExtACBuilderCoupling;
51966
62417
class ExtACSyntaxCoupling;
51967
62418
class ExtACTree;
51968
62419
class ExtACKeywords;
51969
 
class WinAsm;
51970
 
class WinDeclSpecs;
51971
 
class WinMemberExplSpec;
51972
 
class WinTypeKeywords;
 
62420
class ExtGnu;
51973
62421
class PragmaOnceUnitState;
51974
62422
class PragmaOnce;
51975
 
class CCExprResolve;
51976
 
class CExprResolve;
 
62423
class CMatchSyntax;
51977
62424
namespace Puma {
51978
62425
 
51979
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62426
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51980
62427
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
51981
 
#line 51982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62428
#line 62429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62429
  friend class ::CCExprResolve;
 
62430
  friend class ::CExprResolve;
51982
62431
  friend class ::WinIfExists;
51983
62432
  friend class ::WinImportHandler;
51984
62433
  friend class ::WinMacros;
51985
 
  friend class ::CMatchSyntax;
51986
 
  friend class ::ExtGnu;
 
62434
  friend class ::WinAsm;
 
62435
  friend class ::WinDeclSpecs;
 
62436
  friend class ::WinMemberExplSpec;
 
62437
  friend class ::WinTypeKeywords;
 
62438
  friend class ::WinFriend;
51987
62439
  friend class ::ExtAC;
51988
62440
  friend class ::ExtACBuilderCoupling;
51989
62441
  friend class ::ExtACSyntaxCoupling;
51990
62442
  friend class ::ExtACTree;
51991
62443
  friend class ::ExtACKeywords;
51992
 
  friend class ::WinAsm;
51993
 
  friend class ::WinDeclSpecs;
51994
 
  friend class ::WinMemberExplSpec;
51995
 
  friend class ::WinTypeKeywords;
 
62444
  friend class ::ExtGnu;
51996
62445
  friend class ::PragmaOnceUnitState;
51997
62446
  friend class ::PragmaOnce;
51998
 
  friend class ::CCExprResolve;
51999
 
  friend class ::CExprResolve;
 
62447
  friend class ::CMatchSyntax;
52000
62448
 
52001
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62449
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52002
62450
 
52003
62451
  CTree *sons[3]; // declarator, colon, expr
52004
62452
 
52005
62453
public:
52006
62454
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
52007
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
62455
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
52008
62456
  }
 
62457
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52009
62458
  static const char *NodeId ();
 
62459
  /** Get the name of the node. Can be compared with NodeId(). */
52010
62460
  const char *NodeName () const { return NodeId (); }
 
62461
  /** Get the number of sons. */
52011
62462
  int Sons () const { return CTree::Sons (sons, 3); }
 
62463
  /** Get the n-th son.
 
62464
   *  \param n The index of the son.
 
62465
   *  \return The n-th son or NULL. */
52012
62466
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52013
62467
  CTree *Declarator () const { return sons[0]; }
52014
62468
  CTree *Expr () const { return sons[2]; }
52015
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
62469
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
52016
62470
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
62471
  /** Replace a son.
 
62472
   *  \param old_son The son to replace.
 
62473
   *  \param new_son The new son. */
52017
62474
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52018
62475
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52019
62476
  }
52026
62483
/*****************************************************************************/
52027
62484
 
52028
62485
 
52029
 
#line 52030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62486
#line 62487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52030
62487
} // closed Puma
 
62488
class CCExprResolve;
 
62489
class CExprResolve;
52031
62490
class WinIfExists;
52032
62491
class WinImportHandler;
52033
62492
class WinMacros;
52034
 
class CMatchSyntax;
52035
 
class ExtGnu;
 
62493
class WinAsm;
 
62494
class WinDeclSpecs;
 
62495
class WinMemberExplSpec;
 
62496
class WinTypeKeywords;
 
62497
class WinFriend;
52036
62498
class ExtAC;
52037
62499
class ExtACBuilderCoupling;
52038
62500
class ExtACSyntaxCoupling;
52039
62501
class ExtACTree;
52040
62502
class ExtACKeywords;
52041
 
class WinAsm;
52042
 
class WinDeclSpecs;
52043
 
class WinMemberExplSpec;
52044
 
class WinTypeKeywords;
 
62503
class ExtGnu;
52045
62504
class PragmaOnceUnitState;
52046
62505
class PragmaOnce;
52047
 
class CCExprResolve;
52048
 
class CExprResolve;
 
62506
class CMatchSyntax;
52049
62507
namespace Puma {
52050
62508
 
52051
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62509
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52052
62510
class CT_Statement : public CTree {
52053
 
#line 52054 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62511
#line 62512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62512
  friend class ::CCExprResolve;
 
62513
  friend class ::CExprResolve;
52054
62514
  friend class ::WinIfExists;
52055
62515
  friend class ::WinImportHandler;
52056
62516
  friend class ::WinMacros;
52057
 
  friend class ::CMatchSyntax;
52058
 
  friend class ::ExtGnu;
 
62517
  friend class ::WinAsm;
 
62518
  friend class ::WinDeclSpecs;
 
62519
  friend class ::WinMemberExplSpec;
 
62520
  friend class ::WinTypeKeywords;
 
62521
  friend class ::WinFriend;
52059
62522
  friend class ::ExtAC;
52060
62523
  friend class ::ExtACBuilderCoupling;
52061
62524
  friend class ::ExtACSyntaxCoupling;
52062
62525
  friend class ::ExtACTree;
52063
62526
  friend class ::ExtACKeywords;
52064
 
  friend class ::WinAsm;
52065
 
  friend class ::WinDeclSpecs;
52066
 
  friend class ::WinMemberExplSpec;
52067
 
  friend class ::WinTypeKeywords;
 
62527
  friend class ::ExtGnu;
52068
62528
  friend class ::PragmaOnceUnitState;
52069
62529
  friend class ::PragmaOnce;
52070
 
  friend class ::CCExprResolve;
52071
 
  friend class ::CExprResolve;
 
62530
  friend class ::CMatchSyntax;
52072
62531
 
52073
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62532
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52074
62533
 
52075
62534
protected:
52076
62535
  CT_Statement () {}
 
62536
  virtual CT_Statement *IsStatement () { return this; }
52077
62537
};
52078
62538
 
52079
62539
 
52080
 
#line 52081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62540
#line 62541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52081
62541
} // closed Puma
 
62542
class CCExprResolve;
 
62543
class CExprResolve;
52082
62544
class WinIfExists;
52083
62545
class WinImportHandler;
52084
62546
class WinMacros;
52085
 
class CMatchSyntax;
52086
 
class ExtGnu;
 
62547
class WinAsm;
 
62548
class WinDeclSpecs;
 
62549
class WinMemberExplSpec;
 
62550
class WinTypeKeywords;
 
62551
class WinFriend;
52087
62552
class ExtAC;
52088
62553
class ExtACBuilderCoupling;
52089
62554
class ExtACSyntaxCoupling;
52090
62555
class ExtACTree;
52091
62556
class ExtACKeywords;
52092
 
class WinAsm;
52093
 
class WinDeclSpecs;
52094
 
class WinMemberExplSpec;
52095
 
class WinTypeKeywords;
 
62557
class ExtGnu;
52096
62558
class PragmaOnceUnitState;
52097
62559
class PragmaOnce;
52098
 
class CCExprResolve;
52099
 
class CExprResolve;
 
62560
class CMatchSyntax;
52100
62561
namespace Puma {
52101
62562
 
52102
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62563
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52103
62564
class CT_LabelStmt : public CT_Statement {
52104
 
#line 52105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62565
#line 62566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62566
  friend class ::CCExprResolve;
 
62567
  friend class ::CExprResolve;
52105
62568
  friend class ::WinIfExists;
52106
62569
  friend class ::WinImportHandler;
52107
62570
  friend class ::WinMacros;
52108
 
  friend class ::CMatchSyntax;
52109
 
  friend class ::ExtGnu;
 
62571
  friend class ::WinAsm;
 
62572
  friend class ::WinDeclSpecs;
 
62573
  friend class ::WinMemberExplSpec;
 
62574
  friend class ::WinTypeKeywords;
 
62575
  friend class ::WinFriend;
52110
62576
  friend class ::ExtAC;
52111
62577
  friend class ::ExtACBuilderCoupling;
52112
62578
  friend class ::ExtACSyntaxCoupling;
52113
62579
  friend class ::ExtACTree;
52114
62580
  friend class ::ExtACKeywords;
52115
 
  friend class ::WinAsm;
52116
 
  friend class ::WinDeclSpecs;
52117
 
  friend class ::WinMemberExplSpec;
52118
 
  friend class ::WinTypeKeywords;
 
62581
  friend class ::ExtGnu;
52119
62582
  friend class ::PragmaOnceUnitState;
52120
62583
  friend class ::PragmaOnce;
52121
 
  friend class ::CCExprResolve;
52122
 
  friend class ::CExprResolve;
 
62584
  friend class ::CMatchSyntax;
52123
62585
 
52124
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62586
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52125
62587
 
52126
62588
  CTree *sons[3]; // id, colon, stmt
52127
62589
 
52128
62590
public:
52129
62591
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
52130
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
62592
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
52131
62593
  }
 
62594
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52132
62595
  static const char *NodeId ();
 
62596
  /** Get the name of the node. Can be compared with NodeId(). */
52133
62597
  const char *NodeName () const { return NodeId (); }
 
62598
  /** Get the number of sons. */
52134
62599
  int Sons () const { return 3; }
 
62600
  /** Get the n-th son.
 
62601
   *  \param n The index of the son.
 
62602
   *  \return The n-th son or NULL. */
52135
62603
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52136
62604
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
52137
62605
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
62606
  /** Replace a son.
 
62607
   *  \param old_son The son to replace.
 
62608
   *  \param new_son The new son. */
52138
62609
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52139
62610
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52140
62611
  }
52141
62612
};
52142
62613
 
52143
62614
 
52144
 
#line 52145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62615
#line 62616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52145
62616
} // closed Puma
 
62617
class CCExprResolve;
 
62618
class CExprResolve;
52146
62619
class WinIfExists;
52147
62620
class WinImportHandler;
52148
62621
class WinMacros;
52149
 
class CMatchSyntax;
52150
 
class ExtGnu;
 
62622
class WinAsm;
 
62623
class WinDeclSpecs;
 
62624
class WinMemberExplSpec;
 
62625
class WinTypeKeywords;
 
62626
class WinFriend;
52151
62627
class ExtAC;
52152
62628
class ExtACBuilderCoupling;
52153
62629
class ExtACSyntaxCoupling;
52154
62630
class ExtACTree;
52155
62631
class ExtACKeywords;
52156
 
class WinAsm;
52157
 
class WinDeclSpecs;
52158
 
class WinMemberExplSpec;
52159
 
class WinTypeKeywords;
 
62632
class ExtGnu;
52160
62633
class PragmaOnceUnitState;
52161
62634
class PragmaOnce;
52162
 
class CCExprResolve;
52163
 
class CExprResolve;
 
62635
class CMatchSyntax;
52164
62636
namespace Puma {
52165
62637
 
52166
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62638
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52167
62639
class CT_DefaultStmt : public CT_Statement {
52168
 
#line 52169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62640
#line 62641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62641
  friend class ::CCExprResolve;
 
62642
  friend class ::CExprResolve;
52169
62643
  friend class ::WinIfExists;
52170
62644
  friend class ::WinImportHandler;
52171
62645
  friend class ::WinMacros;
52172
 
  friend class ::CMatchSyntax;
52173
 
  friend class ::ExtGnu;
 
62646
  friend class ::WinAsm;
 
62647
  friend class ::WinDeclSpecs;
 
62648
  friend class ::WinMemberExplSpec;
 
62649
  friend class ::WinTypeKeywords;
 
62650
  friend class ::WinFriend;
52174
62651
  friend class ::ExtAC;
52175
62652
  friend class ::ExtACBuilderCoupling;
52176
62653
  friend class ::ExtACSyntaxCoupling;
52177
62654
  friend class ::ExtACTree;
52178
62655
  friend class ::ExtACKeywords;
52179
 
  friend class ::WinAsm;
52180
 
  friend class ::WinDeclSpecs;
52181
 
  friend class ::WinMemberExplSpec;
52182
 
  friend class ::WinTypeKeywords;
 
62656
  friend class ::ExtGnu;
52183
62657
  friend class ::PragmaOnceUnitState;
52184
62658
  friend class ::PragmaOnce;
52185
 
  friend class ::CCExprResolve;
52186
 
  friend class ::CExprResolve;
 
62659
  friend class ::CMatchSyntax;
52187
62660
 
52188
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62661
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52189
62662
 
52190
62663
  CTree *sons[3]; // keyword, colon, stmt
52191
62664
 
52192
62665
public:
52193
62666
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
52194
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
62667
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
52195
62668
  }
 
62669
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52196
62670
  static const char *NodeId ();
 
62671
  /** Get the name of the node. Can be compared with NodeId(). */
52197
62672
  const char *NodeName () const { return NodeId (); }
 
62673
  /** Get the number of sons. */
52198
62674
  int Sons () const { return 3; }
 
62675
  /** Get the n-th son.
 
62676
   *  \param n The index of the son.
 
62677
   *  \return The n-th son or NULL. */
52199
62678
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52200
62679
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
62680
  /** Replace a son.
 
62681
   *  \param old_son The son to replace.
 
62682
   *  \param new_son The new son. */
52201
62683
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52202
62684
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52203
62685
  }
52204
62686
};
52205
62687
 
52206
62688
 
52207
 
#line 52208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62689
#line 62690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52208
62690
} // closed Puma
 
62691
class CCExprResolve;
 
62692
class CExprResolve;
52209
62693
class WinIfExists;
52210
62694
class WinImportHandler;
52211
62695
class WinMacros;
52212
 
class CMatchSyntax;
52213
 
class ExtGnu;
 
62696
class WinAsm;
 
62697
class WinDeclSpecs;
 
62698
class WinMemberExplSpec;
 
62699
class WinTypeKeywords;
 
62700
class WinFriend;
52214
62701
class ExtAC;
52215
62702
class ExtACBuilderCoupling;
52216
62703
class ExtACSyntaxCoupling;
52217
62704
class ExtACTree;
52218
62705
class ExtACKeywords;
52219
 
class WinAsm;
52220
 
class WinDeclSpecs;
52221
 
class WinMemberExplSpec;
52222
 
class WinTypeKeywords;
 
62706
class ExtGnu;
52223
62707
class PragmaOnceUnitState;
52224
62708
class PragmaOnce;
52225
 
class CCExprResolve;
52226
 
class CExprResolve;
 
62709
class CMatchSyntax;
52227
62710
namespace Puma {
52228
62711
 
52229
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62712
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52230
62713
class CT_TryStmt : public CT_Statement {
52231
 
#line 52232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62714
#line 62715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62715
  friend class ::CCExprResolve;
 
62716
  friend class ::CExprResolve;
52232
62717
  friend class ::WinIfExists;
52233
62718
  friend class ::WinImportHandler;
52234
62719
  friend class ::WinMacros;
52235
 
  friend class ::CMatchSyntax;
52236
 
  friend class ::ExtGnu;
 
62720
  friend class ::WinAsm;
 
62721
  friend class ::WinDeclSpecs;
 
62722
  friend class ::WinMemberExplSpec;
 
62723
  friend class ::WinTypeKeywords;
 
62724
  friend class ::WinFriend;
52237
62725
  friend class ::ExtAC;
52238
62726
  friend class ::ExtACBuilderCoupling;
52239
62727
  friend class ::ExtACSyntaxCoupling;
52240
62728
  friend class ::ExtACTree;
52241
62729
  friend class ::ExtACKeywords;
52242
 
  friend class ::WinAsm;
52243
 
  friend class ::WinDeclSpecs;
52244
 
  friend class ::WinMemberExplSpec;
52245
 
  friend class ::WinTypeKeywords;
 
62730
  friend class ::ExtGnu;
52246
62731
  friend class ::PragmaOnceUnitState;
52247
62732
  friend class ::PragmaOnce;
52248
 
  friend class ::CCExprResolve;
52249
 
  friend class ::CExprResolve;
 
62733
  friend class ::CMatchSyntax;
52250
62734
 
52251
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62735
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52252
62736
 
52253
62737
  CTree *sons[3]; // try, stmt, handlers
52254
62738
 
52255
62739
public:
52256
62740
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
52257
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
62741
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
52258
62742
  }
 
62743
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52259
62744
  static const char *NodeId ();
 
62745
  /** Get the name of the node. Can be compared with NodeId(). */
52260
62746
  const char *NodeName () const { return NodeId (); }
 
62747
  /** Get the number of sons. */
52261
62748
  int Sons () const { return 3; }
 
62749
  /** Get the n-th son.
 
62750
   *  \param n The index of the son.
 
62751
   *  \return The n-th son or NULL. */
52262
62752
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52263
62753
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
52264
62754
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
62755
  /** Replace a son.
 
62756
   *  \param old_son The son to replace.
 
62757
   *  \param new_son The new son. */
52265
62758
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52266
62759
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52267
62760
  }
52268
62761
};
52269
62762
 
52270
62763
 
52271
 
#line 52272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62764
#line 62765 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52272
62765
} // closed Puma
 
62766
class CCExprResolve;
 
62767
class CExprResolve;
52273
62768
class WinIfExists;
52274
62769
class WinImportHandler;
52275
62770
class WinMacros;
52276
 
class CMatchSyntax;
52277
 
class ExtGnu;
 
62771
class WinAsm;
 
62772
class WinDeclSpecs;
 
62773
class WinMemberExplSpec;
 
62774
class WinTypeKeywords;
 
62775
class WinFriend;
52278
62776
class ExtAC;
52279
62777
class ExtACBuilderCoupling;
52280
62778
class ExtACSyntaxCoupling;
52281
62779
class ExtACTree;
52282
62780
class ExtACKeywords;
52283
 
class WinAsm;
52284
 
class WinDeclSpecs;
52285
 
class WinMemberExplSpec;
52286
 
class WinTypeKeywords;
 
62781
class ExtGnu;
52287
62782
class PragmaOnceUnitState;
52288
62783
class PragmaOnce;
52289
 
class CCExprResolve;
52290
 
class CExprResolve;
 
62784
class CMatchSyntax;
52291
62785
namespace Puma {
52292
62786
 
52293
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62787
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52294
62788
class CT_CaseStmt : public CT_Statement {
52295
 
#line 52296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62789
#line 62790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62790
  friend class ::CCExprResolve;
 
62791
  friend class ::CExprResolve;
52296
62792
  friend class ::WinIfExists;
52297
62793
  friend class ::WinImportHandler;
52298
62794
  friend class ::WinMacros;
52299
 
  friend class ::CMatchSyntax;
52300
 
  friend class ::ExtGnu;
 
62795
  friend class ::WinAsm;
 
62796
  friend class ::WinDeclSpecs;
 
62797
  friend class ::WinMemberExplSpec;
 
62798
  friend class ::WinTypeKeywords;
 
62799
  friend class ::WinFriend;
52301
62800
  friend class ::ExtAC;
52302
62801
  friend class ::ExtACBuilderCoupling;
52303
62802
  friend class ::ExtACSyntaxCoupling;
52304
62803
  friend class ::ExtACTree;
52305
62804
  friend class ::ExtACKeywords;
52306
 
  friend class ::WinAsm;
52307
 
  friend class ::WinDeclSpecs;
52308
 
  friend class ::WinMemberExplSpec;
52309
 
  friend class ::WinTypeKeywords;
 
62805
  friend class ::ExtGnu;
52310
62806
  friend class ::PragmaOnceUnitState;
52311
62807
  friend class ::PragmaOnce;
52312
 
  friend class ::CCExprResolve;
52313
 
  friend class ::CExprResolve;
 
62808
  friend class ::CMatchSyntax;
52314
62809
 
52315
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62810
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52316
62811
 
52317
62812
  CTree *sons[4]; // keyword, expr, colon, stmt
52318
62813
 
52319
62814
public:
52320
62815
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
52321
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
62816
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
62817
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
52322
62818
  }
 
62819
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52323
62820
  static const char *NodeId ();
 
62821
  /** Get the name of the node. Can be compared with NodeId(). */
52324
62822
  const char *NodeName () const { return NodeId (); }
 
62823
  /** Get the number of sons. */
52325
62824
  int Sons () const { return 4; }
 
62825
  /** Get the n-th son.
 
62826
   *  \param n The index of the son.
 
62827
   *  \return The n-th son or NULL. */
52326
62828
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
52327
62829
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
52328
62830
  CTree *Expr () const { return sons[1]; }
 
62831
  /** Replace a son.
 
62832
   *  \param old_son The son to replace.
 
62833
   *  \param new_son The new son. */
52329
62834
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52330
62835
    CTree::ReplaceSon (sons, 4, old_son, new_son);
52331
62836
  }
52332
62837
};
52333
62838
 
52334
62839
 
52335
 
#line 52336 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62840
#line 62841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52336
62841
} // closed Puma
 
62842
class CCExprResolve;
 
62843
class CExprResolve;
52337
62844
class WinIfExists;
52338
62845
class WinImportHandler;
52339
62846
class WinMacros;
52340
 
class CMatchSyntax;
52341
 
class ExtGnu;
 
62847
class WinAsm;
 
62848
class WinDeclSpecs;
 
62849
class WinMemberExplSpec;
 
62850
class WinTypeKeywords;
 
62851
class WinFriend;
52342
62852
class ExtAC;
52343
62853
class ExtACBuilderCoupling;
52344
62854
class ExtACSyntaxCoupling;
52345
62855
class ExtACTree;
52346
62856
class ExtACKeywords;
52347
 
class WinAsm;
52348
 
class WinDeclSpecs;
52349
 
class WinMemberExplSpec;
52350
 
class WinTypeKeywords;
 
62857
class ExtGnu;
52351
62858
class PragmaOnceUnitState;
52352
62859
class PragmaOnce;
52353
 
class CCExprResolve;
52354
 
class CExprResolve;
 
62860
class CMatchSyntax;
52355
62861
namespace Puma {
52356
62862
 
52357
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62863
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52358
62864
class CT_ExprStmt : public CT_Statement {
52359
 
#line 52360 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62865
#line 62866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62866
  friend class ::CCExprResolve;
 
62867
  friend class ::CExprResolve;
52360
62868
  friend class ::WinIfExists;
52361
62869
  friend class ::WinImportHandler;
52362
62870
  friend class ::WinMacros;
52363
 
  friend class ::CMatchSyntax;
52364
 
  friend class ::ExtGnu;
 
62871
  friend class ::WinAsm;
 
62872
  friend class ::WinDeclSpecs;
 
62873
  friend class ::WinMemberExplSpec;
 
62874
  friend class ::WinTypeKeywords;
 
62875
  friend class ::WinFriend;
52365
62876
  friend class ::ExtAC;
52366
62877
  friend class ::ExtACBuilderCoupling;
52367
62878
  friend class ::ExtACSyntaxCoupling;
52368
62879
  friend class ::ExtACTree;
52369
62880
  friend class ::ExtACKeywords;
52370
 
  friend class ::WinAsm;
52371
 
  friend class ::WinDeclSpecs;
52372
 
  friend class ::WinMemberExplSpec;
52373
 
  friend class ::WinTypeKeywords;
 
62881
  friend class ::ExtGnu;
52374
62882
  friend class ::PragmaOnceUnitState;
52375
62883
  friend class ::PragmaOnce;
52376
 
  friend class ::CCExprResolve;
52377
 
  friend class ::CExprResolve;
 
62884
  friend class ::CMatchSyntax;
52378
62885
 
52379
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62886
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52380
62887
 
52381
62888
  CTree *sons[2]; // expr, semi_colon
52382
62889
 
52383
62890
public:
52384
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
62891
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
62892
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52385
62893
  static const char *NodeId ();
 
62894
  /** Get the name of the node. Can be compared with NodeId(). */
52386
62895
  const char *NodeName () const { return NodeId (); }
 
62896
  /** Get the number of sons. */
52387
62897
  int Sons () const { return CTree::Sons (sons, 2); }
 
62898
  /** Get the n-th son.
 
62899
   *  \param n The index of the son.
 
62900
   *  \return The n-th son or NULL. */
52388
62901
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
52389
62902
  CTree *Expr () const { return sons[0]; }
 
62903
  /** Replace a son.
 
62904
   *  \param old_son The son to replace.
 
62905
   *  \param new_son The new son. */
52390
62906
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52391
62907
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52392
62908
  }
52393
62909
};
52394
62910
 
52395
62911
 
52396
 
#line 52397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62912
#line 62913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52397
62913
} // closed Puma
 
62914
class CCExprResolve;
 
62915
class CExprResolve;
52398
62916
class WinIfExists;
52399
62917
class WinImportHandler;
52400
62918
class WinMacros;
52401
 
class CMatchSyntax;
52402
 
class ExtGnu;
 
62919
class WinAsm;
 
62920
class WinDeclSpecs;
 
62921
class WinMemberExplSpec;
 
62922
class WinTypeKeywords;
 
62923
class WinFriend;
52403
62924
class ExtAC;
52404
62925
class ExtACBuilderCoupling;
52405
62926
class ExtACSyntaxCoupling;
52406
62927
class ExtACTree;
52407
62928
class ExtACKeywords;
52408
 
class WinAsm;
52409
 
class WinDeclSpecs;
52410
 
class WinMemberExplSpec;
52411
 
class WinTypeKeywords;
 
62929
class ExtGnu;
52412
62930
class PragmaOnceUnitState;
52413
62931
class PragmaOnce;
52414
 
class CCExprResolve;
52415
 
class CExprResolve;
 
62932
class CMatchSyntax;
52416
62933
namespace Puma {
52417
62934
 
52418
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62935
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52419
62936
class CT_DeclStmt : public CT_Statement {
52420
 
#line 52421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62937
#line 62938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
62938
  friend class ::CCExprResolve;
 
62939
  friend class ::CExprResolve;
52421
62940
  friend class ::WinIfExists;
52422
62941
  friend class ::WinImportHandler;
52423
62942
  friend class ::WinMacros;
52424
 
  friend class ::CMatchSyntax;
52425
 
  friend class ::ExtGnu;
 
62943
  friend class ::WinAsm;
 
62944
  friend class ::WinDeclSpecs;
 
62945
  friend class ::WinMemberExplSpec;
 
62946
  friend class ::WinTypeKeywords;
 
62947
  friend class ::WinFriend;
52426
62948
  friend class ::ExtAC;
52427
62949
  friend class ::ExtACBuilderCoupling;
52428
62950
  friend class ::ExtACSyntaxCoupling;
52429
62951
  friend class ::ExtACTree;
52430
62952
  friend class ::ExtACKeywords;
52431
 
  friend class ::WinAsm;
52432
 
  friend class ::WinDeclSpecs;
52433
 
  friend class ::WinMemberExplSpec;
52434
 
  friend class ::WinTypeKeywords;
 
62953
  friend class ::ExtGnu;
52435
62954
  friend class ::PragmaOnceUnitState;
52436
62955
  friend class ::PragmaOnce;
52437
 
  friend class ::CCExprResolve;
52438
 
  friend class ::CExprResolve;
 
62956
  friend class ::CMatchSyntax;
52439
62957
 
52440
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62958
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52441
62959
 
52442
62960
  CTree *_decl;
52443
62961
 
52444
62962
public:
52445
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
62963
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
62964
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52446
62965
  static const char *NodeId ();
 
62966
  /** Get the name of the node. Can be compared with NodeId(). */
52447
62967
  const char *NodeName () const { return NodeId (); }
 
62968
  /** Get the number of sons. */
52448
62969
  int Sons () const { return 1; }
 
62970
  /** Get the n-th son.
 
62971
   *  \param n The index of the son.
 
62972
   *  \return The n-th son or NULL. */
52449
62973
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
62974
  /** Replace a son.
 
62975
   *  \param old_son The son to replace.
 
62976
   *  \param new_son The new son. */
52450
62977
  void ReplaceSon (CTree *old_son, CTree *new_son) 
52451
 
   { if (old_son == _decl) _decl = new_son; }
 
62978
   { CTree::ReplaceSon (_decl, old_son, new_son); }
52452
62979
};
52453
62980
 
52454
62981
 
52455
 
#line 52456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
62982
#line 62983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52456
62983
} // closed Puma
 
62984
class CCExprResolve;
 
62985
class CExprResolve;
52457
62986
class WinIfExists;
52458
62987
class WinImportHandler;
52459
62988
class WinMacros;
52460
 
class CMatchSyntax;
52461
 
class ExtGnu;
 
62989
class WinAsm;
 
62990
class WinDeclSpecs;
 
62991
class WinMemberExplSpec;
 
62992
class WinTypeKeywords;
 
62993
class WinFriend;
52462
62994
class ExtAC;
52463
62995
class ExtACBuilderCoupling;
52464
62996
class ExtACSyntaxCoupling;
52465
62997
class ExtACTree;
52466
62998
class ExtACKeywords;
52467
 
class WinAsm;
52468
 
class WinDeclSpecs;
52469
 
class WinMemberExplSpec;
52470
 
class WinTypeKeywords;
 
62999
class ExtGnu;
52471
63000
class PragmaOnceUnitState;
52472
63001
class PragmaOnce;
52473
 
class CCExprResolve;
52474
 
class CExprResolve;
 
63002
class CMatchSyntax;
52475
63003
namespace Puma {
52476
63004
 
52477
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63005
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52478
63006
class CT_SwitchStmt : public CT_Statement, public CSemScope {
52479
 
#line 52480 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63007
#line 63008 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63008
  friend class ::CCExprResolve;
 
63009
  friend class ::CExprResolve;
52480
63010
  friend class ::WinIfExists;
52481
63011
  friend class ::WinImportHandler;
52482
63012
  friend class ::WinMacros;
52483
 
  friend class ::CMatchSyntax;
52484
 
  friend class ::ExtGnu;
 
63013
  friend class ::WinAsm;
 
63014
  friend class ::WinDeclSpecs;
 
63015
  friend class ::WinMemberExplSpec;
 
63016
  friend class ::WinTypeKeywords;
 
63017
  friend class ::WinFriend;
52485
63018
  friend class ::ExtAC;
52486
63019
  friend class ::ExtACBuilderCoupling;
52487
63020
  friend class ::ExtACSyntaxCoupling;
52488
63021
  friend class ::ExtACTree;
52489
63022
  friend class ::ExtACKeywords;
52490
 
  friend class ::WinAsm;
52491
 
  friend class ::WinDeclSpecs;
52492
 
  friend class ::WinMemberExplSpec;
52493
 
  friend class ::WinTypeKeywords;
 
63023
  friend class ::ExtGnu;
52494
63024
  friend class ::PragmaOnceUnitState;
52495
63025
  friend class ::PragmaOnce;
52496
 
  friend class ::CCExprResolve;
52497
 
  friend class ::CExprResolve;
 
63026
  friend class ::CMatchSyntax;
52498
63027
 
52499
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63028
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52500
63029
 
52501
63030
  CTree *sons[5]; // keyword, open, cond, close, stmt
52502
63031
 
52503
63032
public:
52504
63033
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
52505
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
63034
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
63035
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
52506
63036
  }
 
63037
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52507
63038
  static const char *NodeId ();
 
63039
  /** Get the name of the node. Can be compared with NodeId(). */
52508
63040
  const char *NodeName () const { return NodeId (); }
 
63041
  /** Get the number of sons. */
52509
63042
  int Sons () const { return 5; }
 
63043
  /** Get the n-th son.
 
63044
   *  \param n The index of the son.
 
63045
   *  \return The n-th son or NULL. */
52510
63046
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
52511
63047
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
52512
63048
  CTree *Condition () const { return sons[2]; }
 
63049
  /** Replace a son.
 
63050
   *  \param old_son The son to replace.
 
63051
   *  \param new_son The new son. */
52513
63052
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52514
63053
    CTree::ReplaceSon (sons, 5, old_son, new_son);
52515
63054
  }
 
63055
  CSemScope *SemScope () const { return (CSemScope*)this; }
52516
63056
};
52517
63057
 
52518
63058
 
52519
 
#line 52520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63059
#line 63060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52520
63060
} // closed Puma
 
63061
class CCExprResolve;
 
63062
class CExprResolve;
52521
63063
class WinIfExists;
52522
63064
class WinImportHandler;
52523
63065
class WinMacros;
52524
 
class CMatchSyntax;
52525
 
class ExtGnu;
 
63066
class WinAsm;
 
63067
class WinDeclSpecs;
 
63068
class WinMemberExplSpec;
 
63069
class WinTypeKeywords;
 
63070
class WinFriend;
52526
63071
class ExtAC;
52527
63072
class ExtACBuilderCoupling;
52528
63073
class ExtACSyntaxCoupling;
52529
63074
class ExtACTree;
52530
63075
class ExtACKeywords;
52531
 
class WinAsm;
52532
 
class WinDeclSpecs;
52533
 
class WinMemberExplSpec;
52534
 
class WinTypeKeywords;
 
63076
class ExtGnu;
52535
63077
class PragmaOnceUnitState;
52536
63078
class PragmaOnce;
52537
 
class CCExprResolve;
52538
 
class CExprResolve;
 
63079
class CMatchSyntax;
52539
63080
namespace Puma {
52540
63081
 
52541
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63082
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52542
63083
class CT_IfStmt : public CT_Statement, public CSemScope {
52543
 
#line 52544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63084
#line 63085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63085
  friend class ::CCExprResolve;
 
63086
  friend class ::CExprResolve;
52544
63087
  friend class ::WinIfExists;
52545
63088
  friend class ::WinImportHandler;
52546
63089
  friend class ::WinMacros;
52547
 
  friend class ::CMatchSyntax;
52548
 
  friend class ::ExtGnu;
 
63090
  friend class ::WinAsm;
 
63091
  friend class ::WinDeclSpecs;
 
63092
  friend class ::WinMemberExplSpec;
 
63093
  friend class ::WinTypeKeywords;
 
63094
  friend class ::WinFriend;
52549
63095
  friend class ::ExtAC;
52550
63096
  friend class ::ExtACBuilderCoupling;
52551
63097
  friend class ::ExtACSyntaxCoupling;
52552
63098
  friend class ::ExtACTree;
52553
63099
  friend class ::ExtACKeywords;
52554
 
  friend class ::WinAsm;
52555
 
  friend class ::WinDeclSpecs;
52556
 
  friend class ::WinMemberExplSpec;
52557
 
  friend class ::WinTypeKeywords;
 
63100
  friend class ::ExtGnu;
52558
63101
  friend class ::PragmaOnceUnitState;
52559
63102
  friend class ::PragmaOnce;
52560
 
  friend class ::CCExprResolve;
52561
 
  friend class ::CExprResolve;
 
63103
  friend class ::CMatchSyntax;
52562
63104
 
52563
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63105
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52564
63106
 
52565
63107
  CTree *sons[5]; // keyword, open, cond, close, stmt
52566
63108
 
52567
63109
public:
52568
63110
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
52569
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
63111
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
63112
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
52570
63113
  }
 
63114
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52571
63115
  static const char *NodeId ();
 
63116
  /** Get the name of the node. Can be compared with NodeId(). */
52572
63117
  const char *NodeName () const { return NodeId (); }
 
63118
  /** Get the number of sons. */
52573
63119
  int Sons () const { return 5; }
 
63120
  /** Get the n-th son.
 
63121
   *  \param n The index of the son.
 
63122
   *  \return The n-th son or NULL. */
52574
63123
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
52575
63124
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
52576
63125
  CTree *Condition () const { return sons[2]; }
 
63126
  /** Replace a son.
 
63127
   *  \param old_son The son to replace.
 
63128
   *  \param new_son The new son. */
52577
63129
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52578
63130
    CTree::ReplaceSon (sons, 5, old_son, new_son);
52579
63131
  }
 
63132
  CSemScope *SemScope () const { return (CSemScope*)this; }
52580
63133
};
52581
63134
 
52582
63135
 
52583
 
#line 52584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63136
#line 63137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52584
63137
} // closed Puma
 
63138
class CCExprResolve;
 
63139
class CExprResolve;
52585
63140
class WinIfExists;
52586
63141
class WinImportHandler;
52587
63142
class WinMacros;
52588
 
class CMatchSyntax;
52589
 
class ExtGnu;
 
63143
class WinAsm;
 
63144
class WinDeclSpecs;
 
63145
class WinMemberExplSpec;
 
63146
class WinTypeKeywords;
 
63147
class WinFriend;
52590
63148
class ExtAC;
52591
63149
class ExtACBuilderCoupling;
52592
63150
class ExtACSyntaxCoupling;
52593
63151
class ExtACTree;
52594
63152
class ExtACKeywords;
52595
 
class WinAsm;
52596
 
class WinDeclSpecs;
52597
 
class WinMemberExplSpec;
52598
 
class WinTypeKeywords;
 
63153
class ExtGnu;
52599
63154
class PragmaOnceUnitState;
52600
63155
class PragmaOnce;
52601
 
class CCExprResolve;
52602
 
class CExprResolve;
 
63156
class CMatchSyntax;
52603
63157
namespace Puma {
52604
63158
 
52605
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63159
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52606
63160
class CT_IfElseStmt : public CT_Statement, public CSemScope {
52607
 
#line 52608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63161
#line 63162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63162
  friend class ::CCExprResolve;
 
63163
  friend class ::CExprResolve;
52608
63164
  friend class ::WinIfExists;
52609
63165
  friend class ::WinImportHandler;
52610
63166
  friend class ::WinMacros;
52611
 
  friend class ::CMatchSyntax;
52612
 
  friend class ::ExtGnu;
 
63167
  friend class ::WinAsm;
 
63168
  friend class ::WinDeclSpecs;
 
63169
  friend class ::WinMemberExplSpec;
 
63170
  friend class ::WinTypeKeywords;
 
63171
  friend class ::WinFriend;
52613
63172
  friend class ::ExtAC;
52614
63173
  friend class ::ExtACBuilderCoupling;
52615
63174
  friend class ::ExtACSyntaxCoupling;
52616
63175
  friend class ::ExtACTree;
52617
63176
  friend class ::ExtACKeywords;
52618
 
  friend class ::WinAsm;
52619
 
  friend class ::WinDeclSpecs;
52620
 
  friend class ::WinMemberExplSpec;
52621
 
  friend class ::WinTypeKeywords;
 
63177
  friend class ::ExtGnu;
52622
63178
  friend class ::PragmaOnceUnitState;
52623
63179
  friend class ::PragmaOnce;
52624
 
  friend class ::CCExprResolve;
52625
 
  friend class ::CExprResolve;
 
63180
  friend class ::CMatchSyntax;
52626
63181
 
52627
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63182
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52628
63183
 
52629
63184
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
52630
63185
 
52631
63186
public:
52632
63187
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
52633
63188
                 CTree *is, CTree *e, CTree *es) {
52634
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
52635
 
    sons[5] = e; sons[6] = es; 
 
63189
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
63190
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
63191
    AddSon (sons[6], es); 
52636
63192
  }
 
63193
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52637
63194
  static const char *NodeId ();
 
63195
  /** Get the name of the node. Can be compared with NodeId(). */
52638
63196
  const char *NodeName () const { return NodeId (); }
 
63197
  /** Get the number of sons. */
52639
63198
  int Sons () const { return 7; }
 
63199
  /** Get the n-th son.
 
63200
   *  \param n The index of the son.
 
63201
   *  \return The n-th son or NULL. */
52640
63202
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
52641
63203
  CTree *Condition () const { return sons[2]; }
52642
63204
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
52643
63205
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
63206
  /** Replace a son.
 
63207
   *  \param old_son The son to replace.
 
63208
   *  \param new_son The new son. */
52644
63209
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52645
63210
    CTree::ReplaceSon (sons, 7, old_son, new_son);
52646
63211
  }
 
63212
  CSemScope *SemScope () const { return (CSemScope*)this; }
52647
63213
};
52648
63214
 
52649
63215
 
52650
 
#line 52651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63216
#line 63217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52651
63217
} // closed Puma
 
63218
class CCExprResolve;
 
63219
class CExprResolve;
52652
63220
class WinIfExists;
52653
63221
class WinImportHandler;
52654
63222
class WinMacros;
52655
 
class CMatchSyntax;
52656
 
class ExtGnu;
 
63223
class WinAsm;
 
63224
class WinDeclSpecs;
 
63225
class WinMemberExplSpec;
 
63226
class WinTypeKeywords;
 
63227
class WinFriend;
52657
63228
class ExtAC;
52658
63229
class ExtACBuilderCoupling;
52659
63230
class ExtACSyntaxCoupling;
52660
63231
class ExtACTree;
52661
63232
class ExtACKeywords;
52662
 
class WinAsm;
52663
 
class WinDeclSpecs;
52664
 
class WinMemberExplSpec;
52665
 
class WinTypeKeywords;
 
63233
class ExtGnu;
52666
63234
class PragmaOnceUnitState;
52667
63235
class PragmaOnce;
52668
 
class CCExprResolve;
52669
 
class CExprResolve;
 
63236
class CMatchSyntax;
52670
63237
namespace Puma {
52671
63238
 
52672
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63239
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52673
63240
class CT_BreakStmt : public CT_Statement {
52674
 
#line 52675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63241
#line 63242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63242
  friend class ::CCExprResolve;
 
63243
  friend class ::CExprResolve;
52675
63244
  friend class ::WinIfExists;
52676
63245
  friend class ::WinImportHandler;
52677
63246
  friend class ::WinMacros;
52678
 
  friend class ::CMatchSyntax;
52679
 
  friend class ::ExtGnu;
 
63247
  friend class ::WinAsm;
 
63248
  friend class ::WinDeclSpecs;
 
63249
  friend class ::WinMemberExplSpec;
 
63250
  friend class ::WinTypeKeywords;
 
63251
  friend class ::WinFriend;
52680
63252
  friend class ::ExtAC;
52681
63253
  friend class ::ExtACBuilderCoupling;
52682
63254
  friend class ::ExtACSyntaxCoupling;
52683
63255
  friend class ::ExtACTree;
52684
63256
  friend class ::ExtACKeywords;
52685
 
  friend class ::WinAsm;
52686
 
  friend class ::WinDeclSpecs;
52687
 
  friend class ::WinMemberExplSpec;
52688
 
  friend class ::WinTypeKeywords;
 
63257
  friend class ::ExtGnu;
52689
63258
  friend class ::PragmaOnceUnitState;
52690
63259
  friend class ::PragmaOnce;
52691
 
  friend class ::CCExprResolve;
52692
 
  friend class ::CExprResolve;
 
63260
  friend class ::CMatchSyntax;
52693
63261
 
52694
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63262
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52695
63263
 
52696
63264
  CTree *sons[2]; // key, semi_colon
52697
63265
 
52698
63266
public:
52699
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
63267
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
63268
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52700
63269
  static const char *NodeId ();
 
63270
  /** Get the name of the node. Can be compared with NodeId(). */
52701
63271
  const char *NodeName () const { return NodeId (); }
 
63272
  /** Get the number of sons. */
52702
63273
  int Sons () const { return 2; }
 
63274
  /** Get the n-th son.
 
63275
   *  \param n The index of the son.
 
63276
   *  \return The n-th son or NULL. */
52703
63277
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
63278
  /** Replace a son.
 
63279
   *  \param old_son The son to replace.
 
63280
   *  \param new_son The new son. */
52704
63281
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52705
63282
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52706
63283
  }
52707
63284
};
52708
63285
 
52709
63286
 
52710
 
#line 52711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63287
#line 63288 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52711
63288
} // closed Puma
 
63289
class CCExprResolve;
 
63290
class CExprResolve;
52712
63291
class WinIfExists;
52713
63292
class WinImportHandler;
52714
63293
class WinMacros;
52715
 
class CMatchSyntax;
52716
 
class ExtGnu;
 
63294
class WinAsm;
 
63295
class WinDeclSpecs;
 
63296
class WinMemberExplSpec;
 
63297
class WinTypeKeywords;
 
63298
class WinFriend;
52717
63299
class ExtAC;
52718
63300
class ExtACBuilderCoupling;
52719
63301
class ExtACSyntaxCoupling;
52720
63302
class ExtACTree;
52721
63303
class ExtACKeywords;
52722
 
class WinAsm;
52723
 
class WinDeclSpecs;
52724
 
class WinMemberExplSpec;
52725
 
class WinTypeKeywords;
 
63304
class ExtGnu;
52726
63305
class PragmaOnceUnitState;
52727
63306
class PragmaOnce;
52728
 
class CCExprResolve;
52729
 
class CExprResolve;
 
63307
class CMatchSyntax;
52730
63308
namespace Puma {
52731
63309
 
52732
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63310
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52733
63311
class CT_ContinueStmt : public CT_Statement {
52734
 
#line 52735 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63312
#line 63313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63313
  friend class ::CCExprResolve;
 
63314
  friend class ::CExprResolve;
52735
63315
  friend class ::WinIfExists;
52736
63316
  friend class ::WinImportHandler;
52737
63317
  friend class ::WinMacros;
52738
 
  friend class ::CMatchSyntax;
52739
 
  friend class ::ExtGnu;
 
63318
  friend class ::WinAsm;
 
63319
  friend class ::WinDeclSpecs;
 
63320
  friend class ::WinMemberExplSpec;
 
63321
  friend class ::WinTypeKeywords;
 
63322
  friend class ::WinFriend;
52740
63323
  friend class ::ExtAC;
52741
63324
  friend class ::ExtACBuilderCoupling;
52742
63325
  friend class ::ExtACSyntaxCoupling;
52743
63326
  friend class ::ExtACTree;
52744
63327
  friend class ::ExtACKeywords;
52745
 
  friend class ::WinAsm;
52746
 
  friend class ::WinDeclSpecs;
52747
 
  friend class ::WinMemberExplSpec;
52748
 
  friend class ::WinTypeKeywords;
 
63328
  friend class ::ExtGnu;
52749
63329
  friend class ::PragmaOnceUnitState;
52750
63330
  friend class ::PragmaOnce;
52751
 
  friend class ::CCExprResolve;
52752
 
  friend class ::CExprResolve;
 
63331
  friend class ::CMatchSyntax;
52753
63332
 
52754
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63333
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52755
63334
 
52756
63335
  CTree *sons[2]; // key, semi_colon
52757
63336
 
52758
63337
public:
52759
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
63338
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
63339
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52760
63340
  static const char *NodeId ();
 
63341
  /** Get the name of the node. Can be compared with NodeId(). */
52761
63342
  const char *NodeName () const { return NodeId (); }
 
63343
  /** Get the number of sons. */
52762
63344
  int Sons () const { return 2; }
 
63345
  /** Get the n-th son.
 
63346
   *  \param n The index of the son.
 
63347
   *  \return The n-th son or NULL. */
52763
63348
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
63349
  /** Replace a son.
 
63350
   *  \param old_son The son to replace.
 
63351
   *  \param new_son The new son. */
52764
63352
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52765
63353
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52766
63354
  }
52767
63355
};
52768
63356
 
52769
63357
 
52770
 
#line 52771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63358
#line 63359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52771
63359
} // closed Puma
 
63360
class CCExprResolve;
 
63361
class CExprResolve;
52772
63362
class WinIfExists;
52773
63363
class WinImportHandler;
52774
63364
class WinMacros;
52775
 
class CMatchSyntax;
52776
 
class ExtGnu;
 
63365
class WinAsm;
 
63366
class WinDeclSpecs;
 
63367
class WinMemberExplSpec;
 
63368
class WinTypeKeywords;
 
63369
class WinFriend;
52777
63370
class ExtAC;
52778
63371
class ExtACBuilderCoupling;
52779
63372
class ExtACSyntaxCoupling;
52780
63373
class ExtACTree;
52781
63374
class ExtACKeywords;
52782
 
class WinAsm;
52783
 
class WinDeclSpecs;
52784
 
class WinMemberExplSpec;
52785
 
class WinTypeKeywords;
 
63375
class ExtGnu;
52786
63376
class PragmaOnceUnitState;
52787
63377
class PragmaOnce;
52788
 
class CCExprResolve;
52789
 
class CExprResolve;
 
63378
class CMatchSyntax;
52790
63379
namespace Puma {
52791
63380
 
52792
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63381
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52793
63382
class CT_GotoStmt : public CT_Statement {
52794
 
#line 52795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63383
#line 63384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63384
  friend class ::CCExprResolve;
 
63385
  friend class ::CExprResolve;
52795
63386
  friend class ::WinIfExists;
52796
63387
  friend class ::WinImportHandler;
52797
63388
  friend class ::WinMacros;
52798
 
  friend class ::CMatchSyntax;
52799
 
  friend class ::ExtGnu;
 
63389
  friend class ::WinAsm;
 
63390
  friend class ::WinDeclSpecs;
 
63391
  friend class ::WinMemberExplSpec;
 
63392
  friend class ::WinTypeKeywords;
 
63393
  friend class ::WinFriend;
52800
63394
  friend class ::ExtAC;
52801
63395
  friend class ::ExtACBuilderCoupling;
52802
63396
  friend class ::ExtACSyntaxCoupling;
52803
63397
  friend class ::ExtACTree;
52804
63398
  friend class ::ExtACKeywords;
52805
 
  friend class ::WinAsm;
52806
 
  friend class ::WinDeclSpecs;
52807
 
  friend class ::WinMemberExplSpec;
52808
 
  friend class ::WinTypeKeywords;
 
63399
  friend class ::ExtGnu;
52809
63400
  friend class ::PragmaOnceUnitState;
52810
63401
  friend class ::PragmaOnce;
52811
 
  friend class ::CCExprResolve;
52812
 
  friend class ::CExprResolve;
 
63402
  friend class ::CMatchSyntax;
52813
63403
 
52814
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63404
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52815
63405
 
52816
63406
  CTree *sons[3]; // key, label, semi_colon
52817
63407
 
52818
63408
public:
52819
63409
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
52820
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
63410
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
52821
63411
  }
 
63412
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52822
63413
  static const char *NodeId ();
 
63414
  /** Get the name of the node. Can be compared with NodeId(). */
52823
63415
  const char *NodeName () const { return NodeId (); }
 
63416
  /** Get the number of sons. */
52824
63417
  int Sons () const { return 3; }
 
63418
  /** Get the n-th son.
 
63419
   *  \param n The index of the son.
 
63420
   *  \return The n-th son or NULL. */
52825
63421
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52826
63422
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
63423
  /** Replace a son.
 
63424
   *  \param old_son The son to replace.
 
63425
   *  \param new_son The new son. */
52827
63426
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52828
63427
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52829
63428
  }
52830
63429
};
52831
63430
 
52832
63431
 
52833
 
#line 52834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63432
#line 63433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52834
63433
} // closed Puma
 
63434
class CCExprResolve;
 
63435
class CExprResolve;
52835
63436
class WinIfExists;
52836
63437
class WinImportHandler;
52837
63438
class WinMacros;
52838
 
class CMatchSyntax;
52839
 
class ExtGnu;
 
63439
class WinAsm;
 
63440
class WinDeclSpecs;
 
63441
class WinMemberExplSpec;
 
63442
class WinTypeKeywords;
 
63443
class WinFriend;
52840
63444
class ExtAC;
52841
63445
class ExtACBuilderCoupling;
52842
63446
class ExtACSyntaxCoupling;
52843
63447
class ExtACTree;
52844
63448
class ExtACKeywords;
52845
 
class WinAsm;
52846
 
class WinDeclSpecs;
52847
 
class WinMemberExplSpec;
52848
 
class WinTypeKeywords;
 
63449
class ExtGnu;
52849
63450
class PragmaOnceUnitState;
52850
63451
class PragmaOnce;
52851
 
class CCExprResolve;
52852
 
class CExprResolve;
 
63452
class CMatchSyntax;
52853
63453
namespace Puma {
52854
63454
 
52855
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63455
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52856
63456
class CT_ReturnStmt : public CT_Statement {
52857
 
#line 52858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63457
#line 63458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63458
  friend class ::CCExprResolve;
 
63459
  friend class ::CExprResolve;
52858
63460
  friend class ::WinIfExists;
52859
63461
  friend class ::WinImportHandler;
52860
63462
  friend class ::WinMacros;
52861
 
  friend class ::CMatchSyntax;
52862
 
  friend class ::ExtGnu;
 
63463
  friend class ::WinAsm;
 
63464
  friend class ::WinDeclSpecs;
 
63465
  friend class ::WinMemberExplSpec;
 
63466
  friend class ::WinTypeKeywords;
 
63467
  friend class ::WinFriend;
52863
63468
  friend class ::ExtAC;
52864
63469
  friend class ::ExtACBuilderCoupling;
52865
63470
  friend class ::ExtACSyntaxCoupling;
52866
63471
  friend class ::ExtACTree;
52867
63472
  friend class ::ExtACKeywords;
52868
 
  friend class ::WinAsm;
52869
 
  friend class ::WinDeclSpecs;
52870
 
  friend class ::WinMemberExplSpec;
52871
 
  friend class ::WinTypeKeywords;
 
63473
  friend class ::ExtGnu;
52872
63474
  friend class ::PragmaOnceUnitState;
52873
63475
  friend class ::PragmaOnce;
52874
 
  friend class ::CCExprResolve;
52875
 
  friend class ::CExprResolve;
 
63476
  friend class ::CMatchSyntax;
52876
63477
 
52877
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63478
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52878
63479
 
52879
63480
  CTree *sons[3]; // key, expr, semi_colon
52880
63481
 
52881
63482
public:
52882
63483
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
52883
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
63484
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
52884
63485
  }
 
63486
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52885
63487
  static const char *NodeId ();
 
63488
  /** Get the name of the node. Can be compared with NodeId(). */
52886
63489
  const char *NodeName () const { return NodeId (); }
 
63490
  /** Get the number of sons. */
52887
63491
  int Sons () const { return CTree::Sons (sons, 3); }
 
63492
  /** Get the n-th son.
 
63493
   *  \param n The index of the son.
 
63494
   *  \return The n-th son or NULL. */
52888
63495
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52889
63496
  CTree *Expr () const { return sons[1]; }
 
63497
  /** Replace a son.
 
63498
   *  \param old_son The son to replace.
 
63499
   *  \param new_son The new son. */
52890
63500
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52891
63501
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52892
63502
  }
52893
63503
};
52894
63504
 
52895
63505
 
52896
 
#line 52897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63506
#line 63507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52897
63507
} // closed Puma
 
63508
class CCExprResolve;
 
63509
class CExprResolve;
52898
63510
class WinIfExists;
52899
63511
class WinImportHandler;
52900
63512
class WinMacros;
52901
 
class CMatchSyntax;
52902
 
class ExtGnu;
 
63513
class WinAsm;
 
63514
class WinDeclSpecs;
 
63515
class WinMemberExplSpec;
 
63516
class WinTypeKeywords;
 
63517
class WinFriend;
52903
63518
class ExtAC;
52904
63519
class ExtACBuilderCoupling;
52905
63520
class ExtACSyntaxCoupling;
52906
63521
class ExtACTree;
52907
63522
class ExtACKeywords;
52908
 
class WinAsm;
52909
 
class WinDeclSpecs;
52910
 
class WinMemberExplSpec;
52911
 
class WinTypeKeywords;
 
63523
class ExtGnu;
52912
63524
class PragmaOnceUnitState;
52913
63525
class PragmaOnce;
52914
 
class CCExprResolve;
52915
 
class CExprResolve;
 
63526
class CMatchSyntax;
52916
63527
namespace Puma {
52917
63528
 
52918
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63529
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52919
63530
class CT_WhileStmt : public CT_Statement, public CSemScope {
52920
 
#line 52921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63531
#line 63532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63532
  friend class ::CCExprResolve;
 
63533
  friend class ::CExprResolve;
52921
63534
  friend class ::WinIfExists;
52922
63535
  friend class ::WinImportHandler;
52923
63536
  friend class ::WinMacros;
52924
 
  friend class ::CMatchSyntax;
52925
 
  friend class ::ExtGnu;
 
63537
  friend class ::WinAsm;
 
63538
  friend class ::WinDeclSpecs;
 
63539
  friend class ::WinMemberExplSpec;
 
63540
  friend class ::WinTypeKeywords;
 
63541
  friend class ::WinFriend;
52926
63542
  friend class ::ExtAC;
52927
63543
  friend class ::ExtACBuilderCoupling;
52928
63544
  friend class ::ExtACSyntaxCoupling;
52929
63545
  friend class ::ExtACTree;
52930
63546
  friend class ::ExtACKeywords;
52931
 
  friend class ::WinAsm;
52932
 
  friend class ::WinDeclSpecs;
52933
 
  friend class ::WinMemberExplSpec;
52934
 
  friend class ::WinTypeKeywords;
 
63547
  friend class ::ExtGnu;
52935
63548
  friend class ::PragmaOnceUnitState;
52936
63549
  friend class ::PragmaOnce;
52937
 
  friend class ::CCExprResolve;
52938
 
  friend class ::CExprResolve;
 
63550
  friend class ::CMatchSyntax;
52939
63551
 
52940
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63552
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52941
63553
 
52942
63554
  CTree *sons[5]; // key, open, cond, close, stmt
52943
63555
 
52944
63556
public:
52945
63557
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
52946
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
63558
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
63559
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
52947
63560
  }
 
63561
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52948
63562
  static const char *NodeId ();
 
63563
  /** Get the name of the node. Can be compared with NodeId(). */
52949
63564
  const char *NodeName () const { return NodeId (); }
 
63565
  /** Get the number of sons. */
52950
63566
  int Sons () const { return 5; }
 
63567
  /** Get the n-th son.
 
63568
   *  \param n The index of the son.
 
63569
   *  \return The n-th son or NULL. */
52951
63570
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
52952
63571
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
52953
63572
  CTree *Condition () const { return sons[2]; }
 
63573
  /** Replace a son.
 
63574
   *  \param old_son The son to replace.
 
63575
   *  \param new_son The new son. */
52954
63576
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52955
63577
    CTree::ReplaceSon (sons, 5, old_son, new_son);
52956
63578
  }
 
63579
  CSemScope *SemScope () const { return (CSemScope*)this; }
52957
63580
};
52958
63581
 
52959
63582
 
52960
 
#line 52961 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63583
#line 63584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
52961
63584
} // closed Puma
 
63585
class CCExprResolve;
 
63586
class CExprResolve;
52962
63587
class WinIfExists;
52963
63588
class WinImportHandler;
52964
63589
class WinMacros;
52965
 
class CMatchSyntax;
52966
 
class ExtGnu;
 
63590
class WinAsm;
 
63591
class WinDeclSpecs;
 
63592
class WinMemberExplSpec;
 
63593
class WinTypeKeywords;
 
63594
class WinFriend;
52967
63595
class ExtAC;
52968
63596
class ExtACBuilderCoupling;
52969
63597
class ExtACSyntaxCoupling;
52970
63598
class ExtACTree;
52971
63599
class ExtACKeywords;
52972
 
class WinAsm;
52973
 
class WinDeclSpecs;
52974
 
class WinMemberExplSpec;
52975
 
class WinTypeKeywords;
 
63600
class ExtGnu;
52976
63601
class PragmaOnceUnitState;
52977
63602
class PragmaOnce;
52978
 
class CCExprResolve;
52979
 
class CExprResolve;
 
63603
class CMatchSyntax;
52980
63604
namespace Puma {
52981
63605
 
52982
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63606
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52983
63607
class CT_DoStmt : public CT_Statement {
52984
 
#line 52985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63608
#line 63609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63609
  friend class ::CCExprResolve;
 
63610
  friend class ::CExprResolve;
52985
63611
  friend class ::WinIfExists;
52986
63612
  friend class ::WinImportHandler;
52987
63613
  friend class ::WinMacros;
52988
 
  friend class ::CMatchSyntax;
52989
 
  friend class ::ExtGnu;
 
63614
  friend class ::WinAsm;
 
63615
  friend class ::WinDeclSpecs;
 
63616
  friend class ::WinMemberExplSpec;
 
63617
  friend class ::WinTypeKeywords;
 
63618
  friend class ::WinFriend;
52990
63619
  friend class ::ExtAC;
52991
63620
  friend class ::ExtACBuilderCoupling;
52992
63621
  friend class ::ExtACSyntaxCoupling;
52993
63622
  friend class ::ExtACTree;
52994
63623
  friend class ::ExtACKeywords;
52995
 
  friend class ::WinAsm;
52996
 
  friend class ::WinDeclSpecs;
52997
 
  friend class ::WinMemberExplSpec;
52998
 
  friend class ::WinTypeKeywords;
 
63624
  friend class ::ExtGnu;
52999
63625
  friend class ::PragmaOnceUnitState;
53000
63626
  friend class ::PragmaOnce;
53001
 
  friend class ::CCExprResolve;
53002
 
  friend class ::CExprResolve;
 
63627
  friend class ::CMatchSyntax;
53003
63628
 
53004
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63629
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53005
63630
 
53006
63631
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
53007
63632
 
53008
63633
public:
53009
63634
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
53010
63635
             CTree *c, CTree *sc) {
53011
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
53012
 
    sons[5] = c; sons[6] = sc; 
 
63636
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
63637
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
63638
    AddSon (sons[6], sc); 
53013
63639
  }
 
63640
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53014
63641
  static const char *NodeId ();
 
63642
  /** Get the name of the node. Can be compared with NodeId(). */
53015
63643
  const char *NodeName () const { return NodeId (); }
 
63644
  /** Get the number of sons. */
53016
63645
  int Sons () const { return 7; }
 
63646
  /** Get the n-th son.
 
63647
   *  \param n The index of the son.
 
63648
   *  \return The n-th son or NULL. */
53017
63649
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
53018
63650
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
53019
63651
  CTree *Expr () const { return sons[4]; }
 
63652
  /** Replace a son.
 
63653
   *  \param old_son The son to replace.
 
63654
   *  \param new_son The new son. */
53020
63655
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53021
63656
    CTree::ReplaceSon (sons, 7, old_son, new_son);
53022
63657
  }
53023
63658
};
53024
63659
 
53025
63660
 
53026
 
#line 53027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63661
#line 63662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53027
63662
} // closed Puma
 
63663
class CCExprResolve;
 
63664
class CExprResolve;
53028
63665
class WinIfExists;
53029
63666
class WinImportHandler;
53030
63667
class WinMacros;
53031
 
class CMatchSyntax;
53032
 
class ExtGnu;
 
63668
class WinAsm;
 
63669
class WinDeclSpecs;
 
63670
class WinMemberExplSpec;
 
63671
class WinTypeKeywords;
 
63672
class WinFriend;
53033
63673
class ExtAC;
53034
63674
class ExtACBuilderCoupling;
53035
63675
class ExtACSyntaxCoupling;
53036
63676
class ExtACTree;
53037
63677
class ExtACKeywords;
53038
 
class WinAsm;
53039
 
class WinDeclSpecs;
53040
 
class WinMemberExplSpec;
53041
 
class WinTypeKeywords;
 
63678
class ExtGnu;
53042
63679
class PragmaOnceUnitState;
53043
63680
class PragmaOnce;
53044
 
class CCExprResolve;
53045
 
class CExprResolve;
 
63681
class CMatchSyntax;
53046
63682
namespace Puma {
53047
63683
 
53048
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63684
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53049
63685
class CT_ForStmt : public CT_Statement, public CSemScope {
53050
 
#line 53051 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63686
#line 63687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63687
  friend class ::CCExprResolve;
 
63688
  friend class ::CExprResolve;
53051
63689
  friend class ::WinIfExists;
53052
63690
  friend class ::WinImportHandler;
53053
63691
  friend class ::WinMacros;
53054
 
  friend class ::CMatchSyntax;
53055
 
  friend class ::ExtGnu;
 
63692
  friend class ::WinAsm;
 
63693
  friend class ::WinDeclSpecs;
 
63694
  friend class ::WinMemberExplSpec;
 
63695
  friend class ::WinTypeKeywords;
 
63696
  friend class ::WinFriend;
53056
63697
  friend class ::ExtAC;
53057
63698
  friend class ::ExtACBuilderCoupling;
53058
63699
  friend class ::ExtACSyntaxCoupling;
53059
63700
  friend class ::ExtACTree;
53060
63701
  friend class ::ExtACKeywords;
53061
 
  friend class ::WinAsm;
53062
 
  friend class ::WinDeclSpecs;
53063
 
  friend class ::WinMemberExplSpec;
53064
 
  friend class ::WinTypeKeywords;
 
63702
  friend class ::ExtGnu;
53065
63703
  friend class ::PragmaOnceUnitState;
53066
63704
  friend class ::PragmaOnce;
53067
 
  friend class ::CCExprResolve;
53068
 
  friend class ::CExprResolve;
 
63705
  friend class ::CMatchSyntax;
53069
63706
 
53070
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63707
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53071
63708
 
53072
63709
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
53073
63710
 
53074
63711
public:
53075
63712
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
53076
63713
              CTree *e, CTree *c, CTree *stmt) {
53077
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
53078
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
63714
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
63715
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
63716
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
53079
63717
  }
 
63718
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53080
63719
  static const char *NodeId ();
 
63720
  /** Get the name of the node. Can be compared with NodeId(). */
53081
63721
  const char *NodeName () const { return NodeId (); }
 
63722
  /** Get the number of sons. */
53082
63723
  int Sons () const { return CTree::Sons (sons, 8); }
 
63724
  /** Get the n-th son.
 
63725
   *  \param n The index of the son.
 
63726
   *  \return The n-th son or NULL. */
53083
63727
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
53084
63728
  CTree *InitStmt () const { return sons[2]; }
53085
63729
  CTree *Condition () const { return sons[3]; }
53086
63730
  CTree *Expr () const { return sons[5]; }
53087
63731
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
63732
  /** Replace a son.
 
63733
   *  \param old_son The son to replace.
 
63734
   *  \param new_son The new son. */
53088
63735
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53089
63736
    CTree::ReplaceSon (sons, 8, old_son, new_son);
53090
63737
  }
 
63738
  CSemScope *SemScope () const { return (CSemScope*)this; }
53091
63739
};
53092
63740
 
53093
63741
 
53094
 
#line 53095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63742
#line 63743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53095
63743
} // closed Puma
 
63744
class CCExprResolve;
 
63745
class CExprResolve;
53096
63746
class WinIfExists;
53097
63747
class WinImportHandler;
53098
63748
class WinMacros;
53099
 
class CMatchSyntax;
53100
 
class ExtGnu;
 
63749
class WinAsm;
 
63750
class WinDeclSpecs;
 
63751
class WinMemberExplSpec;
 
63752
class WinTypeKeywords;
 
63753
class WinFriend;
53101
63754
class ExtAC;
53102
63755
class ExtACBuilderCoupling;
53103
63756
class ExtACSyntaxCoupling;
53104
63757
class ExtACTree;
53105
63758
class ExtACKeywords;
53106
 
class WinAsm;
53107
 
class WinDeclSpecs;
53108
 
class WinMemberExplSpec;
53109
 
class WinTypeKeywords;
 
63759
class ExtGnu;
53110
63760
class PragmaOnceUnitState;
53111
63761
class PragmaOnce;
53112
 
class CCExprResolve;
53113
 
class CExprResolve;
 
63762
class CMatchSyntax;
53114
63763
namespace Puma {
53115
63764
 
53116
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63765
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53117
63766
class CT_Condition : public CT_Decl, public CSemObject {
53118
 
#line 53119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63767
#line 63768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63768
  friend class ::CCExprResolve;
 
63769
  friend class ::CExprResolve;
53119
63770
  friend class ::WinIfExists;
53120
63771
  friend class ::WinImportHandler;
53121
63772
  friend class ::WinMacros;
53122
 
  friend class ::CMatchSyntax;
53123
 
  friend class ::ExtGnu;
 
63773
  friend class ::WinAsm;
 
63774
  friend class ::WinDeclSpecs;
 
63775
  friend class ::WinMemberExplSpec;
 
63776
  friend class ::WinTypeKeywords;
 
63777
  friend class ::WinFriend;
53124
63778
  friend class ::ExtAC;
53125
63779
  friend class ::ExtACBuilderCoupling;
53126
63780
  friend class ::ExtACSyntaxCoupling;
53127
63781
  friend class ::ExtACTree;
53128
63782
  friend class ::ExtACKeywords;
53129
 
  friend class ::WinAsm;
53130
 
  friend class ::WinDeclSpecs;
53131
 
  friend class ::WinMemberExplSpec;
53132
 
  friend class ::WinTypeKeywords;
 
63783
  friend class ::ExtGnu;
53133
63784
  friend class ::PragmaOnceUnitState;
53134
63785
  friend class ::PragmaOnce;
53135
 
  friend class ::CCExprResolve;
53136
 
  friend class ::CExprResolve;
 
63786
  friend class ::CMatchSyntax;
53137
63787
 
53138
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63788
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53139
63789
 
53140
63790
  CTree *sons[3]; // declspecs, declarator, init
53141
63791
 
53142
63792
public:
53143
63793
  CT_Condition (CTree *dsl, CTree *d) {
53144
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
63794
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
53145
63795
  }
 
63796
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53146
63797
  static const char *NodeId ();
 
63798
  /** Get the name of the node. Can be compared with NodeId(). */
53147
63799
  const char *NodeName () const { return NodeId (); }
 
63800
  /** Get the number of sons. */
53148
63801
  int Sons () const { return CTree::Sons (sons, 3); }
 
63802
  /** Get the n-th son.
 
63803
   *  \param n The index of the son.
 
63804
   *  \return The n-th son or NULL. */
53149
63805
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
53150
63806
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
53151
63807
  CTree *Declarator () const { return sons[1]; }
53152
63808
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
53153
63809
  CSemObject *SemObject () const { return (CSemObject*)this; }
53154
 
  void Initializer (CTree *i) { sons[2] = i; }
 
63810
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
63811
  /** Replace a son.
 
63812
   *  \param old_son The son to replace.
 
63813
   *  \param new_son The new son. */
53155
63814
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53156
63815
    CTree::ReplaceSon (sons, 3, old_son, new_son);
53157
63816
  }
53164
63823
/*****************************************************************************/
53165
63824
 
53166
63825
 
53167
 
#line 53168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63826
#line 63827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53168
63827
} // closed Puma
 
63828
class CCExprResolve;
 
63829
class CExprResolve;
53169
63830
class WinIfExists;
53170
63831
class WinImportHandler;
53171
63832
class WinMacros;
53172
 
class CMatchSyntax;
53173
 
class ExtGnu;
 
63833
class WinAsm;
 
63834
class WinDeclSpecs;
 
63835
class WinMemberExplSpec;
 
63836
class WinTypeKeywords;
 
63837
class WinFriend;
53174
63838
class ExtAC;
53175
63839
class ExtACBuilderCoupling;
53176
63840
class ExtACSyntaxCoupling;
53177
63841
class ExtACTree;
53178
63842
class ExtACKeywords;
53179
 
class WinAsm;
53180
 
class WinDeclSpecs;
53181
 
class WinMemberExplSpec;
53182
 
class WinTypeKeywords;
 
63843
class ExtGnu;
53183
63844
class PragmaOnceUnitState;
53184
63845
class PragmaOnce;
53185
 
class CCExprResolve;
53186
 
class CExprResolve;
53187
 
namespace Puma {
53188
 
 
53189
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63846
class CMatchSyntax;
 
63847
namespace Puma {
 
63848
 
 
63849
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63850
 
 
63851
#line 63852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63852
} // closed Puma
 
63853
 
 
63854
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
63855
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
63856
#include "ExtACTree.ah"
 
63857
#endif
 
63858
namespace Puma {
 
63859
 
 
63860
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53190
63861
class CT_ClassDef : public CT_Decl, public CSemObject {
53191
 
#line 53192 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63862
#line 63863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63863
  friend class ::CCExprResolve;
 
63864
  friend class ::CExprResolve;
53192
63865
  friend class ::WinIfExists;
53193
63866
  friend class ::WinImportHandler;
53194
63867
  friend class ::WinMacros;
53195
 
  friend class ::CMatchSyntax;
53196
 
  friend class ::ExtGnu;
 
63868
  friend class ::WinAsm;
 
63869
  friend class ::WinDeclSpecs;
 
63870
  friend class ::WinMemberExplSpec;
 
63871
  friend class ::WinTypeKeywords;
 
63872
  friend class ::WinFriend;
53197
63873
  friend class ::ExtAC;
53198
63874
  friend class ::ExtACBuilderCoupling;
53199
63875
  friend class ::ExtACSyntaxCoupling;
53200
63876
  friend class ::ExtACTree;
53201
63877
  friend class ::ExtACKeywords;
53202
 
  friend class ::WinAsm;
53203
 
  friend class ::WinDeclSpecs;
53204
 
  friend class ::WinMemberExplSpec;
53205
 
  friend class ::WinTypeKeywords;
 
63878
  friend class ::ExtGnu;
53206
63879
  friend class ::PragmaOnceUnitState;
53207
63880
  friend class ::PragmaOnce;
53208
 
  friend class ::CCExprResolve;
53209
 
  friend class ::CExprResolve;
 
63881
  friend class ::CMatchSyntax;
53210
63882
 
53211
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63883
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53212
63884
 
53213
63885
   
53214
 
#line 53215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63886
#line 63887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53215
63887
 
53216
63888
  struct __ac_wrapper_sons {
53217
63889
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
53226
63898
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
53227
63899
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
53228
63900
  } sons
53229
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63901
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53230
63902
 
53231
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63903
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53232
63904
; // key, name, bases, members
53233
63905
  CTree *obj_decl;
53234
63906
 
53235
63907
public:
53236
63908
  
53237
 
#line 53238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
53238
 
 
53239
 
 
53240
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
53241
 
  typedef void Result;
53242
 
  typedef ::Puma::CT_ClassDef That;
53243
 
  typedef ::Puma::CT_ClassDef Target;
53244
 
  static const int JPID = 4;
 
63909
#line 63910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63910
 
 
63911
 
 
63912
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
63913
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
63914
  typedef TResult Result;
 
63915
  typedef TThat   That;
 
63916
  typedef TTarget Target;
 
63917
  enum { ARGS = TArgs::ARGS };
 
63918
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
63919
  static const int JPID = 55;
53245
63920
  static const AC::JPType JPTYPE = (AC::JPType)16;
53246
63921
  struct Res {
53247
63922
    typedef void Type;
53248
63923
    typedef void ReferredType;
53249
63924
  };
53250
 
  enum { ARGS = 3 };
53251
 
  template <int I, int DUMMY = 0> struct Arg {
53252
 
    typedef void Type;
53253
 
    typedef void ReferredType;
53254
 
  };
53255
 
  template <int DUMMY> struct Arg<0, DUMMY> {
53256
 
    typedef ::Puma::CTree * Type;
53257
 
    typedef ::Puma::CTree * ReferredType;
53258
 
  };
53259
 
  template <int DUMMY> struct Arg<1, DUMMY> {
53260
 
    typedef ::Puma::CTree * Type;
53261
 
    typedef ::Puma::CTree * ReferredType;
53262
 
  };
53263
 
  template <int DUMMY> struct Arg<2, DUMMY> {
53264
 
    typedef ::Puma::CTree * Type;
53265
 
    typedef ::Puma::CTree * ReferredType;
53266
 
  };
53267
63925
 
53268
63926
  That *_that;
53269
63927
 
53272
63930
};
53273
63931
 
53274
63932
 
53275
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63933
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53276
63934
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
53277
 
#line 53278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
63935
#line 63936 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53278
63936
{
53279
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
53280
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
53281
 
this->__exec_old_C1(arg0, arg1, arg2);
53282
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
53283
 
 
 
63937
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TLE > > > > __TJP;
 
63938
    __TJP tjp;
 
63939
  tjp._that =  (__TJP::That*)this;
 
63940
    this->__exec_old_C1(arg0, arg1, arg2);
 
63941
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
63942
  
53284
63943
}
53285
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
53286
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63944
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
63945
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53287
63946
{
53288
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
63947
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
63948
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
53289
63949
  }
 
63950
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53290
63951
  static const char *NodeId ();
 
63952
  /** Get the name of the node. Can be compared with NodeId(). */
53291
63953
  const char *NodeName () const { return NodeId (); }
 
63954
  /** Get the number of sons. */
53292
63955
  int Sons () const { return CTree::Sons (sons, 4); }
 
63956
  /** Get the n-th son.
 
63957
   *  \param n The index of the son.
 
63958
   *  \return The n-th son or NULL. */
53293
63959
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
53294
63960
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
53295
63961
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
53296
63962
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
53297
63963
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
53298
63964
  CSemObject *SemObject () const { return (CSemObject*)this; }
53299
 
  void Members (CTree *m) { sons[3] = m; }
53300
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
53301
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
63965
  void Members (CTree *m) { AddSon (sons[3], m); }
 
63966
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
63967
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
63968
  /** Replace a son.
 
63969
   *  \param old_son The son to replace.
 
63970
   *  \param new_son The new son. */
53302
63971
  void ReplaceSon (CTree *old_son, CTree *new_son) {
53303
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
53304
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
63972
    CTree::ReplaceSon (sons, 4, old_son, new_son);
53305
63973
  }
53306
63974
   private:
53307
63975
 
53308
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
53309
 
 CTree * _intro_members ;
 
63976
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
63977
 Puma :: CTree * _intro_members ;
 
63978
Puma :: CTree * _base_intros ;
53310
63979
public :
53311
 
CTree * IntroMembers ( ) const { return _intro_members ; }
53312
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
53313
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53314
 
 
53315
 
#line 53316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
53316
 
 
53317
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
53318
 
  typedef void Result;
53319
 
  typedef ::Puma::CT_ClassDef That;
53320
 
  typedef ::Puma::CT_ClassDef Target;
53321
 
  static const int JPID = 4;
 
63980
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
63981
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
63982
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
63983
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
63984
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63985
 
 
63986
#line 63987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
63987
 
 
63988
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
63989
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
63990
  typedef TResult Result;
 
63991
  typedef TThat   That;
 
63992
  typedef TTarget Target;
 
63993
  enum { ARGS = TArgs::ARGS };
 
63994
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
63995
  static const int JPID = 6315;
53322
63996
  static const AC::JPType JPTYPE = (AC::JPType)16;
53323
63997
  struct Res {
53324
63998
    typedef void Type;
53325
63999
    typedef void ReferredType;
53326
64000
  };
53327
 
  enum { ARGS = 1 };
53328
 
  template <int I, int DUMMY = 0> struct Arg {
53329
 
    typedef void Type;
53330
 
    typedef void ReferredType;
53331
 
  };
53332
 
  template <int DUMMY> struct Arg<0, DUMMY> {
53333
 
    typedef const ::Puma::CT_ClassDef & Type;
53334
 
    typedef const ::Puma::CT_ClassDef ReferredType;
53335
 
  };
53336
64001
 
53337
64002
  That *_that;
53338
64003
 
53341
64006
};
53342
64007
 
53343
64008
 
53344
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64009
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53345
64010
 
53346
 
#line 53347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64011
#line 64012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53347
64012
 
53348
64013
public:
53349
 
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members) {
53350
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
53351
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
53352
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
64014
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members), _base_intros (arg0._base_intros) {
 
64015
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
64016
  __TJP tjp;
 
64017
  tjp._that =  (__TJP::That*)this;
 
64018
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
53353
64019
 
53354
64020
}
53355
64021
 
53356
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53357
 
 
53358
 
#line 53359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
53359
 
 
53360
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
53361
 
  typedef void Result;
53362
 
  typedef ::Puma::CT_ClassDef That;
53363
 
  typedef ::Puma::CT_ClassDef Target;
53364
 
  static const int JPID = 4;
 
64022
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64023
 
 
64024
#line 64025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64025
 
 
64026
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
64027
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
64028
  typedef TResult Result;
 
64029
  typedef TThat   That;
 
64030
  typedef TTarget Target;
 
64031
  enum { ARGS = TArgs::ARGS };
 
64032
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
64033
  static const int JPID = 6313;
53365
64034
  static const AC::JPType JPTYPE = (AC::JPType)32;
53366
64035
  struct Res {
53367
64036
    typedef void Type;
53368
64037
    typedef void ReferredType;
53369
64038
  };
53370
 
  enum { ARGS = 0 };
53371
 
  template <int I, int DUMMY = 0> struct Arg {
53372
 
    typedef void Type;
53373
 
    typedef void ReferredType;
53374
 
  };
53375
64039
 
53376
64040
  That *_that;
53377
64041
 
53380
64044
};
53381
64045
 
53382
64046
 
53383
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64047
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53384
64048
 
53385
 
#line 53386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64049
#line 64050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53386
64050
 
53387
64051
public:
53388
64052
inline ~CT_ClassDef () {
53389
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
53390
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
53391
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
64053
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
64054
  __TJP tjp;
 
64055
  tjp._that =  (__TJP::That*)this;
 
64056
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
53392
64057
 
53393
64058
}
53394
64059
 
53395
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64060
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53396
64061
};
53397
64062
      
53398
64063
 
53399
 
#line 53400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64064
#line 64065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53400
64065
} // closed Puma
 
64066
class CCExprResolve;
 
64067
class CExprResolve;
53401
64068
class WinIfExists;
53402
64069
class WinImportHandler;
53403
64070
class WinMacros;
53404
 
class CMatchSyntax;
53405
 
class ExtGnu;
 
64071
class WinAsm;
 
64072
class WinDeclSpecs;
 
64073
class WinMemberExplSpec;
 
64074
class WinTypeKeywords;
 
64075
class WinFriend;
53406
64076
class ExtAC;
53407
64077
class ExtACBuilderCoupling;
53408
64078
class ExtACSyntaxCoupling;
53409
64079
class ExtACTree;
53410
64080
class ExtACKeywords;
53411
 
class WinAsm;
53412
 
class WinDeclSpecs;
53413
 
class WinMemberExplSpec;
53414
 
class WinTypeKeywords;
 
64081
class ExtGnu;
53415
64082
class PragmaOnceUnitState;
53416
64083
class PragmaOnce;
53417
 
class CCExprResolve;
53418
 
class CExprResolve;
 
64084
class CMatchSyntax;
53419
64085
namespace Puma {
53420
64086
 
53421
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64087
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53422
64088
class CT_UnionDef : public CT_ClassDef {
53423
 
#line 53424 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64089
#line 64090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64090
  friend class ::CCExprResolve;
 
64091
  friend class ::CExprResolve;
53424
64092
  friend class ::WinIfExists;
53425
64093
  friend class ::WinImportHandler;
53426
64094
  friend class ::WinMacros;
53427
 
  friend class ::CMatchSyntax;
53428
 
  friend class ::ExtGnu;
 
64095
  friend class ::WinAsm;
 
64096
  friend class ::WinDeclSpecs;
 
64097
  friend class ::WinMemberExplSpec;
 
64098
  friend class ::WinTypeKeywords;
 
64099
  friend class ::WinFriend;
53429
64100
  friend class ::ExtAC;
53430
64101
  friend class ::ExtACBuilderCoupling;
53431
64102
  friend class ::ExtACSyntaxCoupling;
53432
64103
  friend class ::ExtACTree;
53433
64104
  friend class ::ExtACKeywords;
53434
 
  friend class ::WinAsm;
53435
 
  friend class ::WinDeclSpecs;
53436
 
  friend class ::WinMemberExplSpec;
53437
 
  friend class ::WinTypeKeywords;
 
64105
  friend class ::ExtGnu;
53438
64106
  friend class ::PragmaOnceUnitState;
53439
64107
  friend class ::PragmaOnce;
53440
 
  friend class ::CCExprResolve;
53441
 
  friend class ::CExprResolve;
 
64108
  friend class ::CMatchSyntax;
53442
64109
 
53443
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64110
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53444
64111
 
53445
64112
public:
53446
64113
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
53447
64114
  static const char *NodeId ();
 
64115
  /** Get the name of the node. Can be compared with NodeId(). */
53448
64116
  const char *NodeName () const { return NodeId (); }
53449
64117
};
53450
64118
      
53451
64119
 
53452
 
#line 53453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64120
#line 64121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53453
64121
} // closed Puma
 
64122
class CCExprResolve;
 
64123
class CExprResolve;
53454
64124
class WinIfExists;
53455
64125
class WinImportHandler;
53456
64126
class WinMacros;
53457
 
class CMatchSyntax;
53458
 
class ExtGnu;
 
64127
class WinAsm;
 
64128
class WinDeclSpecs;
 
64129
class WinMemberExplSpec;
 
64130
class WinTypeKeywords;
 
64131
class WinFriend;
53459
64132
class ExtAC;
53460
64133
class ExtACBuilderCoupling;
53461
64134
class ExtACSyntaxCoupling;
53462
64135
class ExtACTree;
53463
64136
class ExtACKeywords;
53464
 
class WinAsm;
53465
 
class WinDeclSpecs;
53466
 
class WinMemberExplSpec;
53467
 
class WinTypeKeywords;
 
64137
class ExtGnu;
53468
64138
class PragmaOnceUnitState;
53469
64139
class PragmaOnce;
53470
 
class CCExprResolve;
53471
 
class CExprResolve;
 
64140
class CMatchSyntax;
53472
64141
namespace Puma {
53473
64142
 
53474
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64143
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53475
64144
class CT_MembList : public CT_DeclList, public CSemScope {
53476
 
#line 53477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64145
#line 64146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64146
  friend class ::CCExprResolve;
 
64147
  friend class ::CExprResolve;
53477
64148
  friend class ::WinIfExists;
53478
64149
  friend class ::WinImportHandler;
53479
64150
  friend class ::WinMacros;
53480
 
  friend class ::CMatchSyntax;
53481
 
  friend class ::ExtGnu;
 
64151
  friend class ::WinAsm;
 
64152
  friend class ::WinDeclSpecs;
 
64153
  friend class ::WinMemberExplSpec;
 
64154
  friend class ::WinTypeKeywords;
 
64155
  friend class ::WinFriend;
53482
64156
  friend class ::ExtAC;
53483
64157
  friend class ::ExtACBuilderCoupling;
53484
64158
  friend class ::ExtACSyntaxCoupling;
53485
64159
  friend class ::ExtACTree;
53486
64160
  friend class ::ExtACKeywords;
53487
 
  friend class ::WinAsm;
53488
 
  friend class ::WinDeclSpecs;
53489
 
  friend class ::WinMemberExplSpec;
53490
 
  friend class ::WinTypeKeywords;
 
64161
  friend class ::ExtGnu;
53491
64162
  friend class ::PragmaOnceUnitState;
53492
64163
  friend class ::PragmaOnce;
53493
 
  friend class ::CCExprResolve;
53494
 
  friend class ::CExprResolve;
 
64164
  friend class ::CMatchSyntax;
53495
64165
 
53496
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64166
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53497
64167
 
53498
64168
public:
53499
64169
  CT_MembList (int size = 10, int incr = 10) : 
53500
64170
    CT_DeclList (size, incr) {}
 
64171
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53501
64172
  static const char *NodeId ();
 
64173
  /** Get the name of the node. Can be compared with NodeId(). */
53502
64174
  const char *NodeName () const { return NodeId (); }
 
64175
  CSemScope *SemScope () const { return (CSemScope*)this; }
53503
64176
};
53504
64177
 
53505
64178
 
53506
 
#line 53507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64179
#line 64180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53507
64180
} // closed Puma
 
64181
class CCExprResolve;
 
64182
class CExprResolve;
53508
64183
class WinIfExists;
53509
64184
class WinImportHandler;
53510
64185
class WinMacros;
53511
 
class CMatchSyntax;
53512
 
class ExtGnu;
 
64186
class WinAsm;
 
64187
class WinDeclSpecs;
 
64188
class WinMemberExplSpec;
 
64189
class WinTypeKeywords;
 
64190
class WinFriend;
53513
64191
class ExtAC;
53514
64192
class ExtACBuilderCoupling;
53515
64193
class ExtACSyntaxCoupling;
53516
64194
class ExtACTree;
53517
64195
class ExtACKeywords;
53518
 
class WinAsm;
53519
 
class WinDeclSpecs;
53520
 
class WinMemberExplSpec;
53521
 
class WinTypeKeywords;
 
64196
class ExtGnu;
53522
64197
class PragmaOnceUnitState;
53523
64198
class PragmaOnce;
53524
 
class CCExprResolve;
53525
 
class CExprResolve;
 
64199
class CMatchSyntax;
53526
64200
namespace Puma {
53527
64201
 
53528
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64202
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53529
64203
class CT_MembInitList : public CT_List, public CSemScope {
53530
 
#line 53531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64204
#line 64205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64205
  friend class ::CCExprResolve;
 
64206
  friend class ::CExprResolve;
53531
64207
  friend class ::WinIfExists;
53532
64208
  friend class ::WinImportHandler;
53533
64209
  friend class ::WinMacros;
53534
 
  friend class ::CMatchSyntax;
53535
 
  friend class ::ExtGnu;
 
64210
  friend class ::WinAsm;
 
64211
  friend class ::WinDeclSpecs;
 
64212
  friend class ::WinMemberExplSpec;
 
64213
  friend class ::WinTypeKeywords;
 
64214
  friend class ::WinFriend;
53536
64215
  friend class ::ExtAC;
53537
64216
  friend class ::ExtACBuilderCoupling;
53538
64217
  friend class ::ExtACSyntaxCoupling;
53539
64218
  friend class ::ExtACTree;
53540
64219
  friend class ::ExtACKeywords;
53541
 
  friend class ::WinAsm;
53542
 
  friend class ::WinDeclSpecs;
53543
 
  friend class ::WinMemberExplSpec;
53544
 
  friend class ::WinTypeKeywords;
 
64220
  friend class ::ExtGnu;
53545
64221
  friend class ::PragmaOnceUnitState;
53546
64222
  friend class ::PragmaOnce;
53547
 
  friend class ::CCExprResolve;
53548
 
  friend class ::CExprResolve;
 
64223
  friend class ::CMatchSyntax;
53549
64224
 
53550
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64225
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53551
64226
 
53552
64227
public:
53553
64228
  CT_MembInitList (int size = 2) : 
53554
64229
    CT_List (size, 2, CT_List::OPEN) {}
53555
64230
  static const char *NodeId ();
 
64231
  /** Get the name of the node. Can be compared with NodeId(). */
53556
64232
  const char *NodeName () const { return NodeId (); }
 
64233
  CSemScope *SemScope () const { return (CSemScope*)this; }
53557
64234
};
53558
64235
 
53559
64236
 
53560
 
#line 53561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64237
#line 64238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53561
64238
} // closed Puma
 
64239
class CCExprResolve;
 
64240
class CExprResolve;
53562
64241
class WinIfExists;
53563
64242
class WinImportHandler;
53564
64243
class WinMacros;
53565
 
class CMatchSyntax;
53566
 
class ExtGnu;
 
64244
class WinAsm;
 
64245
class WinDeclSpecs;
 
64246
class WinMemberExplSpec;
 
64247
class WinTypeKeywords;
 
64248
class WinFriend;
53567
64249
class ExtAC;
53568
64250
class ExtACBuilderCoupling;
53569
64251
class ExtACSyntaxCoupling;
53570
64252
class ExtACTree;
53571
64253
class ExtACKeywords;
53572
 
class WinAsm;
53573
 
class WinDeclSpecs;
53574
 
class WinMemberExplSpec;
53575
 
class WinTypeKeywords;
 
64254
class ExtGnu;
53576
64255
class PragmaOnceUnitState;
53577
64256
class PragmaOnce;
53578
 
class CCExprResolve;
53579
 
class CExprResolve;
53580
 
namespace Puma {
53581
 
 
53582
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64257
class CMatchSyntax;
 
64258
namespace Puma {
 
64259
 
 
64260
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64261
 
 
64262
#line 64263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64263
} // closed Puma
 
64264
 
 
64265
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
64266
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
64267
#include "CCExprResolveH.ah"
 
64268
#endif
 
64269
namespace Puma {
 
64270
 
 
64271
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64272
 
 
64273
#line 64274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64274
} // closed Puma
 
64275
 
 
64276
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
64277
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
64278
#include "CExprResolveH.ah"
 
64279
#endif
 
64280
namespace Puma {
 
64281
 
 
64282
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53583
64283
class CT_MembInit : public CT_Expression, public CSemObject {
53584
 
#line 53585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64284
#line 64285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64285
  friend class ::CCExprResolve;
 
64286
  friend class ::CExprResolve;
53585
64287
  friend class ::WinIfExists;
53586
64288
  friend class ::WinImportHandler;
53587
64289
  friend class ::WinMacros;
53588
 
  friend class ::CMatchSyntax;
53589
 
  friend class ::ExtGnu;
 
64290
  friend class ::WinAsm;
 
64291
  friend class ::WinDeclSpecs;
 
64292
  friend class ::WinMemberExplSpec;
 
64293
  friend class ::WinTypeKeywords;
 
64294
  friend class ::WinFriend;
53590
64295
  friend class ::ExtAC;
53591
64296
  friend class ::ExtACBuilderCoupling;
53592
64297
  friend class ::ExtACSyntaxCoupling;
53593
64298
  friend class ::ExtACTree;
53594
64299
  friend class ::ExtACKeywords;
53595
 
  friend class ::WinAsm;
53596
 
  friend class ::WinDeclSpecs;
53597
 
  friend class ::WinMemberExplSpec;
53598
 
  friend class ::WinTypeKeywords;
 
64300
  friend class ::ExtGnu;
53599
64301
  friend class ::PragmaOnceUnitState;
53600
64302
  friend class ::PragmaOnce;
53601
 
  friend class ::CCExprResolve;
53602
 
  friend class ::CExprResolve;
 
64303
  friend class ::CMatchSyntax;
53603
64304
 
53604
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64305
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53605
64306
 
53606
64307
  CTree *sons[2]; // name, init
53607
64308
 
53608
64309
public:
53609
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
64310
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
64311
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53610
64312
  static const char *NodeId ();
 
64313
  /** Get the name of the node. Can be compared with NodeId(). */
53611
64314
  const char *NodeName () const { return NodeId (); }
 
64315
  /** Get the number of sons. */
53612
64316
  int Sons () const { return 2; }
 
64317
  /** Get the n-th son.
 
64318
   *  \param n The index of the son.
 
64319
   *  \return The n-th son or NULL. */
53613
64320
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
64321
  /** Replace a son.
 
64322
   *  \param old_son The son to replace.
 
64323
   *  \param new_son The new son. */
53614
64324
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53615
64325
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53616
64326
  }
53620
64330
   private:
53621
64331
  typedef CT_MembInit CCExprResolveExpr;
53622
64332
 
53623
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
64333
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53624
64334
 public :
53625
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
64335
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53626
64336
  typedef CT_MembInit CExprResolveExpr;
53627
64337
 
53628
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
64338
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53629
64339
 public :
53630
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53631
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64340
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
64341
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53632
64342
};
53633
64343
 
53634
64344
 
53635
 
#line 53636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64345
#line 64346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53636
64346
} // closed Puma
 
64347
class CCExprResolve;
 
64348
class CExprResolve;
53637
64349
class WinIfExists;
53638
64350
class WinImportHandler;
53639
64351
class WinMacros;
53640
 
class CMatchSyntax;
53641
 
class ExtGnu;
 
64352
class WinAsm;
 
64353
class WinDeclSpecs;
 
64354
class WinMemberExplSpec;
 
64355
class WinTypeKeywords;
 
64356
class WinFriend;
53642
64357
class ExtAC;
53643
64358
class ExtACBuilderCoupling;
53644
64359
class ExtACSyntaxCoupling;
53645
64360
class ExtACTree;
53646
64361
class ExtACKeywords;
53647
 
class WinAsm;
53648
 
class WinDeclSpecs;
53649
 
class WinMemberExplSpec;
53650
 
class WinTypeKeywords;
 
64362
class ExtGnu;
53651
64363
class PragmaOnceUnitState;
53652
64364
class PragmaOnce;
53653
 
class CCExprResolve;
53654
 
class CExprResolve;
 
64365
class CMatchSyntax;
53655
64366
namespace Puma {
53656
64367
 
53657
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64368
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53658
64369
class CT_BaseSpecList : public CT_List {
53659
 
#line 53660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64370
#line 64371 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64371
  friend class ::CCExprResolve;
 
64372
  friend class ::CExprResolve;
53660
64373
  friend class ::WinIfExists;
53661
64374
  friend class ::WinImportHandler;
53662
64375
  friend class ::WinMacros;
53663
 
  friend class ::CMatchSyntax;
53664
 
  friend class ::ExtGnu;
 
64376
  friend class ::WinAsm;
 
64377
  friend class ::WinDeclSpecs;
 
64378
  friend class ::WinMemberExplSpec;
 
64379
  friend class ::WinTypeKeywords;
 
64380
  friend class ::WinFriend;
53665
64381
  friend class ::ExtAC;
53666
64382
  friend class ::ExtACBuilderCoupling;
53667
64383
  friend class ::ExtACSyntaxCoupling;
53668
64384
  friend class ::ExtACTree;
53669
64385
  friend class ::ExtACKeywords;
53670
 
  friend class ::WinAsm;
53671
 
  friend class ::WinDeclSpecs;
53672
 
  friend class ::WinMemberExplSpec;
53673
 
  friend class ::WinTypeKeywords;
 
64386
  friend class ::ExtGnu;
53674
64387
  friend class ::PragmaOnceUnitState;
53675
64388
  friend class ::PragmaOnce;
53676
 
  friend class ::CCExprResolve;
53677
 
  friend class ::CExprResolve;
 
64389
  friend class ::CMatchSyntax;
53678
64390
 
53679
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64391
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53680
64392
 
53681
64393
public:
53682
64394
  CT_BaseSpecList (int size = 2) : 
53683
64395
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
64396
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53684
64397
  static const char *NodeId ();
 
64398
  /** Get the name of the node. Can be compared with NodeId(). */
53685
64399
  const char *NodeName () const { return NodeId (); }
53686
64400
};
53687
64401
 
53688
64402
 
53689
 
#line 53690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64403
#line 64404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53690
64404
} // closed Puma
 
64405
class CCExprResolve;
 
64406
class CExprResolve;
53691
64407
class WinIfExists;
53692
64408
class WinImportHandler;
53693
64409
class WinMacros;
53694
 
class CMatchSyntax;
53695
 
class ExtGnu;
 
64410
class WinAsm;
 
64411
class WinDeclSpecs;
 
64412
class WinMemberExplSpec;
 
64413
class WinTypeKeywords;
 
64414
class WinFriend;
53696
64415
class ExtAC;
53697
64416
class ExtACBuilderCoupling;
53698
64417
class ExtACSyntaxCoupling;
53699
64418
class ExtACTree;
53700
64419
class ExtACKeywords;
53701
 
class WinAsm;
53702
 
class WinDeclSpecs;
53703
 
class WinMemberExplSpec;
53704
 
class WinTypeKeywords;
 
64420
class ExtGnu;
53705
64421
class PragmaOnceUnitState;
53706
64422
class PragmaOnce;
53707
 
class CCExprResolve;
53708
 
class CExprResolve;
 
64423
class CMatchSyntax;
53709
64424
namespace Puma {
53710
64425
 
53711
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64426
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53712
64427
class CT_AccessSpec : public CTree {
53713
 
#line 53714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64428
#line 64429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64429
  friend class ::CCExprResolve;
 
64430
  friend class ::CExprResolve;
53714
64431
  friend class ::WinIfExists;
53715
64432
  friend class ::WinImportHandler;
53716
64433
  friend class ::WinMacros;
53717
 
  friend class ::CMatchSyntax;
53718
 
  friend class ::ExtGnu;
 
64434
  friend class ::WinAsm;
 
64435
  friend class ::WinDeclSpecs;
 
64436
  friend class ::WinMemberExplSpec;
 
64437
  friend class ::WinTypeKeywords;
 
64438
  friend class ::WinFriend;
53719
64439
  friend class ::ExtAC;
53720
64440
  friend class ::ExtACBuilderCoupling;
53721
64441
  friend class ::ExtACSyntaxCoupling;
53722
64442
  friend class ::ExtACTree;
53723
64443
  friend class ::ExtACKeywords;
53724
 
  friend class ::WinAsm;
53725
 
  friend class ::WinDeclSpecs;
53726
 
  friend class ::WinMemberExplSpec;
53727
 
  friend class ::WinTypeKeywords;
 
64444
  friend class ::ExtGnu;
53728
64445
  friend class ::PragmaOnceUnitState;
53729
64446
  friend class ::PragmaOnce;
53730
 
  friend class ::CCExprResolve;
53731
 
  friend class ::CExprResolve;
 
64447
  friend class ::CMatchSyntax;
53732
64448
 
53733
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64449
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53734
64450
 
53735
64451
  CTree *sons[2]; // access, colon
53736
64452
 
53737
64453
public:
53738
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
64454
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
64455
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53739
64456
  static const char *NodeId ();
 
64457
  /** Get the name of the node. Can be compared with NodeId(). */
53740
64458
  const char *NodeName () const { return NodeId (); }
 
64459
  /** Get the number of sons. */
53741
64460
  int Sons () const { return 2; }
 
64461
  /** Get the n-th son.
 
64462
   *  \param n The index of the son.
 
64463
   *  \return The n-th son or NULL. */
53742
64464
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
53743
64465
  int Access () const { return sons[0]->token ()->type (); }
 
64466
  /** Replace a son.
 
64467
   *  \param old_son The son to replace.
 
64468
   *  \param new_son The new son. */
53744
64469
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53745
64470
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53746
64471
  }
53747
64472
};
53748
64473
 
53749
64474
 
53750
 
#line 53751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64475
#line 64476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53751
64476
} // closed Puma
 
64477
class CCExprResolve;
 
64478
class CExprResolve;
53752
64479
class WinIfExists;
53753
64480
class WinImportHandler;
53754
64481
class WinMacros;
53755
 
class CMatchSyntax;
53756
 
class ExtGnu;
 
64482
class WinAsm;
 
64483
class WinDeclSpecs;
 
64484
class WinMemberExplSpec;
 
64485
class WinTypeKeywords;
 
64486
class WinFriend;
53757
64487
class ExtAC;
53758
64488
class ExtACBuilderCoupling;
53759
64489
class ExtACSyntaxCoupling;
53760
64490
class ExtACTree;
53761
64491
class ExtACKeywords;
53762
 
class WinAsm;
53763
 
class WinDeclSpecs;
53764
 
class WinMemberExplSpec;
53765
 
class WinTypeKeywords;
 
64492
class ExtGnu;
53766
64493
class PragmaOnceUnitState;
53767
64494
class PragmaOnce;
53768
 
class CCExprResolve;
53769
 
class CExprResolve;
 
64495
class CMatchSyntax;
53770
64496
namespace Puma {
53771
64497
 
53772
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64498
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53773
64499
class CT_BaseSpec : public CTree {
53774
 
#line 53775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64500
#line 64501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64501
  friend class ::CCExprResolve;
 
64502
  friend class ::CExprResolve;
53775
64503
  friend class ::WinIfExists;
53776
64504
  friend class ::WinImportHandler;
53777
64505
  friend class ::WinMacros;
53778
 
  friend class ::CMatchSyntax;
53779
 
  friend class ::ExtGnu;
 
64506
  friend class ::WinAsm;
 
64507
  friend class ::WinDeclSpecs;
 
64508
  friend class ::WinMemberExplSpec;
 
64509
  friend class ::WinTypeKeywords;
 
64510
  friend class ::WinFriend;
53780
64511
  friend class ::ExtAC;
53781
64512
  friend class ::ExtACBuilderCoupling;
53782
64513
  friend class ::ExtACSyntaxCoupling;
53783
64514
  friend class ::ExtACTree;
53784
64515
  friend class ::ExtACKeywords;
53785
 
  friend class ::WinAsm;
53786
 
  friend class ::WinDeclSpecs;
53787
 
  friend class ::WinMemberExplSpec;
53788
 
  friend class ::WinTypeKeywords;
 
64516
  friend class ::ExtGnu;
53789
64517
  friend class ::PragmaOnceUnitState;
53790
64518
  friend class ::PragmaOnce;
53791
 
  friend class ::CCExprResolve;
53792
 
  friend class ::CExprResolve;
 
64519
  friend class ::CMatchSyntax;
53793
64520
 
53794
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64521
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53795
64522
 
53796
64523
  CTree *sons[3]; // virtual, access, name
53797
64524
 
53798
64525
public:
53799
64526
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
53800
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
64527
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
53801
64528
  }
 
64529
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53802
64530
  static const char *NodeId ();
 
64531
  /** Get the name of the node. Can be compared with NodeId(). */
53803
64532
  const char *NodeName () const { return NodeId (); }
 
64533
  /** Get the number of sons. */
53804
64534
  int Sons () const { return CTree::Sons (sons, 3); }
 
64535
  /** Get the n-th son.
 
64536
   *  \param n The index of the son.
 
64537
   *  \return The n-th son or NULL. */
53805
64538
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
53806
64539
  int Access () const { return sons[1]->token ()->type (); }
53807
64540
  CTree *AccessSpec () const { return sons[1]; }
53808
64541
  CTree *Virtual () const { return sons[0]; }
53809
64542
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
64543
  /** Replace a son.
 
64544
   *  \param old_son The son to replace.
 
64545
   *  \param new_son The new son. */
53810
64546
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53811
64547
    CTree::ReplaceSon (sons, 3, old_son, new_son);
53812
64548
  }
53813
64549
};
53814
64550
 
53815
64551
 
53816
 
#line 53817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64552
#line 64553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53817
64553
} // closed Puma
 
64554
class CCExprResolve;
 
64555
class CExprResolve;
53818
64556
class WinIfExists;
53819
64557
class WinImportHandler;
53820
64558
class WinMacros;
53821
 
class CMatchSyntax;
53822
 
class ExtGnu;
 
64559
class WinAsm;
 
64560
class WinDeclSpecs;
 
64561
class WinMemberExplSpec;
 
64562
class WinTypeKeywords;
 
64563
class WinFriend;
53823
64564
class ExtAC;
53824
64565
class ExtACBuilderCoupling;
53825
64566
class ExtACSyntaxCoupling;
53826
64567
class ExtACTree;
53827
64568
class ExtACKeywords;
53828
 
class WinAsm;
53829
 
class WinDeclSpecs;
53830
 
class WinMemberExplSpec;
53831
 
class WinTypeKeywords;
 
64569
class ExtGnu;
53832
64570
class PragmaOnceUnitState;
53833
64571
class PragmaOnce;
53834
 
class CCExprResolve;
53835
 
class CExprResolve;
 
64572
class CMatchSyntax;
53836
64573
namespace Puma {
53837
64574
 
53838
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64575
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53839
64576
class CT_AccessDecl : public CT_Decl {
53840
 
#line 53841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64577
#line 64578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64578
  friend class ::CCExprResolve;
 
64579
  friend class ::CExprResolve;
53841
64580
  friend class ::WinIfExists;
53842
64581
  friend class ::WinImportHandler;
53843
64582
  friend class ::WinMacros;
53844
 
  friend class ::CMatchSyntax;
53845
 
  friend class ::ExtGnu;
 
64583
  friend class ::WinAsm;
 
64584
  friend class ::WinDeclSpecs;
 
64585
  friend class ::WinMemberExplSpec;
 
64586
  friend class ::WinTypeKeywords;
 
64587
  friend class ::WinFriend;
53846
64588
  friend class ::ExtAC;
53847
64589
  friend class ::ExtACBuilderCoupling;
53848
64590
  friend class ::ExtACSyntaxCoupling;
53849
64591
  friend class ::ExtACTree;
53850
64592
  friend class ::ExtACKeywords;
53851
 
  friend class ::WinAsm;
53852
 
  friend class ::WinDeclSpecs;
53853
 
  friend class ::WinMemberExplSpec;
53854
 
  friend class ::WinTypeKeywords;
 
64593
  friend class ::ExtGnu;
53855
64594
  friend class ::PragmaOnceUnitState;
53856
64595
  friend class ::PragmaOnce;
53857
 
  friend class ::CCExprResolve;
53858
 
  friend class ::CExprResolve;
 
64596
  friend class ::CMatchSyntax;
53859
64597
 
53860
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64598
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53861
64599
 
53862
64600
  CTree *sons[2]; // name, semi_colon
53863
64601
 
53864
64602
public:
53865
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
64603
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
64604
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53866
64605
  static const char *NodeId ();
 
64606
  /** Get the name of the node. Can be compared with NodeId(). */
53867
64607
  const char *NodeName () const { return NodeId (); }
 
64608
  /** Get the number of sons. */
53868
64609
  int Sons () const { return 2; }
 
64610
  /** Get the n-th son.
 
64611
   *  \param n The index of the son.
 
64612
   *  \return The n-th son or NULL. */
53869
64613
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
53870
64614
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
64615
  /** Replace a son.
 
64616
   *  \param old_son The son to replace.
 
64617
   *  \param new_son The new son. */
53871
64618
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53872
64619
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53873
64620
  }
53874
64621
};
53875
64622
 
53876
64623
 
53877
 
#line 53878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64624
#line 64625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53878
64625
} // closed Puma
 
64626
class CCExprResolve;
 
64627
class CExprResolve;
53879
64628
class WinIfExists;
53880
64629
class WinImportHandler;
53881
64630
class WinMacros;
53882
 
class CMatchSyntax;
53883
 
class ExtGnu;
 
64631
class WinAsm;
 
64632
class WinDeclSpecs;
 
64633
class WinMemberExplSpec;
 
64634
class WinTypeKeywords;
 
64635
class WinFriend;
53884
64636
class ExtAC;
53885
64637
class ExtACBuilderCoupling;
53886
64638
class ExtACSyntaxCoupling;
53887
64639
class ExtACTree;
53888
64640
class ExtACKeywords;
53889
 
class WinAsm;
53890
 
class WinDeclSpecs;
53891
 
class WinMemberExplSpec;
53892
 
class WinTypeKeywords;
 
64641
class ExtGnu;
53893
64642
class PragmaOnceUnitState;
53894
64643
class PragmaOnce;
53895
 
class CCExprResolve;
53896
 
class CExprResolve;
 
64644
class CMatchSyntax;
53897
64645
namespace Puma {
53898
64646
 
53899
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64647
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53900
64648
class CT_UsingDecl : public CT_AccessDecl {
53901
 
#line 53902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64649
#line 64650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64650
  friend class ::CCExprResolve;
 
64651
  friend class ::CExprResolve;
53902
64652
  friend class ::WinIfExists;
53903
64653
  friend class ::WinImportHandler;
53904
64654
  friend class ::WinMacros;
53905
 
  friend class ::CMatchSyntax;
53906
 
  friend class ::ExtGnu;
 
64655
  friend class ::WinAsm;
 
64656
  friend class ::WinDeclSpecs;
 
64657
  friend class ::WinMemberExplSpec;
 
64658
  friend class ::WinTypeKeywords;
 
64659
  friend class ::WinFriend;
53907
64660
  friend class ::ExtAC;
53908
64661
  friend class ::ExtACBuilderCoupling;
53909
64662
  friend class ::ExtACSyntaxCoupling;
53910
64663
  friend class ::ExtACTree;
53911
64664
  friend class ::ExtACKeywords;
53912
 
  friend class ::WinAsm;
53913
 
  friend class ::WinDeclSpecs;
53914
 
  friend class ::WinMemberExplSpec;
53915
 
  friend class ::WinTypeKeywords;
 
64665
  friend class ::ExtGnu;
53916
64666
  friend class ::PragmaOnceUnitState;
53917
64667
  friend class ::PragmaOnce;
53918
 
  friend class ::CCExprResolve;
53919
 
  friend class ::CExprResolve;
 
64668
  friend class ::CMatchSyntax;
53920
64669
 
53921
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64670
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53922
64671
 
53923
64672
  CTree *sons[2]; // using, typename
53924
64673
 
53925
64674
public:
53926
64675
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
53927
 
    sons[0] = u; sons[1] = 0; 
 
64676
    AddSon (sons[0], u); AddSon (sons[1], 0); 
53928
64677
  }
53929
64678
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
53930
 
    sons[0] = u; sons[1] = t; 
 
64679
    AddSon (sons[0], u); AddSon (sons[1], t); 
53931
64680
  }
 
64681
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53932
64682
  static const char *NodeId ();
 
64683
  /** Get the name of the node. Can be compared with NodeId(). */
53933
64684
  const char *NodeName () const { return NodeId (); }
 
64685
  /** Get the number of sons. */
53934
64686
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
64687
  /** Get the n-th son.
 
64688
   *  \param n The index of the son.
 
64689
   *  \return The n-th son or NULL. */
53935
64690
  CTree *Son (int n) const {
53936
64691
    int num = CTree::Sons (sons, 2);
53937
64692
    CTree *result = CTree::Son (sons, 2, n);
53938
64693
    return result ? result : CT_AccessDecl::Son (n-num);
53939
64694
  }
53940
64695
  CTree *Typename () const { return sons[1]; }
 
64696
  /** Replace a son.
 
64697
   *  \param old_son The son to replace.
 
64698
   *  \param new_son The new son. */
53941
64699
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53942
64700
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53943
64701
    CT_AccessDecl::ReplaceSon (old_son, new_son);
53951
64709
/*****************************************************************************/
53952
64710
 
53953
64711
 
53954
 
#line 53955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64712
#line 64713 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
53955
64713
} // closed Puma
 
64714
class CCExprResolve;
 
64715
class CExprResolve;
53956
64716
class WinIfExists;
53957
64717
class WinImportHandler;
53958
64718
class WinMacros;
53959
 
class CMatchSyntax;
53960
 
class ExtGnu;
 
64719
class WinAsm;
 
64720
class WinDeclSpecs;
 
64721
class WinMemberExplSpec;
 
64722
class WinTypeKeywords;
 
64723
class WinFriend;
53961
64724
class ExtAC;
53962
64725
class ExtACBuilderCoupling;
53963
64726
class ExtACSyntaxCoupling;
53964
64727
class ExtACTree;
53965
64728
class ExtACKeywords;
53966
 
class WinAsm;
53967
 
class WinDeclSpecs;
53968
 
class WinMemberExplSpec;
53969
 
class WinTypeKeywords;
 
64729
class ExtGnu;
53970
64730
class PragmaOnceUnitState;
53971
64731
class PragmaOnce;
53972
 
class CCExprResolve;
53973
 
class CExprResolve;
 
64732
class CMatchSyntax;
53974
64733
namespace Puma {
53975
64734
 
53976
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64735
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53977
64736
class CT_Any : public CTree {
53978
 
#line 53979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64737
#line 64738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64738
  friend class ::CCExprResolve;
 
64739
  friend class ::CExprResolve;
53979
64740
  friend class ::WinIfExists;
53980
64741
  friend class ::WinImportHandler;
53981
64742
  friend class ::WinMacros;
53982
 
  friend class ::CMatchSyntax;
53983
 
  friend class ::ExtGnu;
 
64743
  friend class ::WinAsm;
 
64744
  friend class ::WinDeclSpecs;
 
64745
  friend class ::WinMemberExplSpec;
 
64746
  friend class ::WinTypeKeywords;
 
64747
  friend class ::WinFriend;
53984
64748
  friend class ::ExtAC;
53985
64749
  friend class ::ExtACBuilderCoupling;
53986
64750
  friend class ::ExtACSyntaxCoupling;
53987
64751
  friend class ::ExtACTree;
53988
64752
  friend class ::ExtACKeywords;
53989
 
  friend class ::WinAsm;
53990
 
  friend class ::WinDeclSpecs;
53991
 
  friend class ::WinMemberExplSpec;
53992
 
  friend class ::WinTypeKeywords;
 
64753
  friend class ::ExtGnu;
53993
64754
  friend class ::PragmaOnceUnitState;
53994
64755
  friend class ::PragmaOnce;
53995
 
  friend class ::CCExprResolve;
53996
 
  friend class ::CExprResolve;
 
64756
  friend class ::CMatchSyntax;
53997
64757
 
53998
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64758
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53999
64759
 
54000
64760
  CTree *sons[2]; // keyword, extension
54001
64761
 
54002
64762
public:
54003
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
64763
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
64764
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54004
64765
  static const char *NodeId ();
 
64766
  /** Get the name of the node. Can be compared with NodeId(). */
54005
64767
  const char *NodeName () const { return NodeId (); }
 
64768
  /** Get the number of sons. */
54006
64769
  int Sons () const { return CTree::Sons (sons, 2); }
 
64770
  /** Get the n-th son.
 
64771
   *  \param n The index of the son.
 
64772
   *  \return The n-th son or NULL. */
54007
64773
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
64774
  /** Replace a son.
 
64775
   *  \param old_son The son to replace.
 
64776
   *  \param new_son The new son. */
54008
64777
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54009
64778
    CTree::ReplaceSon (sons, 2, old_son, new_son);
54010
64779
  }
54013
64782
};
54014
64783
 
54015
64784
 
54016
 
#line 54017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64785
#line 64786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54017
64786
} // closed Puma
 
64787
class CCExprResolve;
 
64788
class CExprResolve;
54018
64789
class WinIfExists;
54019
64790
class WinImportHandler;
54020
64791
class WinMacros;
54021
 
class CMatchSyntax;
54022
 
class ExtGnu;
 
64792
class WinAsm;
 
64793
class WinDeclSpecs;
 
64794
class WinMemberExplSpec;
 
64795
class WinTypeKeywords;
 
64796
class WinFriend;
54023
64797
class ExtAC;
54024
64798
class ExtACBuilderCoupling;
54025
64799
class ExtACSyntaxCoupling;
54026
64800
class ExtACTree;
54027
64801
class ExtACKeywords;
54028
 
class WinAsm;
54029
 
class WinDeclSpecs;
54030
 
class WinMemberExplSpec;
54031
 
class WinTypeKeywords;
 
64802
class ExtGnu;
54032
64803
class PragmaOnceUnitState;
54033
64804
class PragmaOnce;
54034
 
class CCExprResolve;
54035
 
class CExprResolve;
 
64805
class CMatchSyntax;
54036
64806
namespace Puma {
54037
64807
 
54038
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64808
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54039
64809
class CT_AnyList : public CT_Any {
54040
 
#line 54041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64810
#line 64811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64811
  friend class ::CCExprResolve;
 
64812
  friend class ::CExprResolve;
54041
64813
  friend class ::WinIfExists;
54042
64814
  friend class ::WinImportHandler;
54043
64815
  friend class ::WinMacros;
54044
 
  friend class ::CMatchSyntax;
54045
 
  friend class ::ExtGnu;
 
64816
  friend class ::WinAsm;
 
64817
  friend class ::WinDeclSpecs;
 
64818
  friend class ::WinMemberExplSpec;
 
64819
  friend class ::WinTypeKeywords;
 
64820
  friend class ::WinFriend;
54046
64821
  friend class ::ExtAC;
54047
64822
  friend class ::ExtACBuilderCoupling;
54048
64823
  friend class ::ExtACSyntaxCoupling;
54049
64824
  friend class ::ExtACTree;
54050
64825
  friend class ::ExtACKeywords;
54051
 
  friend class ::WinAsm;
54052
 
  friend class ::WinDeclSpecs;
54053
 
  friend class ::WinMemberExplSpec;
54054
 
  friend class ::WinTypeKeywords;
 
64826
  friend class ::ExtGnu;
54055
64827
  friend class ::PragmaOnceUnitState;
54056
64828
  friend class ::PragmaOnce;
54057
 
  friend class ::CCExprResolve;
54058
 
  friend class ::CExprResolve;
 
64829
  friend class ::CMatchSyntax;
54059
64830
 
54060
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64831
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54061
64832
 
54062
64833
public:
54063
64834
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
64835
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54064
64836
  static const char *NodeId ();
 
64837
  /** Get the name of the node. Can be compared with NodeId(). */
54065
64838
  const char *NodeName () const { return NodeId (); }
54066
64839
};
54067
64840
 
54068
64841
 
54069
 
#line 54070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64842
#line 64843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54070
64843
} // closed Puma
 
64844
class CCExprResolve;
 
64845
class CExprResolve;
54071
64846
class WinIfExists;
54072
64847
class WinImportHandler;
54073
64848
class WinMacros;
54074
 
class CMatchSyntax;
54075
 
class ExtGnu;
 
64849
class WinAsm;
 
64850
class WinDeclSpecs;
 
64851
class WinMemberExplSpec;
 
64852
class WinTypeKeywords;
 
64853
class WinFriend;
54076
64854
class ExtAC;
54077
64855
class ExtACBuilderCoupling;
54078
64856
class ExtACSyntaxCoupling;
54079
64857
class ExtACTree;
54080
64858
class ExtACKeywords;
54081
 
class WinAsm;
54082
 
class WinDeclSpecs;
54083
 
class WinMemberExplSpec;
54084
 
class WinTypeKeywords;
 
64859
class ExtGnu;
54085
64860
class PragmaOnceUnitState;
54086
64861
class PragmaOnce;
54087
 
class CCExprResolve;
54088
 
class CExprResolve;
 
64862
class CMatchSyntax;
54089
64863
namespace Puma {
54090
64864
 
54091
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64865
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54092
64866
class CT_AnyExtension : public CTree, public CSemValue {
54093
 
#line 54094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64867
#line 64868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64868
  friend class ::CCExprResolve;
 
64869
  friend class ::CExprResolve;
54094
64870
  friend class ::WinIfExists;
54095
64871
  friend class ::WinImportHandler;
54096
64872
  friend class ::WinMacros;
54097
 
  friend class ::CMatchSyntax;
54098
 
  friend class ::ExtGnu;
 
64873
  friend class ::WinAsm;
 
64874
  friend class ::WinDeclSpecs;
 
64875
  friend class ::WinMemberExplSpec;
 
64876
  friend class ::WinTypeKeywords;
 
64877
  friend class ::WinFriend;
54099
64878
  friend class ::ExtAC;
54100
64879
  friend class ::ExtACBuilderCoupling;
54101
64880
  friend class ::ExtACSyntaxCoupling;
54102
64881
  friend class ::ExtACTree;
54103
64882
  friend class ::ExtACKeywords;
54104
 
  friend class ::WinAsm;
54105
 
  friend class ::WinDeclSpecs;
54106
 
  friend class ::WinMemberExplSpec;
54107
 
  friend class ::WinTypeKeywords;
 
64883
  friend class ::ExtGnu;
54108
64884
  friend class ::PragmaOnceUnitState;
54109
64885
  friend class ::PragmaOnce;
54110
 
  friend class ::CCExprResolve;
54111
 
  friend class ::CExprResolve;
 
64886
  friend class ::CMatchSyntax;
54112
64887
 
54113
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64888
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54114
64889
 
54115
64890
  CTree *sons[5]; // open, string, comma, cond, close
54116
64891
 
54117
64892
public:
54118
64893
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
54119
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
64894
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
64895
    AddSon (sons[3], c); AddSon (sons[4], cr); 
54120
64896
  }
 
64897
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54121
64898
  static const char *NodeId ();
 
64899
  /** Get the name of the node. Can be compared with NodeId(). */
54122
64900
  const char *NodeName () const { return NodeId (); }
 
64901
  /** Get the number of sons. */
54123
64902
  int Sons () const { return CTree::Sons (sons, 5); }
 
64903
  /** Get the n-th son.
 
64904
   *  \param n The index of the son.
 
64905
   *  \return The n-th son or NULL. */
54124
64906
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
64907
  /** Replace a son.
 
64908
   *  \param old_son The son to replace.
 
64909
   *  \param new_son The new son. */
54125
64910
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54126
64911
    CTree::ReplaceSon (sons, 5, old_son, new_son);
54127
64912
  }
54135
64920
};
54136
64921
 
54137
64922
 
54138
 
#line 54139 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64923
#line 64924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54139
64924
} // closed Puma
 
64925
class CCExprResolve;
 
64926
class CExprResolve;
54140
64927
class WinIfExists;
54141
64928
class WinImportHandler;
54142
64929
class WinMacros;
54143
 
class CMatchSyntax;
54144
 
class ExtGnu;
 
64930
class WinAsm;
 
64931
class WinDeclSpecs;
 
64932
class WinMemberExplSpec;
 
64933
class WinTypeKeywords;
 
64934
class WinFriend;
54145
64935
class ExtAC;
54146
64936
class ExtACBuilderCoupling;
54147
64937
class ExtACSyntaxCoupling;
54148
64938
class ExtACTree;
54149
64939
class ExtACKeywords;
54150
 
class WinAsm;
54151
 
class WinDeclSpecs;
54152
 
class WinMemberExplSpec;
54153
 
class WinTypeKeywords;
 
64940
class ExtGnu;
54154
64941
class PragmaOnceUnitState;
54155
64942
class PragmaOnce;
54156
 
class CCExprResolve;
54157
 
class CExprResolve;
 
64943
class CMatchSyntax;
54158
64944
namespace Puma {
54159
64945
 
54160
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64946
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54161
64947
class CT_AnyCondition : public CTree {
54162
 
#line 54163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
64948
#line 64949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
64949
  friend class ::CCExprResolve;
 
64950
  friend class ::CExprResolve;
54163
64951
  friend class ::WinIfExists;
54164
64952
  friend class ::WinImportHandler;
54165
64953
  friend class ::WinMacros;
54166
 
  friend class ::CMatchSyntax;
54167
 
  friend class ::ExtGnu;
 
64954
  friend class ::WinAsm;
 
64955
  friend class ::WinDeclSpecs;
 
64956
  friend class ::WinMemberExplSpec;
 
64957
  friend class ::WinTypeKeywords;
 
64958
  friend class ::WinFriend;
54168
64959
  friend class ::ExtAC;
54169
64960
  friend class ::ExtACBuilderCoupling;
54170
64961
  friend class ::ExtACSyntaxCoupling;
54171
64962
  friend class ::ExtACTree;
54172
64963
  friend class ::ExtACKeywords;
54173
 
  friend class ::WinAsm;
54174
 
  friend class ::WinDeclSpecs;
54175
 
  friend class ::WinMemberExplSpec;
54176
 
  friend class ::WinTypeKeywords;
 
64964
  friend class ::ExtGnu;
54177
64965
  friend class ::PragmaOnceUnitState;
54178
64966
  friend class ::PragmaOnce;
54179
 
  friend class ::CCExprResolve;
54180
 
  friend class ::CExprResolve;
 
64967
  friend class ::CMatchSyntax;
54181
64968
 
54182
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64969
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54183
64970
 
54184
64971
  CTree *sons[3]; // arg1, arg2, arg3
54185
64972
 
54186
64973
public:
54187
64974
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
54188
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
64975
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
54189
64976
  }
 
64977
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54190
64978
  static const char *NodeId ();
 
64979
  /** Get the name of the node. Can be compared with NodeId(). */
54191
64980
  const char *NodeName () const { return NodeId (); }
 
64981
  /** Get the number of sons. */
54192
64982
  int Sons () const { return CTree::Sons (sons, 3); }
 
64983
  /** Get the n-th son.
 
64984
   *  \param n The index of the son.
 
64985
   *  \return The n-th son or NULL. */
54193
64986
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
64987
  /** Replace a son.
 
64988
   *  \param old_son The son to replace.
 
64989
   *  \param new_son The new son. */
54194
64990
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54195
64991
    CTree::ReplaceSon (sons, 3, old_son, new_son);
54196
64992
  }
54201
64997
 
54202
64998
#endif /* __CTree_h__ */
54203
64999
 
54204
 
#line 54205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
54205
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
54206
 
 
54207
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54208
 
 
54209
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54210
 
namespace Puma {
54211
 
 
54212
 
 
54213
 
 
54214
 
#line 54215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
54215
 
} // closed Puma
54216
 
class WinIfExists;
54217
 
class WinImportHandler;
54218
 
class WinMacros;
54219
 
class CMatchSyntax;
54220
 
class ExtGnu;
54221
 
class ExtAC;
54222
 
class ExtACBuilderCoupling;
54223
 
class ExtACSyntaxCoupling;
54224
 
class ExtACTree;
54225
 
class ExtACKeywords;
54226
 
class WinAsm;
54227
 
class WinDeclSpecs;
54228
 
class WinMemberExplSpec;
54229
 
class WinTypeKeywords;
54230
 
class PragmaOnceUnitState;
54231
 
class PragmaOnce;
54232
 
class CCExprResolve;
54233
 
class CExprResolve;
54234
 
namespace Puma {
54235
 
 
54236
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65000
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65001
namespace Puma {
 
65002
 
 
65003
 
 
65004
 
 
65005
#line 65006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65006
} // closed Puma
 
65007
class CCExprResolve;
 
65008
class CExprResolve;
 
65009
class WinIfExists;
 
65010
class WinImportHandler;
 
65011
class WinMacros;
 
65012
class WinAsm;
 
65013
class WinDeclSpecs;
 
65014
class WinMemberExplSpec;
 
65015
class WinTypeKeywords;
 
65016
class WinFriend;
 
65017
class ExtAC;
 
65018
class ExtACBuilderCoupling;
 
65019
class ExtACSyntaxCoupling;
 
65020
class ExtACTree;
 
65021
class ExtACKeywords;
 
65022
class ExtGnu;
 
65023
class PragmaOnceUnitState;
 
65024
class PragmaOnce;
 
65025
class CMatchSyntax;
 
65026
namespace Puma {
 
65027
 
 
65028
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65029
class CT_GnuAsmSpec : public CTree {
 
65030
#line 65031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65031
  friend class ::CCExprResolve;
 
65032
  friend class ::CExprResolve;
 
65033
  friend class ::WinIfExists;
 
65034
  friend class ::WinImportHandler;
 
65035
  friend class ::WinMacros;
 
65036
  friend class ::WinAsm;
 
65037
  friend class ::WinDeclSpecs;
 
65038
  friend class ::WinMemberExplSpec;
 
65039
  friend class ::WinTypeKeywords;
 
65040
  friend class ::WinFriend;
 
65041
  friend class ::ExtAC;
 
65042
  friend class ::ExtACBuilderCoupling;
 
65043
  friend class ::ExtACSyntaxCoupling;
 
65044
  friend class ::ExtACTree;
 
65045
  friend class ::ExtACKeywords;
 
65046
  friend class ::ExtGnu;
 
65047
  friend class ::PragmaOnceUnitState;
 
65048
  friend class ::PragmaOnce;
 
65049
  friend class ::CMatchSyntax;
 
65050
 
 
65051
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65052
 
 
65053
  CTree *_key_asm;    // CT_Token
 
65054
  CTree *_open;   // CT_Token
 
65055
  CTree *_expr;
 
65056
  CTree *_close;  // CT_Token
 
65057
 
 
65058
public:
 
65059
  CT_GnuAsmSpec (CTree *a, CTree *o, CTree *e, CTree *c) :
 
65060
    _key_asm (a), _open (o), _expr (e), _close (c) {}
 
65061
  static const char *NodeId ();
 
65062
  const char *NodeName () const { return NodeId (); } 
 
65063
  int Sons () const { return 4; }
 
65064
  CTree *Son (int n) const {
 
65065
    switch (n) {
 
65066
      case 0: return _key_asm;
 
65067
      case 1: return _open;
 
65068
      case 2: return _expr;
 
65069
      case 3: return _close;
 
65070
      default: return (CTree*)0;
 
65071
    }
 
65072
  }
 
65073
  CT_Expression *Expr () const { return (CT_Expression*)_expr; }
 
65074
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
65075
    if (old_son == _expr) _expr = new_son;
 
65076
    else if (old_son == _key_asm) _key_asm = new_son;
 
65077
    else if (old_son == _open) _open = new_son;
 
65078
    else if (old_son == _close) _close = new_son;
 
65079
  }
 
65080
};
 
65081
 
 
65082
 
 
65083
#line 65084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65084
} // closed Puma
 
65085
class CCExprResolve;
 
65086
class CExprResolve;
 
65087
class WinIfExists;
 
65088
class WinImportHandler;
 
65089
class WinMacros;
 
65090
class WinAsm;
 
65091
class WinDeclSpecs;
 
65092
class WinMemberExplSpec;
 
65093
class WinTypeKeywords;
 
65094
class WinFriend;
 
65095
class ExtAC;
 
65096
class ExtACBuilderCoupling;
 
65097
class ExtACSyntaxCoupling;
 
65098
class ExtACTree;
 
65099
class ExtACKeywords;
 
65100
class ExtGnu;
 
65101
class PragmaOnceUnitState;
 
65102
class PragmaOnce;
 
65103
class CMatchSyntax;
 
65104
namespace Puma {
 
65105
 
 
65106
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54237
65107
class CT_GnuAsmDef : public CT_AsmDef {
54238
 
#line 54239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65108
#line 65109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65109
  friend class ::CCExprResolve;
 
65110
  friend class ::CExprResolve;
54239
65111
  friend class ::WinIfExists;
54240
65112
  friend class ::WinImportHandler;
54241
65113
  friend class ::WinMacros;
54242
 
  friend class ::CMatchSyntax;
54243
 
  friend class ::ExtGnu;
 
65114
  friend class ::WinAsm;
 
65115
  friend class ::WinDeclSpecs;
 
65116
  friend class ::WinMemberExplSpec;
 
65117
  friend class ::WinTypeKeywords;
 
65118
  friend class ::WinFriend;
54244
65119
  friend class ::ExtAC;
54245
65120
  friend class ::ExtACBuilderCoupling;
54246
65121
  friend class ::ExtACSyntaxCoupling;
54247
65122
  friend class ::ExtACTree;
54248
65123
  friend class ::ExtACKeywords;
54249
 
  friend class ::WinAsm;
54250
 
  friend class ::WinDeclSpecs;
54251
 
  friend class ::WinMemberExplSpec;
54252
 
  friend class ::WinTypeKeywords;
 
65124
  friend class ::ExtGnu;
54253
65125
  friend class ::PragmaOnceUnitState;
54254
65126
  friend class ::PragmaOnce;
54255
 
  friend class ::CCExprResolve;
54256
 
  friend class ::CExprResolve;
 
65127
  friend class ::CMatchSyntax;
54257
65128
 
54258
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65129
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54259
65130
 
54260
65131
  CTree *_cvqual;
54261
65132
  CTree *_operands0;
54311
65182
};
54312
65183
 
54313
65184
 
54314
 
#line 54315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65185
#line 65186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54315
65186
} // closed Puma
 
65187
class CCExprResolve;
 
65188
class CExprResolve;
54316
65189
class WinIfExists;
54317
65190
class WinImportHandler;
54318
65191
class WinMacros;
54319
 
class CMatchSyntax;
54320
 
class ExtGnu;
 
65192
class WinAsm;
 
65193
class WinDeclSpecs;
 
65194
class WinMemberExplSpec;
 
65195
class WinTypeKeywords;
 
65196
class WinFriend;
54321
65197
class ExtAC;
54322
65198
class ExtACBuilderCoupling;
54323
65199
class ExtACSyntaxCoupling;
54324
65200
class ExtACTree;
54325
65201
class ExtACKeywords;
54326
 
class WinAsm;
54327
 
class WinDeclSpecs;
54328
 
class WinMemberExplSpec;
54329
 
class WinTypeKeywords;
 
65202
class ExtGnu;
54330
65203
class PragmaOnceUnitState;
54331
65204
class PragmaOnce;
54332
 
class CCExprResolve;
54333
 
class CExprResolve;
 
65205
class CMatchSyntax;
54334
65206
namespace Puma {
54335
65207
 
54336
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65208
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54337
65209
class CT_GnuAsmOperand : public CTree {
54338
 
#line 54339 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65210
#line 65211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65211
  friend class ::CCExprResolve;
 
65212
  friend class ::CExprResolve;
54339
65213
  friend class ::WinIfExists;
54340
65214
  friend class ::WinImportHandler;
54341
65215
  friend class ::WinMacros;
54342
 
  friend class ::CMatchSyntax;
54343
 
  friend class ::ExtGnu;
 
65216
  friend class ::WinAsm;
 
65217
  friend class ::WinDeclSpecs;
 
65218
  friend class ::WinMemberExplSpec;
 
65219
  friend class ::WinTypeKeywords;
 
65220
  friend class ::WinFriend;
54344
65221
  friend class ::ExtAC;
54345
65222
  friend class ::ExtACBuilderCoupling;
54346
65223
  friend class ::ExtACSyntaxCoupling;
54347
65224
  friend class ::ExtACTree;
54348
65225
  friend class ::ExtACKeywords;
54349
 
  friend class ::WinAsm;
54350
 
  friend class ::WinDeclSpecs;
54351
 
  friend class ::WinMemberExplSpec;
54352
 
  friend class ::WinTypeKeywords;
 
65226
  friend class ::ExtGnu;
54353
65227
  friend class ::PragmaOnceUnitState;
54354
65228
  friend class ::PragmaOnce;
54355
 
  friend class ::CCExprResolve;
54356
 
  friend class ::CExprResolve;
 
65229
  friend class ::CMatchSyntax;
54357
65230
 
54358
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65231
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54359
65232
 
54360
65233
  CTree *_string;
54361
65234
  CTree *_open;   // CT_Token
54388
65261
};
54389
65262
 
54390
65263
 
54391
 
#line 54392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65264
#line 65265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54392
65265
} // closed Puma
 
65266
class CCExprResolve;
 
65267
class CExprResolve;
54393
65268
class WinIfExists;
54394
65269
class WinImportHandler;
54395
65270
class WinMacros;
54396
 
class CMatchSyntax;
54397
 
class ExtGnu;
 
65271
class WinAsm;
 
65272
class WinDeclSpecs;
 
65273
class WinMemberExplSpec;
 
65274
class WinTypeKeywords;
 
65275
class WinFriend;
54398
65276
class ExtAC;
54399
65277
class ExtACBuilderCoupling;
54400
65278
class ExtACSyntaxCoupling;
54401
65279
class ExtACTree;
54402
65280
class ExtACKeywords;
54403
 
class WinAsm;
54404
 
class WinDeclSpecs;
54405
 
class WinMemberExplSpec;
54406
 
class WinTypeKeywords;
 
65281
class ExtGnu;
54407
65282
class PragmaOnceUnitState;
54408
65283
class PragmaOnce;
54409
 
class CCExprResolve;
54410
 
class CExprResolve;
 
65284
class CMatchSyntax;
54411
65285
namespace Puma {
54412
65286
 
54413
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65287
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54414
65288
class CT_GnuAsmOperands : public CT_List {
54415
 
#line 54416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65289
#line 65290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65290
  friend class ::CCExprResolve;
 
65291
  friend class ::CExprResolve;
54416
65292
  friend class ::WinIfExists;
54417
65293
  friend class ::WinImportHandler;
54418
65294
  friend class ::WinMacros;
54419
 
  friend class ::CMatchSyntax;
54420
 
  friend class ::ExtGnu;
 
65295
  friend class ::WinAsm;
 
65296
  friend class ::WinDeclSpecs;
 
65297
  friend class ::WinMemberExplSpec;
 
65298
  friend class ::WinTypeKeywords;
 
65299
  friend class ::WinFriend;
54421
65300
  friend class ::ExtAC;
54422
65301
  friend class ::ExtACBuilderCoupling;
54423
65302
  friend class ::ExtACSyntaxCoupling;
54424
65303
  friend class ::ExtACTree;
54425
65304
  friend class ::ExtACKeywords;
54426
 
  friend class ::WinAsm;
54427
 
  friend class ::WinDeclSpecs;
54428
 
  friend class ::WinMemberExplSpec;
54429
 
  friend class ::WinTypeKeywords;
 
65305
  friend class ::ExtGnu;
54430
65306
  friend class ::PragmaOnceUnitState;
54431
65307
  friend class ::PragmaOnce;
54432
 
  friend class ::CCExprResolve;
54433
 
  friend class ::CExprResolve;
 
65308
  friend class ::CMatchSyntax;
54434
65309
 
54435
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65310
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54436
65311
 
54437
65312
public:
54438
65313
  CT_GnuAsmOperands () { AddProperties (OPEN | SEPARATORS); }
54441
65316
};
54442
65317
 
54443
65318
 
54444
 
#line 54445 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65319
#line 65320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54445
65320
} // closed Puma
 
65321
class CCExprResolve;
 
65322
class CExprResolve;
54446
65323
class WinIfExists;
54447
65324
class WinImportHandler;
54448
65325
class WinMacros;
54449
 
class CMatchSyntax;
54450
 
class ExtGnu;
 
65326
class WinAsm;
 
65327
class WinDeclSpecs;
 
65328
class WinMemberExplSpec;
 
65329
class WinTypeKeywords;
 
65330
class WinFriend;
54451
65331
class ExtAC;
54452
65332
class ExtACBuilderCoupling;
54453
65333
class ExtACSyntaxCoupling;
54454
65334
class ExtACTree;
54455
65335
class ExtACKeywords;
54456
 
class WinAsm;
54457
 
class WinDeclSpecs;
54458
 
class WinMemberExplSpec;
54459
 
class WinTypeKeywords;
 
65336
class ExtGnu;
54460
65337
class PragmaOnceUnitState;
54461
65338
class PragmaOnce;
54462
 
class CCExprResolve;
54463
 
class CExprResolve;
 
65339
class CMatchSyntax;
54464
65340
namespace Puma {
54465
65341
 
54466
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65342
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54467
65343
class CT_GnuAsmClobbers : public CT_List {
54468
 
#line 54469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65344
#line 65345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65345
  friend class ::CCExprResolve;
 
65346
  friend class ::CExprResolve;
54469
65347
  friend class ::WinIfExists;
54470
65348
  friend class ::WinImportHandler;
54471
65349
  friend class ::WinMacros;
54472
 
  friend class ::CMatchSyntax;
54473
 
  friend class ::ExtGnu;
 
65350
  friend class ::WinAsm;
 
65351
  friend class ::WinDeclSpecs;
 
65352
  friend class ::WinMemberExplSpec;
 
65353
  friend class ::WinTypeKeywords;
 
65354
  friend class ::WinFriend;
54474
65355
  friend class ::ExtAC;
54475
65356
  friend class ::ExtACBuilderCoupling;
54476
65357
  friend class ::ExtACSyntaxCoupling;
54477
65358
  friend class ::ExtACTree;
54478
65359
  friend class ::ExtACKeywords;
54479
 
  friend class ::WinAsm;
54480
 
  friend class ::WinDeclSpecs;
54481
 
  friend class ::WinMemberExplSpec;
54482
 
  friend class ::WinTypeKeywords;
 
65360
  friend class ::ExtGnu;
54483
65361
  friend class ::PragmaOnceUnitState;
54484
65362
  friend class ::PragmaOnce;
54485
 
  friend class ::CCExprResolve;
54486
 
  friend class ::CExprResolve;
 
65363
  friend class ::CMatchSyntax;
54487
65364
 
54488
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65365
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54489
65366
 
54490
65367
public:
54491
65368
  CT_GnuAsmClobbers () { AddProperties (OPEN | SEPARATORS); }
54500
65377
/*****************************************************************************/
54501
65378
 
54502
65379
 
54503
 
#line 54504 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65380
#line 65381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54504
65381
} // closed Puma
 
65382
class CCExprResolve;
 
65383
class CExprResolve;
54505
65384
class WinIfExists;
54506
65385
class WinImportHandler;
54507
65386
class WinMacros;
54508
 
class CMatchSyntax;
54509
 
class ExtGnu;
 
65387
class WinAsm;
 
65388
class WinDeclSpecs;
 
65389
class WinMemberExplSpec;
 
65390
class WinTypeKeywords;
 
65391
class WinFriend;
54510
65392
class ExtAC;
54511
65393
class ExtACBuilderCoupling;
54512
65394
class ExtACSyntaxCoupling;
54513
65395
class ExtACTree;
54514
65396
class ExtACKeywords;
54515
 
class WinAsm;
54516
 
class WinDeclSpecs;
54517
 
class WinMemberExplSpec;
54518
 
class WinTypeKeywords;
 
65397
class ExtGnu;
54519
65398
class PragmaOnceUnitState;
54520
65399
class PragmaOnce;
54521
 
class CCExprResolve;
54522
 
class CExprResolve;
54523
 
namespace Puma {
54524
 
 
54525
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65400
class CMatchSyntax;
 
65401
namespace Puma {
 
65402
 
 
65403
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65404
 
 
65405
#line 65406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65406
} // closed Puma
 
65407
 
 
65408
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
65409
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
65410
#include "CCExprResolveH.ah"
 
65411
#endif
 
65412
namespace Puma {
 
65413
 
 
65414
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65415
 
 
65416
#line 65417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65417
} // closed Puma
 
65418
 
 
65419
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
65420
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
65421
#include "CExprResolveH.ah"
 
65422
#endif
 
65423
namespace Puma {
 
65424
 
 
65425
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54526
65426
class CT_GnuStatementExpr : public CT_Expression {
54527
 
#line 54528 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65427
#line 65428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65428
  friend class ::CCExprResolve;
 
65429
  friend class ::CExprResolve;
54528
65430
  friend class ::WinIfExists;
54529
65431
  friend class ::WinImportHandler;
54530
65432
  friend class ::WinMacros;
54531
 
  friend class ::CMatchSyntax;
54532
 
  friend class ::ExtGnu;
 
65433
  friend class ::WinAsm;
 
65434
  friend class ::WinDeclSpecs;
 
65435
  friend class ::WinMemberExplSpec;
 
65436
  friend class ::WinTypeKeywords;
 
65437
  friend class ::WinFriend;
54533
65438
  friend class ::ExtAC;
54534
65439
  friend class ::ExtACBuilderCoupling;
54535
65440
  friend class ::ExtACSyntaxCoupling;
54536
65441
  friend class ::ExtACTree;
54537
65442
  friend class ::ExtACKeywords;
54538
 
  friend class ::WinAsm;
54539
 
  friend class ::WinDeclSpecs;
54540
 
  friend class ::WinMemberExplSpec;
54541
 
  friend class ::WinTypeKeywords;
 
65443
  friend class ::ExtGnu;
54542
65444
  friend class ::PragmaOnceUnitState;
54543
65445
  friend class ::PragmaOnce;
54544
 
  friend class ::CCExprResolve;
54545
 
  friend class ::CExprResolve;
 
65446
  friend class ::CMatchSyntax;
54546
65447
 
54547
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65448
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54548
65449
 
54549
65450
  CTree *_open;
54550
65451
  CTree *_stmt;
54567
65468
   private:
54568
65469
  typedef CT_GnuStatementExpr CCExprResolveExpr;
54569
65470
 
54570
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
65471
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
54571
65472
 public :
54572
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
65473
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
54573
65474
  typedef CT_GnuStatementExpr CExprResolveExpr;
54574
65475
 
54575
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
65476
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
54576
65477
 public :
54577
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
54578
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65478
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
65479
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54579
65480
};
54580
65481
 
54581
65482
/*****************************************************************************/
54586
65487
 
54587
65488
// typeof(expr) or typeof(named type) feature
54588
65489
 
54589
 
#line 54590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65490
#line 65491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54590
65491
} // closed Puma
 
65492
class CCExprResolve;
 
65493
class CExprResolve;
54591
65494
class WinIfExists;
54592
65495
class WinImportHandler;
54593
65496
class WinMacros;
54594
 
class CMatchSyntax;
54595
 
class ExtGnu;
 
65497
class WinAsm;
 
65498
class WinDeclSpecs;
 
65499
class WinMemberExplSpec;
 
65500
class WinTypeKeywords;
 
65501
class WinFriend;
54596
65502
class ExtAC;
54597
65503
class ExtACBuilderCoupling;
54598
65504
class ExtACSyntaxCoupling;
54599
65505
class ExtACTree;
54600
65506
class ExtACKeywords;
54601
 
class WinAsm;
54602
 
class WinDeclSpecs;
54603
 
class WinMemberExplSpec;
54604
 
class WinTypeKeywords;
 
65507
class ExtGnu;
54605
65508
class PragmaOnceUnitState;
54606
65509
class PragmaOnce;
54607
 
class CCExprResolve;
54608
 
class CExprResolve;
 
65510
class CMatchSyntax;
54609
65511
namespace Puma {
54610
65512
 
54611
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65513
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54612
65514
class CT_GnuTypeof : public CT_DeclSpec, public CSemValue {
54613
 
#line 54614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65515
#line 65516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65516
  friend class ::CCExprResolve;
 
65517
  friend class ::CExprResolve;
54614
65518
  friend class ::WinIfExists;
54615
65519
  friend class ::WinImportHandler;
54616
65520
  friend class ::WinMacros;
54617
 
  friend class ::CMatchSyntax;
54618
 
  friend class ::ExtGnu;
 
65521
  friend class ::WinAsm;
 
65522
  friend class ::WinDeclSpecs;
 
65523
  friend class ::WinMemberExplSpec;
 
65524
  friend class ::WinTypeKeywords;
 
65525
  friend class ::WinFriend;
54619
65526
  friend class ::ExtAC;
54620
65527
  friend class ::ExtACBuilderCoupling;
54621
65528
  friend class ::ExtACSyntaxCoupling;
54622
65529
  friend class ::ExtACTree;
54623
65530
  friend class ::ExtACKeywords;
54624
 
  friend class ::WinAsm;
54625
 
  friend class ::WinDeclSpecs;
54626
 
  friend class ::WinMemberExplSpec;
54627
 
  friend class ::WinTypeKeywords;
 
65531
  friend class ::ExtGnu;
54628
65532
  friend class ::PragmaOnceUnitState;
54629
65533
  friend class ::PragmaOnce;
54630
 
  friend class ::CCExprResolve;
54631
 
  friend class ::CExprResolve;
 
65534
  friend class ::CMatchSyntax;
54632
65535
 
54633
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
65536
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54634
65537
 
54635
65538
  CTree *sons[5]; // key, open, type, close, expr
54636
65539
 
54658
65561
 
54659
65562
#endif /* __gnu_c_tree_h__ */
54660
65563
 
54661
 
#line 54662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
54662
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
54663
 
 
54664
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
54665
 
 
54666
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
65564
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
54667
65565
// This file is part of PUMA.
54668
65566
// Copyright (C) 1999-2003  The PUMA developer team.
54669
65567
//                                                                
54686
65584
#define __CSemVisitor_h__
54687
65585
 
54688
65586
 
54689
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
65587
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
54690
65588
// This file is part of PUMA.
54691
65589
// Copyright (C) 1999-2003  The PUMA developer team.
54692
65590
//                                                                
54716
65614
class CTree;
54717
65615
 
54718
65616
 
54719
 
#line 54720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65617
#line 65618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54720
65618
} // closed Puma
 
65619
class CCExprResolve;
 
65620
class CExprResolve;
54721
65621
class WinIfExists;
54722
65622
class WinImportHandler;
54723
65623
class WinMacros;
54724
 
class CMatchSyntax;
54725
 
class ExtGnu;
 
65624
class WinAsm;
 
65625
class WinDeclSpecs;
 
65626
class WinMemberExplSpec;
 
65627
class WinTypeKeywords;
 
65628
class WinFriend;
54726
65629
class ExtAC;
54727
65630
class ExtACBuilderCoupling;
54728
65631
class ExtACSyntaxCoupling;
54729
65632
class ExtACTree;
54730
65633
class ExtACKeywords;
54731
 
class WinAsm;
54732
 
class WinDeclSpecs;
54733
 
class WinMemberExplSpec;
54734
 
class WinTypeKeywords;
 
65634
class ExtGnu;
54735
65635
class PragmaOnceUnitState;
54736
65636
class PragmaOnce;
54737
 
class CCExprResolve;
54738
 
class CExprResolve;
 
65637
class CMatchSyntax;
54739
65638
namespace Puma {
54740
65639
 
54741
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
65640
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
54742
65641
class CVisitor {
54743
 
#line 54744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65642
#line 65643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
65643
  friend class ::CCExprResolve;
 
65644
  friend class ::CExprResolve;
54744
65645
  friend class ::WinIfExists;
54745
65646
  friend class ::WinImportHandler;
54746
65647
  friend class ::WinMacros;
54747
 
  friend class ::CMatchSyntax;
54748
 
  friend class ::ExtGnu;
 
65648
  friend class ::WinAsm;
 
65649
  friend class ::WinDeclSpecs;
 
65650
  friend class ::WinMemberExplSpec;
 
65651
  friend class ::WinTypeKeywords;
 
65652
  friend class ::WinFriend;
54749
65653
  friend class ::ExtAC;
54750
65654
  friend class ::ExtACBuilderCoupling;
54751
65655
  friend class ::ExtACSyntaxCoupling;
54752
65656
  friend class ::ExtACTree;
54753
65657
  friend class ::ExtACKeywords;
54754
 
  friend class ::WinAsm;
54755
 
  friend class ::WinDeclSpecs;
54756
 
  friend class ::WinMemberExplSpec;
54757
 
  friend class ::WinTypeKeywords;
 
65658
  friend class ::ExtGnu;
54758
65659
  friend class ::PragmaOnceUnitState;
54759
65660
  friend class ::PragmaOnce;
54760
 
  friend class ::CCExprResolve;
54761
 
  friend class ::CExprResolve;
 
65661
  friend class ::CMatchSyntax;
54762
65662
 
54763
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
65663
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
54764
65664
 
54765
65665
  bool _aborted;
54766
65666
  bool _pruned;
54787
65687
 
54788
65688
#endif /* __CVisitor_h__ */
54789
65689
 
54790
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
 
65690
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Limits.h"
54791
65691
/* This file was generated by the PUMA library, version 1.1. */
54792
65692
 
54793
65693
// This file is part of PUMA.
54811
65711
#ifndef __Limits_h__
54812
65712
#define __Limits_h__
54813
65713
 
 
65714
#include <limits.h>
54814
65715
 
54815
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
54816
65716
namespace Puma {
54817
65717
 
54818
65718
 
54868
65768
 
54869
65769
#endif /* __Limits_h__ */
54870
65770
 
54871
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65771
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54872
65772
 
54873
 
#line 54874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65773
#line 65774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
54874
65774
 
54875
65775
#ifndef __ac_fwd_ExtACTree__
54876
65776
#define __ac_fwd_ExtACTree__
54877
65777
class ExtACTree;
54878
65778
namespace AC {
54879
65779
  template <class JoinPoint>
54880
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
65780
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
54881
65781
  template <class JoinPoint>
54882
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
65782
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
54883
65783
}
54884
65784
#endif
54885
65785
 
54886
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
54887
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
65786
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
65787
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
54888
65788
#endif
54889
65789
 
54890
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54891
 
 
54892
 
#line 54893 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
54893
 
 
54894
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54895
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
54896
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
54897
 
 
54898
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65790
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54899
65791
// This file is part of PUMA.
54900
65792
// Copyright (C) 1999-2003  The PUMA developer team.
54901
65793
//                                                                
54940
65832
class     CT_DefaultStmt;
54941
65833
class     CT_TryStmt;
54942
65834
class   CT_Expression;
 
65835
class     CT_Call;
 
65836
class       CT_CallExpr;
 
65837
class       CT_ImplicitCall;
54943
65838
class     CT_ThrowExpr;
54944
65839
class     CT_NewExpr;
54945
65840
class     CT_DeleteExpr;
54960
65855
class     CT_IfThenExpr;
54961
65856
class     CT_CmpdLiteral;
54962
65857
class     CT_IndexExpr;
54963
 
class     CT_CallExpr;
54964
65858
class     CT_CastExpr;
54965
65859
class     CT_StaticCast;
54966
65860
class       CT_ConstCast;
55007
65901
class     CT_NamespaceDef;
55008
65902
class     CT_NamespaceAliasDef;
55009
65903
class     CT_UsingDirective;
 
65904
class     CT_Condition;
55010
65905
class   CT_List;
55011
65906
class     CT_CmpdStmt;
55012
65907
class     CT_DeclSpecSeq;
55037
65932
class     CT_TemplateArgList;
55038
65933
class   CT_Token;
55039
65934
class   CT_Error;
55040
 
class   CT_Condition;
55041
65935
class   CT_BaseSpec;
55042
65936
class   CT_AccessSpec;
55043
65937
class   CT_ArrayDelimiter;
55077
65971
/*                                                                           */
55078
65972
/*****************************************************************************/
55079
65973
 
55080
 
 
55081
 
#line 55082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
65974
/** \file
 
65975
 *  C/C++ syntax tree classes.
 
65976
 *  \see Puma::CTree */
 
65977
 
 
65978
/** \class CTree CTree.h Puma/CTree.h
 
65979
 *  Base class for all C/C++ syntax tree classes. */
 
65980
 
 
65981
#line 65982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55082
65982
} // closed Puma
 
65983
class CCExprResolve;
 
65984
class CExprResolve;
55083
65985
class WinIfExists;
55084
65986
class WinImportHandler;
55085
65987
class WinMacros;
55086
 
class CMatchSyntax;
55087
 
class ExtGnu;
 
65988
class WinAsm;
 
65989
class WinDeclSpecs;
 
65990
class WinMemberExplSpec;
 
65991
class WinTypeKeywords;
 
65992
class WinFriend;
55088
65993
class ExtAC;
55089
65994
class ExtACBuilderCoupling;
55090
65995
class ExtACSyntaxCoupling;
55091
65996
class ExtACTree;
55092
65997
class ExtACKeywords;
55093
 
class WinAsm;
55094
 
class WinDeclSpecs;
55095
 
class WinMemberExplSpec;
55096
 
class WinTypeKeywords;
 
65998
class ExtGnu;
55097
65999
class PragmaOnceUnitState;
55098
66000
class PragmaOnce;
55099
 
class CCExprResolve;
55100
 
class CExprResolve;
55101
 
namespace Puma {
55102
 
 
55103
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66001
class CMatchSyntax;
 
66002
namespace Puma {
 
66003
 
 
66004
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66005
 
 
66006
#line 66007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66007
} // closed Puma
 
66008
 
 
66009
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
66010
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
66011
#include "CCExprResolveH.ah"
 
66012
#endif
 
66013
namespace Puma {
 
66014
 
 
66015
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66016
 
 
66017
#line 66018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66018
} // closed Puma
 
66019
 
 
66020
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
66021
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
66022
#include "CExprResolveH.ah"
 
66023
#endif
 
66024
namespace Puma {
 
66025
 
 
66026
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55104
66027
class CTree {
55105
 
#line 55106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66028
#line 66029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66029
  friend class ::CCExprResolve;
 
66030
  friend class ::CExprResolve;
55106
66031
  friend class ::WinIfExists;
55107
66032
  friend class ::WinImportHandler;
55108
66033
  friend class ::WinMacros;
55109
 
  friend class ::CMatchSyntax;
55110
 
  friend class ::ExtGnu;
 
66034
  friend class ::WinAsm;
 
66035
  friend class ::WinDeclSpecs;
 
66036
  friend class ::WinMemberExplSpec;
 
66037
  friend class ::WinTypeKeywords;
 
66038
  friend class ::WinFriend;
55111
66039
  friend class ::ExtAC;
55112
66040
  friend class ::ExtACBuilderCoupling;
55113
66041
  friend class ::ExtACSyntaxCoupling;
55114
66042
  friend class ::ExtACTree;
55115
66043
  friend class ::ExtACKeywords;
55116
 
  friend class ::WinAsm;
55117
 
  friend class ::WinDeclSpecs;
55118
 
  friend class ::WinMemberExplSpec;
55119
 
  friend class ::WinTypeKeywords;
 
66044
  friend class ::ExtGnu;
55120
66045
  friend class ::PragmaOnceUnitState;
55121
66046
  friend class ::PragmaOnce;
55122
 
  friend class ::CCExprResolve;
55123
 
  friend class ::CExprResolve;
55124
 
 
55125
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66047
  friend class ::CMatchSyntax;
 
66048
 
 
66049
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66050
 
 
66051
  CTree * _parent;
55126
66052
 
55127
66053
public:
55128
66054
  /*DEBUG*/static int alloc;
55129
66055
  /*DEBUG*/static int release;
55130
66056
 
55131
66057
protected:
55132
 
  CTree *Son (CTree * const *, int, int) const;
55133
 
  int Sons (CTree * const *, int) const;
55134
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
66058
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
66059
   *  \param sons The sons array.
 
66060
   *  \param len Length of the sons array.
 
66061
   *  \param n Index of the son.
 
66062
   *  \return The n-th son or NULL. */
 
66063
  CTree *Son (CTree * const *sons, int len, int n) const;
 
66064
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
66065
   *  \param sons The sons array.
 
66066
   *  \param len Length of the sons array. */
 
66067
  int Sons (CTree * const *sons, int len) const;
 
66068
  /** Replace a son.
 
66069
   *  \param sons The sons array.
 
66070
   *  \param len Length of the sons array.
 
66071
   *  \param old_son The son to replace.
 
66072
   *  \param new_son The new son. */
 
66073
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
66074
  /** Replace a son if it equals the given son.
 
66075
   *  \param son The actual son.
 
66076
   *  \param old_son The son to replace, must match the actual son.
 
66077
   *  \param new_son The new son, overwrites the actual son. */
 
66078
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
66079
  /** Add a new son.
 
66080
   *  \param son The actual son.
 
66081
   *  \param new_son The new son, overwrites the actual son. */
 
66082
  void AddSon (CTree *&son, CTree *new_son);
 
66083
  /** Set the parent tree node.
 
66084
   *  \param parent The new parent tree node. */
 
66085
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
66086
  /** Set the parent tree node of the given tree node.
 
66087
   *  \param node The tree node.
 
66088
   *  \param parent The new parent. */
 
66089
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
55135
66090
  
55136
66091
protected:
55137
 
  CTree () { /*DEBUG*/alloc++; }
 
66092
  /** Default constructor. */
 
66093
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
55138
66094
 
55139
66095
public:
 
66096
  /** Destructor. */
55140
66097
  virtual ~CTree () { /*DEBUG*/release++; }
 
66098
  /** Get the number of sons. */
55141
66099
  virtual int Sons () const = 0;
 
66100
  /** Get the n-th son.
 
66101
   *  \param n The index of the son.
 
66102
   *  \return The n-th son or NULL. */
55142
66103
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
66104
  /** Get the node name (node identifier). */
55143
66105
  virtual const char *NodeName () const = 0;
 
66106
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
66107
   *  \return The token or NULL. */
55144
66108
  virtual Token *token () const;
 
66109
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
66110
   *  \return The token or NULL. */
55145
66111
  virtual Token *end_token () const;
 
66112
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
66113
   *  \return The token node or NULL. */
55146
66114
  virtual CT_Token *token_node () const;
 
66115
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
66116
   *  \return The token node or NULL. */
55147
66117
  virtual CT_Token *end_token_node () const;
55148
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
66118
  /** Replace a son.
 
66119
   *  \param old_son The son to replace.
 
66120
   *  \param new_son The son with which to replace. */
 
66121
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
66122
  /** Get the parent node.
 
66123
   *  \return The parent node or NULL. */
 
66124
  virtual CTree *Parent () const { return (CTree*)_parent; }
55149
66125
 
55150
66126
public: // semantic information
 
66127
  /** Get the semantic type of the node.
 
66128
   *  \return The type object or NULL. */
55151
66129
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
66130
  /** Get the calculated value of the expression.
 
66131
   *  \return The value object or NULL. */
55152
66132
  virtual CExprValue *Value () const { return (CExprValue*)0; }
55153
66133
  
 
66134
  /** Get the semantic scope of the node.
 
66135
   *  \return The scope object or NULL. */
 
66136
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
66137
  /** Get the semantic value of the node.
 
66138
   *  \return The value object or NULL. */
55154
66139
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
66140
  /** Get the semantic object of the node.
 
66141
   *  \return The semantic object or NULL. */
55155
66142
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
55156
66143
  
55157
66144
public: // node classification function
 
66145
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
66146
   *  \return The CT_SimpleName node or NULL. */
55158
66147
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
66148
  /** Get a pointer to CT_String if the current node represents a string.
 
66149
   *  \return The CT_String node or NULL. */
 
66150
  virtual CT_String *IsString () { return 0; }
 
66151
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
66152
   *  \return The CT_Declarator pointer or NULL. */
55159
66153
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
66154
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
66155
   *  \return The CT_Statement pointer or NULL. */
 
66156
  virtual CT_Statement *IsStatement () { return 0; }
 
66157
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
66158
   *  \return The CT_Expression pointer or NULL. */
 
66159
  virtual CT_Expression *IsExpression () { return 0; }
 
66160
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
66161
   *  \return The CT_Decl pointer or NULL. */
 
66162
  virtual CT_Decl *IsDeclaration () { return 0; }
 
66163
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
66164
   *  \return The CT_Call pointer or NULL. */
 
66165
  virtual CT_Call *IsCall () { return 0; }
55160
66166
   private:
55161
66167
  typedef CTree CCExprResolveCTree;
55162
66168
 
55163
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
66169
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55164
66170
 public :
55165
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
66171
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
55166
66172
  typedef CTree CExprResolveCTree;
55167
66173
 
55168
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
66174
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55169
66175
 public :
55170
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55171
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66176
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
66177
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55172
66178
};
55173
66179
 
 
66180
/** \class CT_Error CTree.h Puma/CTree.h
 
66181
 *  Error tree node that is inserted into the tree for syntactic constructs
 
66182
 *  that could not be parsed. */
55174
66183
 
55175
 
#line 55176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66184
#line 66185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55176
66185
} // closed Puma
 
66186
class CCExprResolve;
 
66187
class CExprResolve;
55177
66188
class WinIfExists;
55178
66189
class WinImportHandler;
55179
66190
class WinMacros;
55180
 
class CMatchSyntax;
55181
 
class ExtGnu;
 
66191
class WinAsm;
 
66192
class WinDeclSpecs;
 
66193
class WinMemberExplSpec;
 
66194
class WinTypeKeywords;
 
66195
class WinFriend;
55182
66196
class ExtAC;
55183
66197
class ExtACBuilderCoupling;
55184
66198
class ExtACSyntaxCoupling;
55185
66199
class ExtACTree;
55186
66200
class ExtACKeywords;
55187
 
class WinAsm;
55188
 
class WinDeclSpecs;
55189
 
class WinMemberExplSpec;
55190
 
class WinTypeKeywords;
 
66201
class ExtGnu;
55191
66202
class PragmaOnceUnitState;
55192
66203
class PragmaOnce;
55193
 
class CCExprResolve;
55194
 
class CExprResolve;
 
66204
class CMatchSyntax;
55195
66205
namespace Puma {
55196
66206
 
55197
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66207
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55198
66208
class CT_Error : public CTree {
55199
 
#line 55200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66209
#line 66210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66210
  friend class ::CCExprResolve;
 
66211
  friend class ::CExprResolve;
55200
66212
  friend class ::WinIfExists;
55201
66213
  friend class ::WinImportHandler;
55202
66214
  friend class ::WinMacros;
55203
 
  friend class ::CMatchSyntax;
55204
 
  friend class ::ExtGnu;
 
66215
  friend class ::WinAsm;
 
66216
  friend class ::WinDeclSpecs;
 
66217
  friend class ::WinMemberExplSpec;
 
66218
  friend class ::WinTypeKeywords;
 
66219
  friend class ::WinFriend;
55205
66220
  friend class ::ExtAC;
55206
66221
  friend class ::ExtACBuilderCoupling;
55207
66222
  friend class ::ExtACSyntaxCoupling;
55208
66223
  friend class ::ExtACTree;
55209
66224
  friend class ::ExtACKeywords;
55210
 
  friend class ::WinAsm;
55211
 
  friend class ::WinDeclSpecs;
55212
 
  friend class ::WinMemberExplSpec;
55213
 
  friend class ::WinTypeKeywords;
 
66225
  friend class ::ExtGnu;
55214
66226
  friend class ::PragmaOnceUnitState;
55215
66227
  friend class ::PragmaOnce;
55216
 
  friend class ::CCExprResolve;
55217
 
  friend class ::CExprResolve;
 
66228
  friend class ::CMatchSyntax;
55218
66229
 
55219
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66230
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55220
66231
 
55221
66232
public:
 
66233
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55222
66234
  static const char *NodeId ();
 
66235
  /** Get the name of the node. Can be compared with NodeId(). */
55223
66236
  const char *NodeName () const { return NodeId (); }
 
66237
  /** Get the number of sons. */
55224
66238
  int Sons () const { return 0; }
55225
66239
};
55226
66240
 
 
66241
/** \class CT_Token CTree.h Puma/CTree.h
 
66242
 *  Tree node representing a single token in the source code. */
55227
66243
 
55228
 
#line 55229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66244
#line 66245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55229
66245
} // closed Puma
 
66246
class CCExprResolve;
 
66247
class CExprResolve;
55230
66248
class WinIfExists;
55231
66249
class WinImportHandler;
55232
66250
class WinMacros;
55233
 
class CMatchSyntax;
55234
 
class ExtGnu;
 
66251
class WinAsm;
 
66252
class WinDeclSpecs;
 
66253
class WinMemberExplSpec;
 
66254
class WinTypeKeywords;
 
66255
class WinFriend;
55235
66256
class ExtAC;
55236
66257
class ExtACBuilderCoupling;
55237
66258
class ExtACSyntaxCoupling;
55238
66259
class ExtACTree;
55239
66260
class ExtACKeywords;
55240
 
class WinAsm;
55241
 
class WinDeclSpecs;
55242
 
class WinMemberExplSpec;
55243
 
class WinTypeKeywords;
 
66261
class ExtGnu;
55244
66262
class PragmaOnceUnitState;
55245
66263
class PragmaOnce;
55246
 
class CCExprResolve;
55247
 
class CExprResolve;
 
66264
class CMatchSyntax;
55248
66265
namespace Puma {
55249
66266
 
55250
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66267
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55251
66268
class CT_Token : public CTree {
55252
 
#line 55253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66269
#line 66270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66270
  friend class ::CCExprResolve;
 
66271
  friend class ::CExprResolve;
55253
66272
  friend class ::WinIfExists;
55254
66273
  friend class ::WinImportHandler;
55255
66274
  friend class ::WinMacros;
55256
 
  friend class ::CMatchSyntax;
55257
 
  friend class ::ExtGnu;
 
66275
  friend class ::WinAsm;
 
66276
  friend class ::WinDeclSpecs;
 
66277
  friend class ::WinMemberExplSpec;
 
66278
  friend class ::WinTypeKeywords;
 
66279
  friend class ::WinFriend;
55258
66280
  friend class ::ExtAC;
55259
66281
  friend class ::ExtACBuilderCoupling;
55260
66282
  friend class ::ExtACSyntaxCoupling;
55261
66283
  friend class ::ExtACTree;
55262
66284
  friend class ::ExtACKeywords;
55263
 
  friend class ::WinAsm;
55264
 
  friend class ::WinDeclSpecs;
55265
 
  friend class ::WinMemberExplSpec;
55266
 
  friend class ::WinTypeKeywords;
 
66285
  friend class ::ExtGnu;
55267
66286
  friend class ::PragmaOnceUnitState;
55268
66287
  friend class ::PragmaOnce;
55269
 
  friend class ::CCExprResolve;
55270
 
  friend class ::CExprResolve;
 
66288
  friend class ::CMatchSyntax;
55271
66289
 
55272
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66290
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55273
66291
 
55274
66292
  Token *_token;
55275
66293
  unsigned long int _number;
55276
66294
  
55277
66295
public:
55278
 
  CT_Token (Token *t, unsigned long int n = 0) : 
55279
 
    _token (t), _number (n) {}
 
66296
  /** Constructor. 
 
66297
   *  \param token The represented token.
 
66298
   *  \param number The token number (a consecutive number). */
 
66299
  CT_Token (Token *token, unsigned long int number = 0) : 
 
66300
    _token (token), _number (number) {}
 
66301
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55280
66302
  static const char *NodeId ();
 
66303
  /** Get the name of the node. Can be compared with NodeId(). */
55281
66304
  const char *NodeName () const { return NodeId (); }
 
66305
  /** Get the number of sons. */
55282
66306
  int Sons () const { return 0; }
 
66307
  /** Get the represented token. */
55283
66308
  Token *token () const { return _token; }
 
66309
  /** Get the represented token. */
55284
66310
  Token *end_token () const { return _token; }
 
66311
  /** Get this. */
55285
66312
  CT_Token *token_node () const { return (CT_Token*)this; }
 
66313
  /** Get this. */
55286
66314
  CT_Token *end_token_node () const { return (CT_Token*)this; }
55287
 
  void Number (unsigned long int n) { _number = n; }
 
66315
  /** Set the token number. 
 
66316
   *  \param number The token number. */ 
 
66317
  void Number (unsigned long int number) { _number = number; }
 
66318
  /** Get the token number. Can be used to indentify this token. */
55288
66319
  unsigned long int Number () const { return _number; }
55289
 
  // special new / delete with reusing memory
 
66320
  
 
66321
public:
 
66322
  /** Own new operator reusing memory. */
55290
66323
  void *operator new (size_t);
55291
 
  void  operator delete (void *);
 
66324
  /** Own delete operator. */
 
66325
  void operator delete (void *);
55292
66326
};
55293
66327
 
55294
66328
/*****************************************************************************/
55297
66331
/*                                                                           */
55298
66332
/*****************************************************************************/
55299
66333
 
 
66334
/** \class CT_List CTree.h Puma/CTree.h
 
66335
 *  Base class for tree nodes representing lists. */
55300
66336
 
55301
 
#line 55302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66337
#line 66338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55302
66338
} // closed Puma
 
66339
class CCExprResolve;
 
66340
class CExprResolve;
55303
66341
class WinIfExists;
55304
66342
class WinImportHandler;
55305
66343
class WinMacros;
55306
 
class CMatchSyntax;
55307
 
class ExtGnu;
 
66344
class WinAsm;
 
66345
class WinDeclSpecs;
 
66346
class WinMemberExplSpec;
 
66347
class WinTypeKeywords;
 
66348
class WinFriend;
55308
66349
class ExtAC;
55309
66350
class ExtACBuilderCoupling;
55310
66351
class ExtACSyntaxCoupling;
55311
66352
class ExtACTree;
55312
66353
class ExtACKeywords;
55313
 
class WinAsm;
55314
 
class WinDeclSpecs;
55315
 
class WinMemberExplSpec;
55316
 
class WinTypeKeywords;
 
66354
class ExtGnu;
55317
66355
class PragmaOnceUnitState;
55318
66356
class PragmaOnce;
55319
 
class CCExprResolve;
55320
 
class CExprResolve;
 
66357
class CMatchSyntax;
55321
66358
namespace Puma {
55322
66359
 
55323
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66360
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55324
66361
class CT_List : public CTree {
55325
 
#line 55326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66362
#line 66363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66363
  friend class ::CCExprResolve;
 
66364
  friend class ::CExprResolve;
55326
66365
  friend class ::WinIfExists;
55327
66366
  friend class ::WinImportHandler;
55328
66367
  friend class ::WinMacros;
55329
 
  friend class ::CMatchSyntax;
55330
 
  friend class ::ExtGnu;
 
66368
  friend class ::WinAsm;
 
66369
  friend class ::WinDeclSpecs;
 
66370
  friend class ::WinMemberExplSpec;
 
66371
  friend class ::WinTypeKeywords;
 
66372
  friend class ::WinFriend;
55331
66373
  friend class ::ExtAC;
55332
66374
  friend class ::ExtACBuilderCoupling;
55333
66375
  friend class ::ExtACSyntaxCoupling;
55334
66376
  friend class ::ExtACTree;
55335
66377
  friend class ::ExtACKeywords;
55336
 
  friend class ::WinAsm;
55337
 
  friend class ::WinDeclSpecs;
55338
 
  friend class ::WinMemberExplSpec;
55339
 
  friend class ::WinTypeKeywords;
 
66378
  friend class ::ExtGnu;
55340
66379
  friend class ::PragmaOnceUnitState;
55341
66380
  friend class ::PragmaOnce;
55342
 
  friend class ::CCExprResolve;
55343
 
  friend class ::CExprResolve;
 
66381
  friend class ::CMatchSyntax;
55344
66382
 
55345
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66383
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55346
66384
 
55347
66385
  Array<CTree*> _sons;
55348
66386
  int _properties;
55349
66387
 
55350
66388
protected:
 
66389
  /** Constructor.
 
66390
   *  \param size The initial list size.
 
66391
   *  \param incr The initial increment count. 
 
66392
   *  \param props The list properties (bit array). */
55351
66393
  CT_List(int size = 5, int incr = 5, int props = 0) : 
55352
66394
    _sons (size, incr), _properties (props) {}
55353
66395
 
55354
66396
public:
 
66397
  /** List properties. */
55355
66398
  enum {
55356
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
55357
 
    CLOSE = 2,
55358
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
55359
 
    SEPARATORS = 4,   // the list has separators like ','
55360
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
55361
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
55362
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
55363
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
66399
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
66400
    CLOSE = 2,        /** List has an end token */
 
66401
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
66402
    SEPARATORS = 4,   /** List has separators, like ',' */
 
66403
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
66404
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
66405
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
66406
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
55364
66407
  };
55365
66408
 
 
66409
  /** Get the number of list entries. */
55366
66410
  int Entries () const;
55367
 
  CTree *Entry (int no) const;
 
66411
  /** Get the n-th list entry.
 
66412
   *  \param n The index of the entry. 
 
66413
   *  \return The list entry or NULL. */
 
66414
  CTree *Entry (int n) const;
 
66415
  /** Get the number of sons. */
55368
66416
  int Sons () const { return _sons.length (); }
 
66417
  /** Get the n-th son.
 
66418
   *  \param n The index of the son. 
 
66419
   *  \return The n-th son or NULL. */
55369
66420
  CTree *Son (int n) const { return _sons.lookup (n); }
 
66421
  /** Get the list properties. */
55370
66422
  int GetProperties () const { return _properties; }
 
66423
  /** Add a list property.
 
66424
   *  \param p The property to add. */
55371
66425
  void AddProperties (int p) { _properties |= p; }
55372
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
55373
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
55374
 
  void InsertSon (CTree *, CTree *);  // before given son
55375
 
  void ReplaceSon (CTree *, CTree *);
55376
 
  void RemoveSon (CTree *);
 
66426
  /** Add a son.
 
66427
   *  \param s The son to add. */
 
66428
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
66429
  /** Prepend a son.
 
66430
   *  \param s The son to prepend. */
 
66431
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
66432
  /** Insert a son before another son.
 
66433
   *  \param before The son to insert the new son before.
 
66434
   *  \param son The son to insert. */
 
66435
  void InsertSon (CTree *before, CTree *son); 
 
66436
  /** Replace a son.
 
66437
   *  \param old_son The son to replace.
 
66438
   *  \param new_son The new son. */
 
66439
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
66440
  /** Remove a son.
 
66441
   *  \param son The son to remove. */
 
66442
  void RemoveSon (CTree *son);
 
66443
  /** Insert a son at the given index. 
 
66444
   *  \param idx The index at which to insert.
 
66445
   *  \param s The son to insert. */
55377
66446
  void InsertSon (int idx, CTree *s)
55378
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
66447
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
66448
  /** Replace the son at the given index.
 
66449
   *  \param idx The index of the son to replace.
 
66450
   *  \param s The new son. */
55379
66451
  void ReplaceSon (int idx, CTree *s) 
55380
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
66452
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
66453
  /** Remove the son at the given index. 
 
66454
   *  \param idx The index of the son to remove. */
55381
66455
  void RemoveSon (int idx) 
55382
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
66456
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
55383
66457
};
55384
66458
 
 
66459
/** \class CT_ExprList CTree.h Puma/CTree.h
 
66460
 *  Tree node representing an expression list. */
55385
66461
 
55386
 
#line 55387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66462
#line 66463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55387
66463
} // closed Puma
 
66464
class CCExprResolve;
 
66465
class CExprResolve;
55388
66466
class WinIfExists;
55389
66467
class WinImportHandler;
55390
66468
class WinMacros;
55391
 
class CMatchSyntax;
55392
 
class ExtGnu;
 
66469
class WinAsm;
 
66470
class WinDeclSpecs;
 
66471
class WinMemberExplSpec;
 
66472
class WinTypeKeywords;
 
66473
class WinFriend;
55393
66474
class ExtAC;
55394
66475
class ExtACBuilderCoupling;
55395
66476
class ExtACSyntaxCoupling;
55396
66477
class ExtACTree;
55397
66478
class ExtACKeywords;
55398
 
class WinAsm;
55399
 
class WinDeclSpecs;
55400
 
class WinMemberExplSpec;
55401
 
class WinTypeKeywords;
 
66479
class ExtGnu;
55402
66480
class PragmaOnceUnitState;
55403
66481
class PragmaOnce;
55404
 
class CCExprResolve;
55405
 
class CExprResolve;
 
66482
class CMatchSyntax;
55406
66483
namespace Puma {
55407
66484
 
55408
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66485
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55409
66486
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
55410
 
#line 55411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66487
#line 66488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66488
  friend class ::CCExprResolve;
 
66489
  friend class ::CExprResolve;
55411
66490
  friend class ::WinIfExists;
55412
66491
  friend class ::WinImportHandler;
55413
66492
  friend class ::WinMacros;
55414
 
  friend class ::CMatchSyntax;
55415
 
  friend class ::ExtGnu;
 
66493
  friend class ::WinAsm;
 
66494
  friend class ::WinDeclSpecs;
 
66495
  friend class ::WinMemberExplSpec;
 
66496
  friend class ::WinTypeKeywords;
 
66497
  friend class ::WinFriend;
55416
66498
  friend class ::ExtAC;
55417
66499
  friend class ::ExtACBuilderCoupling;
55418
66500
  friend class ::ExtACSyntaxCoupling;
55419
66501
  friend class ::ExtACTree;
55420
66502
  friend class ::ExtACKeywords;
55421
 
  friend class ::WinAsm;
55422
 
  friend class ::WinDeclSpecs;
55423
 
  friend class ::WinMemberExplSpec;
55424
 
  friend class ::WinTypeKeywords;
 
66503
  friend class ::ExtGnu;
55425
66504
  friend class ::PragmaOnceUnitState;
55426
66505
  friend class ::PragmaOnce;
55427
 
  friend class ::CCExprResolve;
55428
 
  friend class ::CExprResolve;
 
66506
  friend class ::CMatchSyntax;
55429
66507
 
55430
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66508
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55431
66509
 
55432
66510
public:
 
66511
  /** Constructor. */
55433
66512
  CT_ExprList () { AddProperties (SEPARATORS); }
 
66513
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55434
66514
  static const char *NodeId ();
 
66515
  /** Get the name of the node. Can be compared with NodeId(). */
55435
66516
  const char *NodeName () const { return NodeId (); }
55436
66517
 
 
66518
  /** Get the type of the last expression in the expression list.
 
66519
   *  \return The type or NULL. */
55437
66520
  CTypeInfo *Type () const { return type; }
 
66521
  /** Get the value of the last expression in the expression list.
 
66522
   *  \return The value of NULL. */
55438
66523
  CExprValue *Value () const { return value; }
 
66524
  /** Get the semantic value of the node. */
55439
66525
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
66526
  /** Get the semantic object of the node. */
55440
66527
  CSemObject *SemObject () const { return (CSemObject*)this; }
55441
66528
};
55442
66529
 
 
66530
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
66531
 *  Tree node representing a list of declarators. */
55443
66532
 
55444
 
#line 55445 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66533
#line 66534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55445
66534
} // closed Puma
 
66535
class CCExprResolve;
 
66536
class CExprResolve;
55446
66537
class WinIfExists;
55447
66538
class WinImportHandler;
55448
66539
class WinMacros;
55449
 
class CMatchSyntax;
55450
 
class ExtGnu;
 
66540
class WinAsm;
 
66541
class WinDeclSpecs;
 
66542
class WinMemberExplSpec;
 
66543
class WinTypeKeywords;
 
66544
class WinFriend;
55451
66545
class ExtAC;
55452
66546
class ExtACBuilderCoupling;
55453
66547
class ExtACSyntaxCoupling;
55454
66548
class ExtACTree;
55455
66549
class ExtACKeywords;
55456
 
class WinAsm;
55457
 
class WinDeclSpecs;
55458
 
class WinMemberExplSpec;
55459
 
class WinTypeKeywords;
 
66550
class ExtGnu;
55460
66551
class PragmaOnceUnitState;
55461
66552
class PragmaOnce;
55462
 
class CCExprResolve;
55463
 
class CExprResolve;
 
66553
class CMatchSyntax;
55464
66554
namespace Puma {
55465
66555
 
55466
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66556
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55467
66557
class CT_DeclaratorList : public CT_List {
55468
 
#line 55469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66558
#line 66559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66559
  friend class ::CCExprResolve;
 
66560
  friend class ::CExprResolve;
55469
66561
  friend class ::WinIfExists;
55470
66562
  friend class ::WinImportHandler;
55471
66563
  friend class ::WinMacros;
55472
 
  friend class ::CMatchSyntax;
55473
 
  friend class ::ExtGnu;
 
66564
  friend class ::WinAsm;
 
66565
  friend class ::WinDeclSpecs;
 
66566
  friend class ::WinMemberExplSpec;
 
66567
  friend class ::WinTypeKeywords;
 
66568
  friend class ::WinFriend;
55474
66569
  friend class ::ExtAC;
55475
66570
  friend class ::ExtACBuilderCoupling;
55476
66571
  friend class ::ExtACSyntaxCoupling;
55477
66572
  friend class ::ExtACTree;
55478
66573
  friend class ::ExtACKeywords;
55479
 
  friend class ::WinAsm;
55480
 
  friend class ::WinDeclSpecs;
55481
 
  friend class ::WinMemberExplSpec;
55482
 
  friend class ::WinTypeKeywords;
 
66574
  friend class ::ExtGnu;
55483
66575
  friend class ::PragmaOnceUnitState;
55484
66576
  friend class ::PragmaOnce;
55485
 
  friend class ::CCExprResolve;
55486
 
  friend class ::CExprResolve;
 
66577
  friend class ::CMatchSyntax;
55487
66578
 
55488
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66579
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55489
66580
 
55490
66581
public:
 
66582
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55491
66583
  static const char *NodeId ();
 
66584
  /** Get the name of the node. Can be compared with NodeId(). */
55492
66585
  const char *NodeName () const { return NodeId (); }
55493
66586
};
55494
66587
 
 
66588
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
66589
 *  Tree node representing a list of enumerator constants. */
55495
66590
 
55496
 
#line 55497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66591
#line 66592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55497
66592
} // closed Puma
 
66593
class CCExprResolve;
 
66594
class CExprResolve;
55498
66595
class WinIfExists;
55499
66596
class WinImportHandler;
55500
66597
class WinMacros;
55501
 
class CMatchSyntax;
55502
 
class ExtGnu;
 
66598
class WinAsm;
 
66599
class WinDeclSpecs;
 
66600
class WinMemberExplSpec;
 
66601
class WinTypeKeywords;
 
66602
class WinFriend;
55503
66603
class ExtAC;
55504
66604
class ExtACBuilderCoupling;
55505
66605
class ExtACSyntaxCoupling;
55506
66606
class ExtACTree;
55507
66607
class ExtACKeywords;
55508
 
class WinAsm;
55509
 
class WinDeclSpecs;
55510
 
class WinMemberExplSpec;
55511
 
class WinTypeKeywords;
 
66608
class ExtGnu;
55512
66609
class PragmaOnceUnitState;
55513
66610
class PragmaOnce;
55514
 
class CCExprResolve;
55515
 
class CExprResolve;
 
66611
class CMatchSyntax;
55516
66612
namespace Puma {
55517
66613
 
55518
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66614
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55519
66615
class CT_EnumeratorList : public CT_List {
55520
 
#line 55521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66616
#line 66617 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66617
  friend class ::CCExprResolve;
 
66618
  friend class ::CExprResolve;
55521
66619
  friend class ::WinIfExists;
55522
66620
  friend class ::WinImportHandler;
55523
66621
  friend class ::WinMacros;
55524
 
  friend class ::CMatchSyntax;
55525
 
  friend class ::ExtGnu;
 
66622
  friend class ::WinAsm;
 
66623
  friend class ::WinDeclSpecs;
 
66624
  friend class ::WinMemberExplSpec;
 
66625
  friend class ::WinTypeKeywords;
 
66626
  friend class ::WinFriend;
55526
66627
  friend class ::ExtAC;
55527
66628
  friend class ::ExtACBuilderCoupling;
55528
66629
  friend class ::ExtACSyntaxCoupling;
55529
66630
  friend class ::ExtACTree;
55530
66631
  friend class ::ExtACKeywords;
55531
 
  friend class ::WinAsm;
55532
 
  friend class ::WinDeclSpecs;
55533
 
  friend class ::WinMemberExplSpec;
55534
 
  friend class ::WinTypeKeywords;
 
66632
  friend class ::ExtGnu;
55535
66633
  friend class ::PragmaOnceUnitState;
55536
66634
  friend class ::PragmaOnce;
55537
 
  friend class ::CCExprResolve;
55538
 
  friend class ::CExprResolve;
 
66635
  friend class ::CMatchSyntax;
55539
66636
 
55540
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66637
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55541
66638
 
55542
66639
public:
 
66640
  /** Constructor. */
55543
66641
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
66642
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55544
66643
  static const char *NodeId ();
 
66644
  /** Get the name of the node. Can be compared with NodeId(). */
55545
66645
  const char *NodeName () const { return NodeId (); }
55546
66646
};
55547
66647
   
 
66648
/** \class CT_DeclList CTree.h Puma/CTree.h
 
66649
 *  Tree node representing a list of declarations. */
55548
66650
 
55549
 
#line 55550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66651
#line 66652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55550
66652
} // closed Puma
 
66653
class CCExprResolve;
 
66654
class CExprResolve;
55551
66655
class WinIfExists;
55552
66656
class WinImportHandler;
55553
66657
class WinMacros;
55554
 
class CMatchSyntax;
55555
 
class ExtGnu;
 
66658
class WinAsm;
 
66659
class WinDeclSpecs;
 
66660
class WinMemberExplSpec;
 
66661
class WinTypeKeywords;
 
66662
class WinFriend;
55556
66663
class ExtAC;
55557
66664
class ExtACBuilderCoupling;
55558
66665
class ExtACSyntaxCoupling;
55559
66666
class ExtACTree;
55560
66667
class ExtACKeywords;
55561
 
class WinAsm;
55562
 
class WinDeclSpecs;
55563
 
class WinMemberExplSpec;
55564
 
class WinTypeKeywords;
 
66668
class ExtGnu;
55565
66669
class PragmaOnceUnitState;
55566
66670
class PragmaOnce;
55567
 
class CCExprResolve;
55568
 
class CExprResolve;
 
66671
class CMatchSyntax;
55569
66672
namespace Puma {
55570
66673
 
55571
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66674
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55572
66675
class CT_DeclList : public CT_List {
55573
 
#line 55574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66676
#line 66677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66677
  friend class ::CCExprResolve;
 
66678
  friend class ::CExprResolve;
55574
66679
  friend class ::WinIfExists;
55575
66680
  friend class ::WinImportHandler;
55576
66681
  friend class ::WinMacros;
55577
 
  friend class ::CMatchSyntax;
55578
 
  friend class ::ExtGnu;
 
66682
  friend class ::WinAsm;
 
66683
  friend class ::WinDeclSpecs;
 
66684
  friend class ::WinMemberExplSpec;
 
66685
  friend class ::WinTypeKeywords;
 
66686
  friend class ::WinFriend;
55579
66687
  friend class ::ExtAC;
55580
66688
  friend class ::ExtACBuilderCoupling;
55581
66689
  friend class ::ExtACSyntaxCoupling;
55582
66690
  friend class ::ExtACTree;
55583
66691
  friend class ::ExtACKeywords;
55584
 
  friend class ::WinAsm;
55585
 
  friend class ::WinDeclSpecs;
55586
 
  friend class ::WinMemberExplSpec;
55587
 
  friend class ::WinTypeKeywords;
 
66692
  friend class ::ExtGnu;
55588
66693
  friend class ::PragmaOnceUnitState;
55589
66694
  friend class ::PragmaOnce;
55590
 
  friend class ::CCExprResolve;
55591
 
  friend class ::CExprResolve;
 
66695
  friend class ::CMatchSyntax;
55592
66696
 
55593
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66697
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55594
66698
 
55595
66699
public:
 
66700
  /** Constructor. 
 
66701
   *  \param size The initial size of the list.
 
66702
   *  \param incr The initial increment count of the list. */
55596
66703
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
66704
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55597
66705
  static const char *NodeId ();
 
66706
  /** Get the name of the node. Can be compared with NodeId(). */
55598
66707
  const char *NodeName () const { return NodeId (); }
 
66708
  /** Set the linkage specifiers to each declaration in the list.
 
66709
   *  \param l The linkage specifiers node. */
55599
66710
  void Linkage (CT_LinkageSpec *l);
55600
66711
};
55601
66712
 
 
66713
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
66714
 *  Tree node representing a sequence of declaration specifiers. */
55602
66715
 
55603
 
#line 55604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66716
#line 66717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55604
66717
} // closed Puma
 
66718
class CCExprResolve;
 
66719
class CExprResolve;
55605
66720
class WinIfExists;
55606
66721
class WinImportHandler;
55607
66722
class WinMacros;
55608
 
class CMatchSyntax;
55609
 
class ExtGnu;
 
66723
class WinAsm;
 
66724
class WinDeclSpecs;
 
66725
class WinMemberExplSpec;
 
66726
class WinTypeKeywords;
 
66727
class WinFriend;
55610
66728
class ExtAC;
55611
66729
class ExtACBuilderCoupling;
55612
66730
class ExtACSyntaxCoupling;
55613
66731
class ExtACTree;
55614
66732
class ExtACKeywords;
55615
 
class WinAsm;
55616
 
class WinDeclSpecs;
55617
 
class WinMemberExplSpec;
55618
 
class WinTypeKeywords;
 
66733
class ExtGnu;
55619
66734
class PragmaOnceUnitState;
55620
66735
class PragmaOnce;
55621
 
class CCExprResolve;
55622
 
class CExprResolve;
 
66736
class CMatchSyntax;
55623
66737
namespace Puma {
55624
66738
 
55625
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66739
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55626
66740
class CT_DeclSpecSeq : public CT_List {
55627
 
#line 55628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66741
#line 66742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66742
  friend class ::CCExprResolve;
 
66743
  friend class ::CExprResolve;
55628
66744
  friend class ::WinIfExists;
55629
66745
  friend class ::WinImportHandler;
55630
66746
  friend class ::WinMacros;
55631
 
  friend class ::CMatchSyntax;
55632
 
  friend class ::ExtGnu;
 
66747
  friend class ::WinAsm;
 
66748
  friend class ::WinDeclSpecs;
 
66749
  friend class ::WinMemberExplSpec;
 
66750
  friend class ::WinTypeKeywords;
 
66751
  friend class ::WinFriend;
55633
66752
  friend class ::ExtAC;
55634
66753
  friend class ::ExtACBuilderCoupling;
55635
66754
  friend class ::ExtACSyntaxCoupling;
55636
66755
  friend class ::ExtACTree;
55637
66756
  friend class ::ExtACKeywords;
55638
 
  friend class ::WinAsm;
55639
 
  friend class ::WinDeclSpecs;
55640
 
  friend class ::WinMemberExplSpec;
55641
 
  friend class ::WinTypeKeywords;
 
66757
  friend class ::ExtGnu;
55642
66758
  friend class ::PragmaOnceUnitState;
55643
66759
  friend class ::PragmaOnce;
55644
 
  friend class ::CCExprResolve;
55645
 
  friend class ::CExprResolve;
 
66760
  friend class ::CMatchSyntax;
55646
66761
 
55647
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66762
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55648
66763
 
55649
66764
public:
 
66765
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55650
66766
  static const char *NodeId ();
 
66767
  /** Get the name of the node. Can be compared with NodeId(). */
55651
66768
  const char *NodeName () const { return NodeId (); }
55652
66769
};
55653
66770
 
 
66771
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
66772
 *  Tree node representing a compound statement. */
55654
66773
 
55655
 
#line 55656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66774
#line 66775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55656
66775
} // closed Puma
 
66776
class CCExprResolve;
 
66777
class CExprResolve;
55657
66778
class WinIfExists;
55658
66779
class WinImportHandler;
55659
66780
class WinMacros;
55660
 
class CMatchSyntax;
55661
 
class ExtGnu;
 
66781
class WinAsm;
 
66782
class WinDeclSpecs;
 
66783
class WinMemberExplSpec;
 
66784
class WinTypeKeywords;
 
66785
class WinFriend;
55662
66786
class ExtAC;
55663
66787
class ExtACBuilderCoupling;
55664
66788
class ExtACSyntaxCoupling;
55665
66789
class ExtACTree;
55666
66790
class ExtACKeywords;
55667
 
class WinAsm;
55668
 
class WinDeclSpecs;
55669
 
class WinMemberExplSpec;
55670
 
class WinTypeKeywords;
 
66791
class ExtGnu;
55671
66792
class PragmaOnceUnitState;
55672
66793
class PragmaOnce;
55673
 
class CCExprResolve;
55674
 
class CExprResolve;
 
66794
class CMatchSyntax;
55675
66795
namespace Puma {
55676
66796
 
55677
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66797
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55678
66798
class CT_CmpdStmt : public CT_List, public CSemScope {
55679
 
#line 55680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66799
#line 66800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66800
  friend class ::CCExprResolve;
 
66801
  friend class ::CExprResolve;
55680
66802
  friend class ::WinIfExists;
55681
66803
  friend class ::WinImportHandler;
55682
66804
  friend class ::WinMacros;
55683
 
  friend class ::CMatchSyntax;
55684
 
  friend class ::ExtGnu;
 
66805
  friend class ::WinAsm;
 
66806
  friend class ::WinDeclSpecs;
 
66807
  friend class ::WinMemberExplSpec;
 
66808
  friend class ::WinTypeKeywords;
 
66809
  friend class ::WinFriend;
55685
66810
  friend class ::ExtAC;
55686
66811
  friend class ::ExtACBuilderCoupling;
55687
66812
  friend class ::ExtACSyntaxCoupling;
55688
66813
  friend class ::ExtACTree;
55689
66814
  friend class ::ExtACKeywords;
55690
 
  friend class ::WinAsm;
55691
 
  friend class ::WinDeclSpecs;
55692
 
  friend class ::WinMemberExplSpec;
55693
 
  friend class ::WinTypeKeywords;
 
66815
  friend class ::ExtGnu;
55694
66816
  friend class ::PragmaOnceUnitState;
55695
66817
  friend class ::PragmaOnce;
55696
 
  friend class ::CCExprResolve;
55697
 
  friend class ::CExprResolve;
 
66818
  friend class ::CMatchSyntax;
55698
66819
 
55699
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66820
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55700
66821
 
55701
66822
public:
 
66823
  /* Constructor. */
55702
66824
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
66825
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55703
66826
  static const char *NodeId ();
 
66827
  /** Get the name of the node. Can be compared with NodeId(). */
55704
66828
  const char *NodeName () const { return NodeId (); }
 
66829
  /** Get the local scope of the compound statement. */
 
66830
  CSemScope *SemScope () const { return (CSemScope*)this; }
55705
66831
};
55706
66832
 
 
66833
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
66834
 *  Tree node representing an exception handler sequence. */
55707
66835
 
55708
 
#line 55709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66836
#line 66837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55709
66837
} // closed Puma
 
66838
class CCExprResolve;
 
66839
class CExprResolve;
55710
66840
class WinIfExists;
55711
66841
class WinImportHandler;
55712
66842
class WinMacros;
55713
 
class CMatchSyntax;
55714
 
class ExtGnu;
 
66843
class WinAsm;
 
66844
class WinDeclSpecs;
 
66845
class WinMemberExplSpec;
 
66846
class WinTypeKeywords;
 
66847
class WinFriend;
55715
66848
class ExtAC;
55716
66849
class ExtACBuilderCoupling;
55717
66850
class ExtACSyntaxCoupling;
55718
66851
class ExtACTree;
55719
66852
class ExtACKeywords;
55720
 
class WinAsm;
55721
 
class WinDeclSpecs;
55722
 
class WinMemberExplSpec;
55723
 
class WinTypeKeywords;
 
66853
class ExtGnu;
55724
66854
class PragmaOnceUnitState;
55725
66855
class PragmaOnce;
55726
 
class CCExprResolve;
55727
 
class CExprResolve;
 
66856
class CMatchSyntax;
55728
66857
namespace Puma {
55729
66858
 
55730
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66859
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55731
66860
class CT_HandlerSeq : public CT_List {
55732
 
#line 55733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66861
#line 66862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66862
  friend class ::CCExprResolve;
 
66863
  friend class ::CExprResolve;
55733
66864
  friend class ::WinIfExists;
55734
66865
  friend class ::WinImportHandler;
55735
66866
  friend class ::WinMacros;
55736
 
  friend class ::CMatchSyntax;
55737
 
  friend class ::ExtGnu;
 
66867
  friend class ::WinAsm;
 
66868
  friend class ::WinDeclSpecs;
 
66869
  friend class ::WinMemberExplSpec;
 
66870
  friend class ::WinTypeKeywords;
 
66871
  friend class ::WinFriend;
55738
66872
  friend class ::ExtAC;
55739
66873
  friend class ::ExtACBuilderCoupling;
55740
66874
  friend class ::ExtACSyntaxCoupling;
55741
66875
  friend class ::ExtACTree;
55742
66876
  friend class ::ExtACKeywords;
55743
 
  friend class ::WinAsm;
55744
 
  friend class ::WinDeclSpecs;
55745
 
  friend class ::WinMemberExplSpec;
55746
 
  friend class ::WinTypeKeywords;
 
66877
  friend class ::ExtGnu;
55747
66878
  friend class ::PragmaOnceUnitState;
55748
66879
  friend class ::PragmaOnce;
55749
 
  friend class ::CCExprResolve;
55750
 
  friend class ::CExprResolve;
 
66880
  friend class ::CMatchSyntax;
55751
66881
 
55752
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66882
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55753
66883
 
55754
66884
public:
 
66885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55755
66886
  static const char *NodeId ();
 
66887
  /** Get the name of the node. Can be compared with NodeId(). */
55756
66888
  const char *NodeName () const { return NodeId (); }
55757
66889
};
55758
66890
 
 
66891
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
66892
 *  Tree node representing a template parameter list. */
55759
66893
 
55760
 
#line 55761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66894
#line 66895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55761
66895
} // closed Puma
 
66896
class CCExprResolve;
 
66897
class CExprResolve;
55762
66898
class WinIfExists;
55763
66899
class WinImportHandler;
55764
66900
class WinMacros;
55765
 
class CMatchSyntax;
55766
 
class ExtGnu;
 
66901
class WinAsm;
 
66902
class WinDeclSpecs;
 
66903
class WinMemberExplSpec;
 
66904
class WinTypeKeywords;
 
66905
class WinFriend;
55767
66906
class ExtAC;
55768
66907
class ExtACBuilderCoupling;
55769
66908
class ExtACSyntaxCoupling;
55770
66909
class ExtACTree;
55771
66910
class ExtACKeywords;
55772
 
class WinAsm;
55773
 
class WinDeclSpecs;
55774
 
class WinMemberExplSpec;
55775
 
class WinTypeKeywords;
 
66911
class ExtGnu;
55776
66912
class PragmaOnceUnitState;
55777
66913
class PragmaOnce;
55778
 
class CCExprResolve;
55779
 
class CExprResolve;
 
66914
class CMatchSyntax;
55780
66915
namespace Puma {
55781
66916
 
55782
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66917
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55783
66918
class CT_TemplateParamList : public CT_List, public CSemScope {
55784
 
#line 55785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66919
#line 66920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66920
  friend class ::CCExprResolve;
 
66921
  friend class ::CExprResolve;
55785
66922
  friend class ::WinIfExists;
55786
66923
  friend class ::WinImportHandler;
55787
66924
  friend class ::WinMacros;
55788
 
  friend class ::CMatchSyntax;
55789
 
  friend class ::ExtGnu;
 
66925
  friend class ::WinAsm;
 
66926
  friend class ::WinDeclSpecs;
 
66927
  friend class ::WinMemberExplSpec;
 
66928
  friend class ::WinTypeKeywords;
 
66929
  friend class ::WinFriend;
55790
66930
  friend class ::ExtAC;
55791
66931
  friend class ::ExtACBuilderCoupling;
55792
66932
  friend class ::ExtACSyntaxCoupling;
55793
66933
  friend class ::ExtACTree;
55794
66934
  friend class ::ExtACKeywords;
55795
 
  friend class ::WinAsm;
55796
 
  friend class ::WinDeclSpecs;
55797
 
  friend class ::WinMemberExplSpec;
55798
 
  friend class ::WinTypeKeywords;
 
66935
  friend class ::ExtGnu;
55799
66936
  friend class ::PragmaOnceUnitState;
55800
66937
  friend class ::PragmaOnce;
55801
 
  friend class ::CCExprResolve;
55802
 
  friend class ::CExprResolve;
 
66938
  friend class ::CMatchSyntax;
55803
66939
 
55804
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66940
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55805
66941
 
55806
66942
public:
55807
66943
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
66944
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55808
66945
  static const char *NodeId ();
 
66946
  /** Get the name of the node. Can be compared with NodeId(). */
55809
66947
  const char *NodeName () const { return NodeId (); }
 
66948
  /** Get the scope of the template parameter list. */
 
66949
  CSemScope *SemScope () const { return (CSemScope*)this; }
55810
66950
};
55811
66951
 
 
66952
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
66953
 *  Tree node representing a template argument list. */
55812
66954
 
55813
 
#line 55814 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66955
#line 66956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55814
66956
} // closed Puma
 
66957
class CCExprResolve;
 
66958
class CExprResolve;
55815
66959
class WinIfExists;
55816
66960
class WinImportHandler;
55817
66961
class WinMacros;
55818
 
class CMatchSyntax;
55819
 
class ExtGnu;
 
66962
class WinAsm;
 
66963
class WinDeclSpecs;
 
66964
class WinMemberExplSpec;
 
66965
class WinTypeKeywords;
 
66966
class WinFriend;
55820
66967
class ExtAC;
55821
66968
class ExtACBuilderCoupling;
55822
66969
class ExtACSyntaxCoupling;
55823
66970
class ExtACTree;
55824
66971
class ExtACKeywords;
55825
 
class WinAsm;
55826
 
class WinDeclSpecs;
55827
 
class WinMemberExplSpec;
55828
 
class WinTypeKeywords;
 
66972
class ExtGnu;
55829
66973
class PragmaOnceUnitState;
55830
66974
class PragmaOnce;
55831
 
class CCExprResolve;
55832
 
class CExprResolve;
 
66975
class CMatchSyntax;
55833
66976
namespace Puma {
55834
66977
 
55835
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66978
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55836
66979
class CT_TemplateArgList : public CT_List {
55837
 
#line 55838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
66980
#line 66981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
66981
  friend class ::CCExprResolve;
 
66982
  friend class ::CExprResolve;
55838
66983
  friend class ::WinIfExists;
55839
66984
  friend class ::WinImportHandler;
55840
66985
  friend class ::WinMacros;
55841
 
  friend class ::CMatchSyntax;
55842
 
  friend class ::ExtGnu;
 
66986
  friend class ::WinAsm;
 
66987
  friend class ::WinDeclSpecs;
 
66988
  friend class ::WinMemberExplSpec;
 
66989
  friend class ::WinTypeKeywords;
 
66990
  friend class ::WinFriend;
55843
66991
  friend class ::ExtAC;
55844
66992
  friend class ::ExtACBuilderCoupling;
55845
66993
  friend class ::ExtACSyntaxCoupling;
55846
66994
  friend class ::ExtACTree;
55847
66995
  friend class ::ExtACKeywords;
55848
 
  friend class ::WinAsm;
55849
 
  friend class ::WinDeclSpecs;
55850
 
  friend class ::WinMemberExplSpec;
55851
 
  friend class ::WinTypeKeywords;
 
66996
  friend class ::ExtGnu;
55852
66997
  friend class ::PragmaOnceUnitState;
55853
66998
  friend class ::PragmaOnce;
55854
 
  friend class ::CCExprResolve;
55855
 
  friend class ::CExprResolve;
 
66999
  friend class ::CMatchSyntax;
55856
67000
 
55857
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67001
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55858
67002
 
55859
67003
public:
 
67004
  /** Constructor. */
55860
67005
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
67006
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55861
67007
  static const char *NodeId ();
 
67008
  /** Get the name of the node. Can be compared with NodeId(). */
55862
67009
  const char *NodeName () const { return NodeId (); }
55863
67010
};
55864
67011
 
55868
67015
/*                                                                           */
55869
67016
/*****************************************************************************/
55870
67017
 
 
67018
/** \class CT_Expression CTree.h Puma/CTree.h
 
67019
 *  Base class for all expression tree nodes. */
55871
67020
 
55872
 
#line 55873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67021
#line 67022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
55873
67022
} // closed Puma
 
67023
class CCExprResolve;
 
67024
class CExprResolve;
55874
67025
class WinIfExists;
55875
67026
class WinImportHandler;
55876
67027
class WinMacros;
55877
 
class CMatchSyntax;
55878
 
class ExtGnu;
 
67028
class WinAsm;
 
67029
class WinDeclSpecs;
 
67030
class WinMemberExplSpec;
 
67031
class WinTypeKeywords;
 
67032
class WinFriend;
55879
67033
class ExtAC;
55880
67034
class ExtACBuilderCoupling;
55881
67035
class ExtACSyntaxCoupling;
55882
67036
class ExtACTree;
55883
67037
class ExtACKeywords;
55884
 
class WinAsm;
55885
 
class WinDeclSpecs;
55886
 
class WinMemberExplSpec;
55887
 
class WinTypeKeywords;
 
67038
class ExtGnu;
55888
67039
class PragmaOnceUnitState;
55889
67040
class PragmaOnce;
55890
 
class CCExprResolve;
55891
 
class CExprResolve;
55892
 
namespace Puma {
55893
 
 
55894
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67041
class CMatchSyntax;
 
67042
namespace Puma {
 
67043
 
 
67044
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67045
 
 
67046
#line 67047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67047
} // closed Puma
 
67048
 
 
67049
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67050
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67051
#include "CCExprResolveH.ah"
 
67052
#endif
 
67053
namespace Puma {
 
67054
 
 
67055
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67056
 
 
67057
#line 67058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67058
} // closed Puma
 
67059
 
 
67060
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67061
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67062
#include "CExprResolveH.ah"
 
67063
#endif
 
67064
namespace Puma {
 
67065
 
 
67066
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55895
67067
class CT_Expression : public CTree, public CSemValue {
55896
 
#line 55897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67068
#line 67069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67069
  friend class ::CCExprResolve;
 
67070
  friend class ::CExprResolve;
55897
67071
  friend class ::WinIfExists;
55898
67072
  friend class ::WinImportHandler;
55899
67073
  friend class ::WinMacros;
55900
 
  friend class ::CMatchSyntax;
55901
 
  friend class ::ExtGnu;
 
67074
  friend class ::WinAsm;
 
67075
  friend class ::WinDeclSpecs;
 
67076
  friend class ::WinMemberExplSpec;
 
67077
  friend class ::WinTypeKeywords;
 
67078
  friend class ::WinFriend;
55902
67079
  friend class ::ExtAC;
55903
67080
  friend class ::ExtACBuilderCoupling;
55904
67081
  friend class ::ExtACSyntaxCoupling;
55905
67082
  friend class ::ExtACTree;
55906
67083
  friend class ::ExtACKeywords;
55907
 
  friend class ::WinAsm;
55908
 
  friend class ::WinDeclSpecs;
55909
 
  friend class ::WinMemberExplSpec;
55910
 
  friend class ::WinTypeKeywords;
 
67084
  friend class ::ExtGnu;
55911
67085
  friend class ::PragmaOnceUnitState;
55912
67086
  friend class ::PragmaOnce;
55913
 
  friend class ::CCExprResolve;
55914
 
  friend class ::CExprResolve;
 
67087
  friend class ::CMatchSyntax;
55915
67088
 
55916
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67089
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55917
67090
 
55918
67091
protected:
 
67092
  /** Constructor. */
55919
67093
  CT_Expression () {}
55920
67094
 
55921
67095
public:
 
67096
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55922
67097
  static const char *NodeId ();
 
67098
  /** Get the name of the node. Can be compared with NodeId(). */
55923
67099
  const char *NodeName () const { return NodeId (); }
 
67100
  /** Get the type of the expression.
 
67101
   *  \return The type information object or NULL. */
55924
67102
  CTypeInfo *Type () const { return type; }
 
67103
  /** Get the value of the expression.
 
67104
   *  \return The value object or NULL. */
55925
67105
  CExprValue *Value () const { return value; }
 
67106
  /** Get the semantic value information of the expression.
 
67107
   *  \return The value object or NULL. */
55926
67108
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
67109
  /** Get this. */
 
67110
  virtual CT_Expression *IsExpression () { return this; }
55927
67111
   private:
55928
67112
  typedef CT_Expression CCExprResolveExpr;
55929
67113
 
55930
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67114
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55931
67115
 public :
55932
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67116
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
55933
67117
  typedef CT_Expression CExprResolveExpr;
55934
67118
 
55935
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55936
 
 public :
55937
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55938
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55939
 
};
55940
 
 
55941
 
 
55942
 
#line 55943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
55943
 
} // closed Puma
55944
 
class WinIfExists;
55945
 
class WinImportHandler;
55946
 
class WinMacros;
55947
 
class CMatchSyntax;
55948
 
class ExtGnu;
55949
 
class ExtAC;
55950
 
class ExtACBuilderCoupling;
55951
 
class ExtACSyntaxCoupling;
55952
 
class ExtACTree;
55953
 
class ExtACKeywords;
55954
 
class WinAsm;
55955
 
class WinDeclSpecs;
55956
 
class WinMemberExplSpec;
55957
 
class WinTypeKeywords;
55958
 
class PragmaOnceUnitState;
55959
 
class PragmaOnce;
55960
 
class CCExprResolve;
55961
 
class CExprResolve;
55962
 
namespace Puma {
55963
 
 
55964
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67119
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67120
 public :
 
67121
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67122
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67123
};
 
67124
 
 
67125
/** \class CT_Call CTree.h Puma/CTree.h
 
67126
 *  Tree node representing explicit or implicit function calls 
 
67127
 *  including built-in or user-defined functions and overloaded
 
67128
 *  operators. */
 
67129
 
 
67130
#line 67131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67131
} // closed Puma
 
67132
class CCExprResolve;
 
67133
class CExprResolve;
 
67134
class WinIfExists;
 
67135
class WinImportHandler;
 
67136
class WinMacros;
 
67137
class WinAsm;
 
67138
class WinDeclSpecs;
 
67139
class WinMemberExplSpec;
 
67140
class WinTypeKeywords;
 
67141
class WinFriend;
 
67142
class ExtAC;
 
67143
class ExtACBuilderCoupling;
 
67144
class ExtACSyntaxCoupling;
 
67145
class ExtACTree;
 
67146
class ExtACKeywords;
 
67147
class ExtGnu;
 
67148
class PragmaOnceUnitState;
 
67149
class PragmaOnce;
 
67150
class CMatchSyntax;
 
67151
namespace Puma {
 
67152
 
 
67153
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67154
 
 
67155
#line 67156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67156
} // closed Puma
 
67157
 
 
67158
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67159
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67160
#include "CCExprResolveH.ah"
 
67161
#endif
 
67162
namespace Puma {
 
67163
 
 
67164
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67165
 
 
67166
#line 67167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67167
} // closed Puma
 
67168
 
 
67169
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67170
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67171
#include "CExprResolveH.ah"
 
67172
#endif
 
67173
namespace Puma {
 
67174
 
 
67175
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67176
class CT_Call : public CT_Expression, public CSemObject {
 
67177
#line 67178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67178
  friend class ::CCExprResolve;
 
67179
  friend class ::CExprResolve;
 
67180
  friend class ::WinIfExists;
 
67181
  friend class ::WinImportHandler;
 
67182
  friend class ::WinMacros;
 
67183
  friend class ::WinAsm;
 
67184
  friend class ::WinDeclSpecs;
 
67185
  friend class ::WinMemberExplSpec;
 
67186
  friend class ::WinTypeKeywords;
 
67187
  friend class ::WinFriend;
 
67188
  friend class ::ExtAC;
 
67189
  friend class ::ExtACBuilderCoupling;
 
67190
  friend class ::ExtACSyntaxCoupling;
 
67191
  friend class ::ExtACTree;
 
67192
  friend class ::ExtACKeywords;
 
67193
  friend class ::ExtGnu;
 
67194
  friend class ::PragmaOnceUnitState;
 
67195
  friend class ::PragmaOnce;
 
67196
  friend class ::CMatchSyntax;
 
67197
 
 
67198
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67199
 
 
67200
protected:
 
67201
  /** Constructor. */
 
67202
  CT_Call () {}
 
67203
  
 
67204
public:
 
67205
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67206
  static const char *NodeId ();
 
67207
  /** Get the name of the node. Can be compared with NodeId(). */
 
67208
  const char *NodeName () const { return NodeId (); }
 
67209
  /** Get the semantic information of the call.
 
67210
   *  \return The semantic information or NULL. */
 
67211
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
67212
  /** Get this. */
 
67213
  CT_Call *IsCall () { return this; }
 
67214
   private:
 
67215
  typedef CT_Call CCExprResolveExpr;
 
67216
 
 
67217
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67218
 public :
 
67219
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
67220
  typedef CT_Call CExprResolveExpr;
 
67221
 
 
67222
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67223
 public :
 
67224
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67225
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67226
};
 
67227
 
 
67228
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
67229
 *  Tree node representing implicit function calls detected by
 
67230
 *  the semantic analysis. */
 
67231
 
 
67232
#line 67233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67233
} // closed Puma
 
67234
class CCExprResolve;
 
67235
class CExprResolve;
 
67236
class WinIfExists;
 
67237
class WinImportHandler;
 
67238
class WinMacros;
 
67239
class WinAsm;
 
67240
class WinDeclSpecs;
 
67241
class WinMemberExplSpec;
 
67242
class WinTypeKeywords;
 
67243
class WinFriend;
 
67244
class ExtAC;
 
67245
class ExtACBuilderCoupling;
 
67246
class ExtACSyntaxCoupling;
 
67247
class ExtACTree;
 
67248
class ExtACKeywords;
 
67249
class ExtGnu;
 
67250
class PragmaOnceUnitState;
 
67251
class PragmaOnce;
 
67252
class CMatchSyntax;
 
67253
namespace Puma {
 
67254
 
 
67255
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67256
 
 
67257
#line 67258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67258
} // closed Puma
 
67259
 
 
67260
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67261
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67262
#include "CCExprResolveH.ah"
 
67263
#endif
 
67264
namespace Puma {
 
67265
 
 
67266
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67267
 
 
67268
#line 67269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67269
} // closed Puma
 
67270
 
 
67271
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67272
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67273
#include "CExprResolveH.ah"
 
67274
#endif
 
67275
namespace Puma {
 
67276
 
 
67277
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67278
class CT_ImplicitCall : public CT_Call {
 
67279
#line 67280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67280
  friend class ::CCExprResolve;
 
67281
  friend class ::CExprResolve;
 
67282
  friend class ::WinIfExists;
 
67283
  friend class ::WinImportHandler;
 
67284
  friend class ::WinMacros;
 
67285
  friend class ::WinAsm;
 
67286
  friend class ::WinDeclSpecs;
 
67287
  friend class ::WinMemberExplSpec;
 
67288
  friend class ::WinTypeKeywords;
 
67289
  friend class ::WinFriend;
 
67290
  friend class ::ExtAC;
 
67291
  friend class ::ExtACBuilderCoupling;
 
67292
  friend class ::ExtACSyntaxCoupling;
 
67293
  friend class ::ExtACTree;
 
67294
  friend class ::ExtACKeywords;
 
67295
  friend class ::ExtGnu;
 
67296
  friend class ::PragmaOnceUnitState;
 
67297
  friend class ::PragmaOnce;
 
67298
  friend class ::CMatchSyntax;
 
67299
 
 
67300
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67301
 
 
67302
  CTree *_arg;
 
67303
 
 
67304
public:
 
67305
  /** Constructor.
 
67306
   *  \param arg The call argument. */
 
67307
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
67308
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67309
  static const char *NodeId ();
 
67310
  /** Get the name of the node. Can be compared with NodeId(). */
 
67311
  const char *NodeName () const { return NodeId (); }
 
67312
  /** Get the number of sons. */
 
67313
  int Sons () const { return 1; }
 
67314
  /** Get the n-th son.
 
67315
   *  \param n The index of the son.
 
67316
   *  \return The n-th son or NULL. */
 
67317
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
67318
  /** Replace a son.
 
67319
   *  \param old_son The son to replace.
 
67320
   *  \param new_son The new son. */
 
67321
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
67322
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
67323
   private:
 
67324
  typedef CT_ImplicitCall CCExprResolveExpr;
 
67325
 
 
67326
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67327
 public :
 
67328
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
67329
  typedef CT_ImplicitCall CExprResolveExpr;
 
67330
 
 
67331
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67332
 public :
 
67333
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67334
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67335
};
 
67336
 
 
67337
/** \class CT_String CTree.h Puma/CTree.h
 
67338
 *  Tree node representing a string literal. */
 
67339
 
 
67340
#line 67341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67341
} // closed Puma
 
67342
class CCExprResolve;
 
67343
class CExprResolve;
 
67344
class WinIfExists;
 
67345
class WinImportHandler;
 
67346
class WinMacros;
 
67347
class WinAsm;
 
67348
class WinDeclSpecs;
 
67349
class WinMemberExplSpec;
 
67350
class WinTypeKeywords;
 
67351
class WinFriend;
 
67352
class ExtAC;
 
67353
class ExtACBuilderCoupling;
 
67354
class ExtACSyntaxCoupling;
 
67355
class ExtACTree;
 
67356
class ExtACKeywords;
 
67357
class ExtGnu;
 
67358
class PragmaOnceUnitState;
 
67359
class PragmaOnce;
 
67360
class CMatchSyntax;
 
67361
namespace Puma {
 
67362
 
 
67363
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67364
 
 
67365
#line 67366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67366
} // closed Puma
 
67367
 
 
67368
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67369
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67370
#include "CCExprResolveH.ah"
 
67371
#endif
 
67372
namespace Puma {
 
67373
 
 
67374
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67375
 
 
67376
#line 67377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67377
} // closed Puma
 
67378
 
 
67379
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67380
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67381
#include "CExprResolveH.ah"
 
67382
#endif
 
67383
namespace Puma {
 
67384
 
 
67385
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55965
67386
class CT_String : public CT_List, public CSemValue {
55966
 
#line 55967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67387
#line 67388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67388
  friend class ::CCExprResolve;
 
67389
  friend class ::CExprResolve;
55967
67390
  friend class ::WinIfExists;
55968
67391
  friend class ::WinImportHandler;
55969
67392
  friend class ::WinMacros;
55970
 
  friend class ::CMatchSyntax;
55971
 
  friend class ::ExtGnu;
 
67393
  friend class ::WinAsm;
 
67394
  friend class ::WinDeclSpecs;
 
67395
  friend class ::WinMemberExplSpec;
 
67396
  friend class ::WinTypeKeywords;
 
67397
  friend class ::WinFriend;
55972
67398
  friend class ::ExtAC;
55973
67399
  friend class ::ExtACBuilderCoupling;
55974
67400
  friend class ::ExtACSyntaxCoupling;
55975
67401
  friend class ::ExtACTree;
55976
67402
  friend class ::ExtACKeywords;
55977
 
  friend class ::WinAsm;
55978
 
  friend class ::WinDeclSpecs;
55979
 
  friend class ::WinMemberExplSpec;
55980
 
  friend class ::WinTypeKeywords;
 
67403
  friend class ::ExtGnu;
55981
67404
  friend class ::PragmaOnceUnitState;
55982
67405
  friend class ::PragmaOnce;
55983
 
  friend class ::CCExprResolve;
55984
 
  friend class ::CExprResolve;
 
67406
  friend class ::CMatchSyntax;
55985
67407
 
55986
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67408
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55987
67409
 
55988
67410
public:
 
67411
  /** Constructor. 
 
67412
   *  \param size The number of sub-strings. */
55989
67413
  CT_String (int size) : CT_List (size, 1) {}
 
67414
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55990
67415
  static const char *NodeId ();
 
67416
  /** Get the name of the node. Can be compared with NodeId(). */
55991
67417
  const char *NodeName () const { return NodeId (); }
55992
67418
 
 
67419
  /** Get the type of the string. 
 
67420
   *  \return The type or NULL. */
55993
67421
  CTypeInfo *Type () const { return type; }
 
67422
  /** Get the string value.
 
67423
   *  \return The value or NULL. */
55994
67424
  CExprValue *Value () const { return value; }
 
67425
  /** Get the semantic value info object.
 
67426
   *  \return The semantic value object or NULL. */
55995
67427
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
67428
  /** Get this. */
 
67429
  virtual CT_String *IsString () { return this; }
55996
67430
   private:
55997
67431
  typedef CT_String CCExprResolveExpr;
55998
67432
 
55999
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67433
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56000
67434
 public :
56001
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67435
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56002
67436
  typedef CT_String CExprResolveExpr;
56003
67437
 
56004
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67438
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56005
67439
 public :
56006
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56007
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67440
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67441
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56008
67442
};
56009
67443
 
 
67444
/** \class CT_WideString CTree.h Puma/CTree.h
 
67445
 *  Tree node representing a wide string literal. */
56010
67446
 
56011
 
#line 56012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67447
#line 67448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56012
67448
} // closed Puma
 
67449
class CCExprResolve;
 
67450
class CExprResolve;
56013
67451
class WinIfExists;
56014
67452
class WinImportHandler;
56015
67453
class WinMacros;
56016
 
class CMatchSyntax;
56017
 
class ExtGnu;
 
67454
class WinAsm;
 
67455
class WinDeclSpecs;
 
67456
class WinMemberExplSpec;
 
67457
class WinTypeKeywords;
 
67458
class WinFriend;
56018
67459
class ExtAC;
56019
67460
class ExtACBuilderCoupling;
56020
67461
class ExtACSyntaxCoupling;
56021
67462
class ExtACTree;
56022
67463
class ExtACKeywords;
56023
 
class WinAsm;
56024
 
class WinDeclSpecs;
56025
 
class WinMemberExplSpec;
56026
 
class WinTypeKeywords;
 
67464
class ExtGnu;
56027
67465
class PragmaOnceUnitState;
56028
67466
class PragmaOnce;
56029
 
class CCExprResolve;
56030
 
class CExprResolve;
56031
 
namespace Puma {
56032
 
 
56033
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67467
class CMatchSyntax;
 
67468
namespace Puma {
 
67469
 
 
67470
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67471
 
 
67472
#line 67473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67473
} // closed Puma
 
67474
 
 
67475
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67476
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67477
#include "CCExprResolveH.ah"
 
67478
#endif
 
67479
namespace Puma {
 
67480
 
 
67481
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67482
 
 
67483
#line 67484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67484
} // closed Puma
 
67485
 
 
67486
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67487
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67488
#include "CExprResolveH.ah"
 
67489
#endif
 
67490
namespace Puma {
 
67491
 
 
67492
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56034
67493
class CT_WideString : public CT_String {
56035
 
#line 56036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67494
#line 67495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67495
  friend class ::CCExprResolve;
 
67496
  friend class ::CExprResolve;
56036
67497
  friend class ::WinIfExists;
56037
67498
  friend class ::WinImportHandler;
56038
67499
  friend class ::WinMacros;
56039
 
  friend class ::CMatchSyntax;
56040
 
  friend class ::ExtGnu;
 
67500
  friend class ::WinAsm;
 
67501
  friend class ::WinDeclSpecs;
 
67502
  friend class ::WinMemberExplSpec;
 
67503
  friend class ::WinTypeKeywords;
 
67504
  friend class ::WinFriend;
56041
67505
  friend class ::ExtAC;
56042
67506
  friend class ::ExtACBuilderCoupling;
56043
67507
  friend class ::ExtACSyntaxCoupling;
56044
67508
  friend class ::ExtACTree;
56045
67509
  friend class ::ExtACKeywords;
56046
 
  friend class ::WinAsm;
56047
 
  friend class ::WinDeclSpecs;
56048
 
  friend class ::WinMemberExplSpec;
56049
 
  friend class ::WinTypeKeywords;
 
67510
  friend class ::ExtGnu;
56050
67511
  friend class ::PragmaOnceUnitState;
56051
67512
  friend class ::PragmaOnce;
56052
 
  friend class ::CCExprResolve;
56053
 
  friend class ::CExprResolve;
 
67513
  friend class ::CMatchSyntax;
56054
67514
 
56055
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67515
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56056
67516
 
56057
67517
public:
 
67518
  /** Constructor.
 
67519
   *  \param size The number of sub-strings. */
56058
67520
  CT_WideString (int size) : CT_String (size) {}
 
67521
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56059
67522
  static const char *NodeId ();
 
67523
  /** Get the name of the node. Can be compared with NodeId(). */
56060
67524
  const char *NodeName () const { return NodeId (); }
56061
67525
   private:
56062
67526
  typedef CT_WideString CCExprResolveExpr;
56063
67527
 
56064
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67528
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56065
67529
 public :
56066
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67530
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56067
67531
  typedef CT_WideString CExprResolveExpr;
56068
67532
 
56069
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67533
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56070
67534
 public :
56071
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56072
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67535
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67536
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56073
67537
};
56074
67538
 
 
67539
/** \class CT_Integer CTree.h Puma/CTree.h
 
67540
 *  Tree node representing an integer constant. */
56075
67541
 
56076
 
#line 56077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67542
#line 67543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56077
67543
} // closed Puma
 
67544
class CCExprResolve;
 
67545
class CExprResolve;
56078
67546
class WinIfExists;
56079
67547
class WinImportHandler;
56080
67548
class WinMacros;
56081
 
class CMatchSyntax;
56082
 
class ExtGnu;
 
67549
class WinAsm;
 
67550
class WinDeclSpecs;
 
67551
class WinMemberExplSpec;
 
67552
class WinTypeKeywords;
 
67553
class WinFriend;
56083
67554
class ExtAC;
56084
67555
class ExtACBuilderCoupling;
56085
67556
class ExtACSyntaxCoupling;
56086
67557
class ExtACTree;
56087
67558
class ExtACKeywords;
56088
 
class WinAsm;
56089
 
class WinDeclSpecs;
56090
 
class WinMemberExplSpec;
56091
 
class WinTypeKeywords;
 
67559
class ExtGnu;
56092
67560
class PragmaOnceUnitState;
56093
67561
class PragmaOnce;
56094
 
class CCExprResolve;
56095
 
class CExprResolve;
56096
 
namespace Puma {
56097
 
 
56098
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67562
class CMatchSyntax;
 
67563
namespace Puma {
 
67564
 
 
67565
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67566
 
 
67567
#line 67568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67568
} // closed Puma
 
67569
 
 
67570
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67571
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67572
#include "CCExprResolveH.ah"
 
67573
#endif
 
67574
namespace Puma {
 
67575
 
 
67576
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67577
 
 
67578
#line 67579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67579
} // closed Puma
 
67580
 
 
67581
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67582
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67583
#include "CExprResolveH.ah"
 
67584
#endif
 
67585
namespace Puma {
 
67586
 
 
67587
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56099
67588
class CT_Integer : public CT_Expression {
56100
 
#line 56101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67589
#line 67590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67590
  friend class ::CCExprResolve;
 
67591
  friend class ::CExprResolve;
56101
67592
  friend class ::WinIfExists;
56102
67593
  friend class ::WinImportHandler;
56103
67594
  friend class ::WinMacros;
56104
 
  friend class ::CMatchSyntax;
56105
 
  friend class ::ExtGnu;
 
67595
  friend class ::WinAsm;
 
67596
  friend class ::WinDeclSpecs;
 
67597
  friend class ::WinMemberExplSpec;
 
67598
  friend class ::WinTypeKeywords;
 
67599
  friend class ::WinFriend;
56106
67600
  friend class ::ExtAC;
56107
67601
  friend class ::ExtACBuilderCoupling;
56108
67602
  friend class ::ExtACSyntaxCoupling;
56109
67603
  friend class ::ExtACTree;
56110
67604
  friend class ::ExtACKeywords;
56111
 
  friend class ::WinAsm;
56112
 
  friend class ::WinDeclSpecs;
56113
 
  friend class ::WinMemberExplSpec;
56114
 
  friend class ::WinTypeKeywords;
 
67605
  friend class ::ExtGnu;
56115
67606
  friend class ::PragmaOnceUnitState;
56116
67607
  friend class ::PragmaOnce;
56117
 
  friend class ::CCExprResolve;
56118
 
  friend class ::CExprResolve;
 
67608
  friend class ::CMatchSyntax;
56119
67609
 
56120
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67610
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56121
67611
 
56122
67612
  CTree *_value;  // CT_Token
56123
67613
 
56124
67614
public:
56125
 
  CT_Integer (CTree *t) : _value (t) {}
 
67615
  /** Constructor.
 
67616
   *  \param token The token containing the integer value. */
 
67617
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
67618
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56126
67619
  static const char *NodeId ();
 
67620
  /** Get the name of the node. Can be compared with NodeId(). */
56127
67621
  const char *NodeName () const { return NodeId (); }
 
67622
  /** Get the number of sons. */
56128
67623
  int Sons () const { return _value ? 1 : 0; }
 
67624
  /** Get the n-th son.
 
67625
   *  \param n The index of the son.
 
67626
   *  \return The n-th son or NULL. */
56129
67627
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
67628
  /** Replace a son.
 
67629
   *  \param old_son The son to replace.
 
67630
   *  \param new_son The new son. */
56130
67631
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56131
 
   { if (old_son == _value) _value = new_son; }
 
67632
   { CTree::ReplaceSon (_value, old_son, new_son); }
56132
67633
   private:
56133
67634
  typedef CT_Integer CCExprResolveExpr;
56134
67635
 
56135
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67636
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56136
67637
 public :
56137
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67638
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56138
67639
  typedef CT_Integer CExprResolveExpr;
56139
67640
 
56140
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67641
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56141
67642
 public :
56142
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56143
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67643
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67644
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56144
67645
};
56145
67646
 
 
67647
/** \class CT_Character CTree.h Puma/CTree.h
 
67648
 *  Tree node representing a single character constant. */
56146
67649
 
56147
 
#line 56148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67650
#line 67651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56148
67651
} // closed Puma
 
67652
class CCExprResolve;
 
67653
class CExprResolve;
56149
67654
class WinIfExists;
56150
67655
class WinImportHandler;
56151
67656
class WinMacros;
56152
 
class CMatchSyntax;
56153
 
class ExtGnu;
 
67657
class WinAsm;
 
67658
class WinDeclSpecs;
 
67659
class WinMemberExplSpec;
 
67660
class WinTypeKeywords;
 
67661
class WinFriend;
56154
67662
class ExtAC;
56155
67663
class ExtACBuilderCoupling;
56156
67664
class ExtACSyntaxCoupling;
56157
67665
class ExtACTree;
56158
67666
class ExtACKeywords;
56159
 
class WinAsm;
56160
 
class WinDeclSpecs;
56161
 
class WinMemberExplSpec;
56162
 
class WinTypeKeywords;
 
67667
class ExtGnu;
56163
67668
class PragmaOnceUnitState;
56164
67669
class PragmaOnce;
56165
 
class CCExprResolve;
56166
 
class CExprResolve;
56167
 
namespace Puma {
56168
 
 
56169
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67670
class CMatchSyntax;
 
67671
namespace Puma {
 
67672
 
 
67673
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67674
 
 
67675
#line 67676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67676
} // closed Puma
 
67677
 
 
67678
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67679
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67680
#include "CCExprResolveH.ah"
 
67681
#endif
 
67682
namespace Puma {
 
67683
 
 
67684
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67685
 
 
67686
#line 67687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67687
} // closed Puma
 
67688
 
 
67689
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67690
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67691
#include "CExprResolveH.ah"
 
67692
#endif
 
67693
namespace Puma {
 
67694
 
 
67695
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56170
67696
class CT_Character : public CT_Expression {
56171
 
#line 56172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67697
#line 67698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67698
  friend class ::CCExprResolve;
 
67699
  friend class ::CExprResolve;
56172
67700
  friend class ::WinIfExists;
56173
67701
  friend class ::WinImportHandler;
56174
67702
  friend class ::WinMacros;
56175
 
  friend class ::CMatchSyntax;
56176
 
  friend class ::ExtGnu;
 
67703
  friend class ::WinAsm;
 
67704
  friend class ::WinDeclSpecs;
 
67705
  friend class ::WinMemberExplSpec;
 
67706
  friend class ::WinTypeKeywords;
 
67707
  friend class ::WinFriend;
56177
67708
  friend class ::ExtAC;
56178
67709
  friend class ::ExtACBuilderCoupling;
56179
67710
  friend class ::ExtACSyntaxCoupling;
56180
67711
  friend class ::ExtACTree;
56181
67712
  friend class ::ExtACKeywords;
56182
 
  friend class ::WinAsm;
56183
 
  friend class ::WinDeclSpecs;
56184
 
  friend class ::WinMemberExplSpec;
56185
 
  friend class ::WinTypeKeywords;
 
67713
  friend class ::ExtGnu;
56186
67714
  friend class ::PragmaOnceUnitState;
56187
67715
  friend class ::PragmaOnce;
56188
 
  friend class ::CCExprResolve;
56189
 
  friend class ::CExprResolve;
 
67716
  friend class ::CMatchSyntax;
56190
67717
 
56191
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67718
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56192
67719
 
56193
67720
  CTree *_value;  // CT_Token
56194
67721
 
56195
67722
public:
56196
 
  CT_Character (CTree *t) : _value (t) {}
 
67723
  /** Constructor.
 
67724
   *  \param token The token containing the character value. */
 
67725
  CT_Character (CTree *token) { AddSon (_value, token); }
 
67726
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56197
67727
  static const char *NodeId ();
 
67728
  /** Get the name of the node. Can be compared with NodeId(). */
56198
67729
  const char *NodeName () const { return NodeId (); }
 
67730
  /** Get the number of sons. */
56199
67731
  int Sons () const { return 1; }
 
67732
  /** Get the n-th son.
 
67733
   *  \param n The index of the son.
 
67734
   *  \return The n-th son or NULL. */
56200
67735
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
67736
  /** Replace a son.
 
67737
   *  \param old_son The son to replace.
 
67738
   *  \param new_son The new son. */
56201
67739
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56202
 
   { if (old_son == _value) _value = new_son; }
 
67740
   { CTree::ReplaceSon (_value, old_son, new_son); }
56203
67741
   private:
56204
67742
  typedef CT_Character CCExprResolveExpr;
56205
67743
 
56206
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67744
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56207
67745
 public :
56208
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67746
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56209
67747
  typedef CT_Character CExprResolveExpr;
56210
67748
 
56211
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67749
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56212
67750
 public :
56213
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56214
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67751
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67752
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56215
67753
};
56216
67754
 
 
67755
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
67756
 *  Tree node representing a wide character constant. */
56217
67757
 
56218
 
#line 56219 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67758
#line 67759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56219
67759
} // closed Puma
 
67760
class CCExprResolve;
 
67761
class CExprResolve;
56220
67762
class WinIfExists;
56221
67763
class WinImportHandler;
56222
67764
class WinMacros;
56223
 
class CMatchSyntax;
56224
 
class ExtGnu;
 
67765
class WinAsm;
 
67766
class WinDeclSpecs;
 
67767
class WinMemberExplSpec;
 
67768
class WinTypeKeywords;
 
67769
class WinFriend;
56225
67770
class ExtAC;
56226
67771
class ExtACBuilderCoupling;
56227
67772
class ExtACSyntaxCoupling;
56228
67773
class ExtACTree;
56229
67774
class ExtACKeywords;
56230
 
class WinAsm;
56231
 
class WinDeclSpecs;
56232
 
class WinMemberExplSpec;
56233
 
class WinTypeKeywords;
 
67775
class ExtGnu;
56234
67776
class PragmaOnceUnitState;
56235
67777
class PragmaOnce;
56236
 
class CCExprResolve;
56237
 
class CExprResolve;
56238
 
namespace Puma {
56239
 
 
56240
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67778
class CMatchSyntax;
 
67779
namespace Puma {
 
67780
 
 
67781
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67782
 
 
67783
#line 67784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67784
} // closed Puma
 
67785
 
 
67786
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67787
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67788
#include "CCExprResolveH.ah"
 
67789
#endif
 
67790
namespace Puma {
 
67791
 
 
67792
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67793
 
 
67794
#line 67795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67795
} // closed Puma
 
67796
 
 
67797
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67798
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67799
#include "CExprResolveH.ah"
 
67800
#endif
 
67801
namespace Puma {
 
67802
 
 
67803
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56241
67804
class CT_WideCharacter : public CT_Character {
56242
 
#line 56243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67805
#line 67806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67806
  friend class ::CCExprResolve;
 
67807
  friend class ::CExprResolve;
56243
67808
  friend class ::WinIfExists;
56244
67809
  friend class ::WinImportHandler;
56245
67810
  friend class ::WinMacros;
56246
 
  friend class ::CMatchSyntax;
56247
 
  friend class ::ExtGnu;
 
67811
  friend class ::WinAsm;
 
67812
  friend class ::WinDeclSpecs;
 
67813
  friend class ::WinMemberExplSpec;
 
67814
  friend class ::WinTypeKeywords;
 
67815
  friend class ::WinFriend;
56248
67816
  friend class ::ExtAC;
56249
67817
  friend class ::ExtACBuilderCoupling;
56250
67818
  friend class ::ExtACSyntaxCoupling;
56251
67819
  friend class ::ExtACTree;
56252
67820
  friend class ::ExtACKeywords;
56253
 
  friend class ::WinAsm;
56254
 
  friend class ::WinDeclSpecs;
56255
 
  friend class ::WinMemberExplSpec;
56256
 
  friend class ::WinTypeKeywords;
 
67821
  friend class ::ExtGnu;
56257
67822
  friend class ::PragmaOnceUnitState;
56258
67823
  friend class ::PragmaOnce;
56259
 
  friend class ::CCExprResolve;
56260
 
  friend class ::CExprResolve;
56261
 
 
56262
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56263
 
 
56264
 
  CTree *_value;  // CT_Token
 
67824
  friend class ::CMatchSyntax;
 
67825
 
 
67826
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56265
67827
 
56266
67828
public:
56267
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
67829
  /** Constructor.
 
67830
   *  \param token The token containing the wide character value. */
 
67831
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
67832
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56268
67833
  static const char *NodeId ();
 
67834
  /** Get the name of the node. Can be compared with NodeId(). */
56269
67835
  const char *NodeName () const { return NodeId (); }
56270
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56271
 
   { if (old_son == _value) _value = new_son; }
56272
67836
   private:
56273
67837
  typedef CT_WideCharacter CCExprResolveExpr;
56274
67838
 
56275
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67839
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56276
67840
 public :
56277
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67841
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56278
67842
  typedef CT_WideCharacter CExprResolveExpr;
56279
67843
 
56280
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67844
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56281
67845
 public :
56282
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56283
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67846
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67847
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56284
67848
};
56285
67849
 
 
67850
/** \class CT_Float CTree.h Puma/CTree.h
 
67851
 *  Tree node representing a floating point constant. */
56286
67852
 
56287
 
#line 56288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67853
#line 67854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56288
67854
} // closed Puma
 
67855
class CCExprResolve;
 
67856
class CExprResolve;
56289
67857
class WinIfExists;
56290
67858
class WinImportHandler;
56291
67859
class WinMacros;
56292
 
class CMatchSyntax;
56293
 
class ExtGnu;
 
67860
class WinAsm;
 
67861
class WinDeclSpecs;
 
67862
class WinMemberExplSpec;
 
67863
class WinTypeKeywords;
 
67864
class WinFriend;
56294
67865
class ExtAC;
56295
67866
class ExtACBuilderCoupling;
56296
67867
class ExtACSyntaxCoupling;
56297
67868
class ExtACTree;
56298
67869
class ExtACKeywords;
56299
 
class WinAsm;
56300
 
class WinDeclSpecs;
56301
 
class WinMemberExplSpec;
56302
 
class WinTypeKeywords;
 
67870
class ExtGnu;
56303
67871
class PragmaOnceUnitState;
56304
67872
class PragmaOnce;
56305
 
class CCExprResolve;
56306
 
class CExprResolve;
56307
 
namespace Puma {
56308
 
 
56309
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67873
class CMatchSyntax;
 
67874
namespace Puma {
 
67875
 
 
67876
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67877
 
 
67878
#line 67879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67879
} // closed Puma
 
67880
 
 
67881
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67882
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67883
#include "CCExprResolveH.ah"
 
67884
#endif
 
67885
namespace Puma {
 
67886
 
 
67887
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67888
 
 
67889
#line 67890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67890
} // closed Puma
 
67891
 
 
67892
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67893
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67894
#include "CExprResolveH.ah"
 
67895
#endif
 
67896
namespace Puma {
 
67897
 
 
67898
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56310
67899
class CT_Float : public CT_Expression {
56311
 
#line 56312 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67900
#line 67901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67901
  friend class ::CCExprResolve;
 
67902
  friend class ::CExprResolve;
56312
67903
  friend class ::WinIfExists;
56313
67904
  friend class ::WinImportHandler;
56314
67905
  friend class ::WinMacros;
56315
 
  friend class ::CMatchSyntax;
56316
 
  friend class ::ExtGnu;
 
67906
  friend class ::WinAsm;
 
67907
  friend class ::WinDeclSpecs;
 
67908
  friend class ::WinMemberExplSpec;
 
67909
  friend class ::WinTypeKeywords;
 
67910
  friend class ::WinFriend;
56317
67911
  friend class ::ExtAC;
56318
67912
  friend class ::ExtACBuilderCoupling;
56319
67913
  friend class ::ExtACSyntaxCoupling;
56320
67914
  friend class ::ExtACTree;
56321
67915
  friend class ::ExtACKeywords;
56322
 
  friend class ::WinAsm;
56323
 
  friend class ::WinDeclSpecs;
56324
 
  friend class ::WinMemberExplSpec;
56325
 
  friend class ::WinTypeKeywords;
 
67916
  friend class ::ExtGnu;
56326
67917
  friend class ::PragmaOnceUnitState;
56327
67918
  friend class ::PragmaOnce;
56328
 
  friend class ::CCExprResolve;
56329
 
  friend class ::CExprResolve;
 
67919
  friend class ::CMatchSyntax;
56330
67920
 
56331
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67921
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56332
67922
 
56333
67923
  CTree *_value;  // CT_Token
56334
67924
 
56335
67925
public:
56336
 
  CT_Float (CTree *t) : _value (t) {}
 
67926
  /** Constructor.
 
67927
   *  \param token The token containing the floating point value. */
 
67928
  CT_Float (CTree *token) { AddSon (_value, token); }
 
67929
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56337
67930
  static const char *NodeId ();
 
67931
  /** Get the name of the node. Can be compared with NodeId(). */
56338
67932
  const char *NodeName () const { return NodeId (); }
 
67933
  /** Get the number of sons. */
56339
67934
  int Sons () const { return 1; }
 
67935
  /** Get the n-th son.
 
67936
   *  \param n The index of the son.
 
67937
   *  \return The n-th son or NULL. */
56340
67938
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
67939
  /** Replace a son.
 
67940
   *  \param old_son The son to replace.
 
67941
   *  \param new_son The new son. */
56341
67942
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56342
 
   { if (old_son == _value) _value = new_son; }
 
67943
   { CTree::ReplaceSon (_value, old_son, new_son); }
56343
67944
   private:
56344
67945
  typedef CT_Float CCExprResolveExpr;
56345
67946
 
56346
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67947
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56347
67948
 public :
56348
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67949
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56349
67950
  typedef CT_Float CExprResolveExpr;
56350
67951
 
56351
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67952
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56352
67953
 public :
56353
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56354
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67954
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67955
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56355
67956
};
56356
67957
 
 
67958
/** \class CT_Bool CTree.h Puma/CTree.h
 
67959
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
56357
67960
 
56358
 
#line 56359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
67961
#line 67962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56359
67962
} // closed Puma
 
67963
class CCExprResolve;
 
67964
class CExprResolve;
56360
67965
class WinIfExists;
56361
67966
class WinImportHandler;
56362
67967
class WinMacros;
56363
 
class CMatchSyntax;
56364
 
class ExtGnu;
 
67968
class WinAsm;
 
67969
class WinDeclSpecs;
 
67970
class WinMemberExplSpec;
 
67971
class WinTypeKeywords;
 
67972
class WinFriend;
56365
67973
class ExtAC;
56366
67974
class ExtACBuilderCoupling;
56367
67975
class ExtACSyntaxCoupling;
56368
67976
class ExtACTree;
56369
67977
class ExtACKeywords;
56370
 
class WinAsm;
56371
 
class WinDeclSpecs;
56372
 
class WinMemberExplSpec;
56373
 
class WinTypeKeywords;
 
67978
class ExtGnu;
56374
67979
class PragmaOnceUnitState;
56375
67980
class PragmaOnce;
56376
 
class CCExprResolve;
56377
 
class CExprResolve;
56378
 
namespace Puma {
56379
 
 
56380
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67981
class CMatchSyntax;
 
67982
namespace Puma {
 
67983
 
 
67984
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67985
 
 
67986
#line 67987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67987
} // closed Puma
 
67988
 
 
67989
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67990
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67991
#include "CCExprResolveH.ah"
 
67992
#endif
 
67993
namespace Puma {
 
67994
 
 
67995
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67996
 
 
67997
#line 67998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
67998
} // closed Puma
 
67999
 
 
68000
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68001
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68002
#include "CExprResolveH.ah"
 
68003
#endif
 
68004
namespace Puma {
 
68005
 
 
68006
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56381
68007
class CT_Bool : public CT_Expression {
56382
 
#line 56383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68008
#line 68009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68009
  friend class ::CCExprResolve;
 
68010
  friend class ::CExprResolve;
56383
68011
  friend class ::WinIfExists;
56384
68012
  friend class ::WinImportHandler;
56385
68013
  friend class ::WinMacros;
56386
 
  friend class ::CMatchSyntax;
56387
 
  friend class ::ExtGnu;
 
68014
  friend class ::WinAsm;
 
68015
  friend class ::WinDeclSpecs;
 
68016
  friend class ::WinMemberExplSpec;
 
68017
  friend class ::WinTypeKeywords;
 
68018
  friend class ::WinFriend;
56388
68019
  friend class ::ExtAC;
56389
68020
  friend class ::ExtACBuilderCoupling;
56390
68021
  friend class ::ExtACSyntaxCoupling;
56391
68022
  friend class ::ExtACTree;
56392
68023
  friend class ::ExtACKeywords;
56393
 
  friend class ::WinAsm;
56394
 
  friend class ::WinDeclSpecs;
56395
 
  friend class ::WinMemberExplSpec;
56396
 
  friend class ::WinTypeKeywords;
 
68024
  friend class ::ExtGnu;
56397
68025
  friend class ::PragmaOnceUnitState;
56398
68026
  friend class ::PragmaOnce;
56399
 
  friend class ::CCExprResolve;
56400
 
  friend class ::CExprResolve;
 
68027
  friend class ::CMatchSyntax;
56401
68028
 
56402
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68029
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56403
68030
 
56404
68031
  CTree *_value;  // CT_Token
56405
68032
 
56406
68033
public:
56407
 
  CT_Bool (CTree *t) : _value (t) {}
 
68034
  /** Constructor.
 
68035
   *  \param token The token containing the boolean value. */
 
68036
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
68037
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56408
68038
  static const char *NodeId ();
 
68039
  /** Get the name of the node. Can be compared with NodeId(). */
56409
68040
  const char *NodeName () const { return NodeId (); }
 
68041
  /** Get the number of sons. */
56410
68042
  int Sons () const { return 1; }
 
68043
  /** Get the n-th son.
 
68044
   *  \param n The index of the son.
 
68045
   *  \return The n-th son or NULL. */
56411
68046
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
68047
  /** Replace a son.
 
68048
   *  \param old_son The son to replace.
 
68049
   *  \param new_son The new son. */
56412
68050
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56413
 
   { if (old_son == _value) _value = new_son; }
 
68051
   { CTree::ReplaceSon (_value, old_son, new_son); }
56414
68052
   private:
56415
68053
  typedef CT_Bool CCExprResolveExpr;
56416
68054
 
56417
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68055
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56418
68056
 public :
56419
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68057
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56420
68058
  typedef CT_Bool CExprResolveExpr;
56421
68059
 
56422
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68060
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56423
68061
 public :
56424
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56425
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68062
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68063
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56426
68064
};
56427
68065
 
 
68066
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
68067
 *  Tree node representing a braced expression, e.g. (a+b). */
56428
68068
 
56429
 
#line 56430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68069
#line 68070 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56430
68070
} // closed Puma
 
68071
class CCExprResolve;
 
68072
class CExprResolve;
56431
68073
class WinIfExists;
56432
68074
class WinImportHandler;
56433
68075
class WinMacros;
56434
 
class CMatchSyntax;
56435
 
class ExtGnu;
 
68076
class WinAsm;
 
68077
class WinDeclSpecs;
 
68078
class WinMemberExplSpec;
 
68079
class WinTypeKeywords;
 
68080
class WinFriend;
56436
68081
class ExtAC;
56437
68082
class ExtACBuilderCoupling;
56438
68083
class ExtACSyntaxCoupling;
56439
68084
class ExtACTree;
56440
68085
class ExtACKeywords;
56441
 
class WinAsm;
56442
 
class WinDeclSpecs;
56443
 
class WinMemberExplSpec;
56444
 
class WinTypeKeywords;
 
68086
class ExtGnu;
56445
68087
class PragmaOnceUnitState;
56446
68088
class PragmaOnce;
56447
 
class CCExprResolve;
56448
 
class CExprResolve;
56449
 
namespace Puma {
56450
 
 
56451
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68089
class CMatchSyntax;
 
68090
namespace Puma {
 
68091
 
 
68092
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68093
 
 
68094
#line 68095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68095
} // closed Puma
 
68096
 
 
68097
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68098
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68099
#include "CCExprResolveH.ah"
 
68100
#endif
 
68101
namespace Puma {
 
68102
 
 
68103
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68104
 
 
68105
#line 68106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68106
} // closed Puma
 
68107
 
 
68108
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68109
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68110
#include "CExprResolveH.ah"
 
68111
#endif
 
68112
namespace Puma {
 
68113
 
 
68114
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56452
68115
class CT_BracedExpr : public CT_Expression {
56453
 
#line 56454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68116
#line 68117 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68117
  friend class ::CCExprResolve;
 
68118
  friend class ::CExprResolve;
56454
68119
  friend class ::WinIfExists;
56455
68120
  friend class ::WinImportHandler;
56456
68121
  friend class ::WinMacros;
56457
 
  friend class ::CMatchSyntax;
56458
 
  friend class ::ExtGnu;
 
68122
  friend class ::WinAsm;
 
68123
  friend class ::WinDeclSpecs;
 
68124
  friend class ::WinMemberExplSpec;
 
68125
  friend class ::WinTypeKeywords;
 
68126
  friend class ::WinFriend;
56459
68127
  friend class ::ExtAC;
56460
68128
  friend class ::ExtACBuilderCoupling;
56461
68129
  friend class ::ExtACSyntaxCoupling;
56462
68130
  friend class ::ExtACTree;
56463
68131
  friend class ::ExtACKeywords;
56464
 
  friend class ::WinAsm;
56465
 
  friend class ::WinDeclSpecs;
56466
 
  friend class ::WinMemberExplSpec;
56467
 
  friend class ::WinTypeKeywords;
 
68132
  friend class ::ExtGnu;
56468
68133
  friend class ::PragmaOnceUnitState;
56469
68134
  friend class ::PragmaOnce;
56470
 
  friend class ::CCExprResolve;
56471
 
  friend class ::CExprResolve;
 
68135
  friend class ::CMatchSyntax;
56472
68136
 
56473
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68137
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56474
68138
 
56475
68139
  CTree *sons[3]; // open, expr, close
56476
68140
 
56477
68141
public:
 
68142
  /** Constructor.
 
68143
   *  \param o The opening brace.
 
68144
   *  \param e The enclosed expression.
 
68145
   *  \param c The closing brace. */
56478
68146
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
56479
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
68147
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
56480
68148
  }
 
68149
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56481
68150
  static const char *NodeId ();
 
68151
  /** Get the name of the node. Can be compared with NodeId(). */
56482
68152
  const char *NodeName () const { return NodeId (); }
 
68153
  /** Get the number of sons. */
56483
68154
  int Sons () const { return 3; }
 
68155
  /** Get the n-th son.
 
68156
   *  \param n The index of the son.
 
68157
   *  \return The n-th son or NULL. */
56484
68158
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
68159
  /** Get the enclosed expression. */
56485
68160
  CTree *Expr () const { return sons[1]; }
 
68161
  /** Get the type of the enclosed expression. */
56486
68162
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
68163
  /** Get the value of the enclosed expression. */
56487
68164
  CExprValue *Value () const { return Expr ()->Value (); }
 
68165
  /** Get the semantic value object. */
56488
68166
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
68167
  /** Replace a son.
 
68168
   *  \param old_son The son to replace.
 
68169
   *  \param new_son The new son. */
56489
68170
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56490
68171
    CTree::ReplaceSon (sons, 3, old_son, new_son);
56491
68172
  }
56492
68173
   private:
56493
68174
  typedef CT_BracedExpr CCExprResolveExpr;
56494
68175
 
56495
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68176
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56496
68177
 public :
56497
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68178
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56498
68179
  typedef CT_BracedExpr CExprResolveExpr;
56499
68180
 
56500
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68181
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56501
68182
 public :
56502
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56503
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68183
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68184
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56504
68185
};
56505
68186
 
 
68187
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
68188
 *  Base class for all tree nodes representing a name. */
56506
68189
 
56507
 
#line 56508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68190
#line 68191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56508
68191
} // closed Puma
 
68192
class CCExprResolve;
 
68193
class CExprResolve;
56509
68194
class WinIfExists;
56510
68195
class WinImportHandler;
56511
68196
class WinMacros;
56512
 
class CMatchSyntax;
56513
 
class ExtGnu;
 
68197
class WinAsm;
 
68198
class WinDeclSpecs;
 
68199
class WinMemberExplSpec;
 
68200
class WinTypeKeywords;
 
68201
class WinFriend;
56514
68202
class ExtAC;
56515
68203
class ExtACBuilderCoupling;
56516
68204
class ExtACSyntaxCoupling;
56517
68205
class ExtACTree;
56518
68206
class ExtACKeywords;
56519
 
class WinAsm;
56520
 
class WinDeclSpecs;
56521
 
class WinMemberExplSpec;
56522
 
class WinTypeKeywords;
 
68207
class ExtGnu;
56523
68208
class PragmaOnceUnitState;
56524
68209
class PragmaOnce;
56525
 
class CCExprResolve;
56526
 
class CExprResolve;
56527
 
namespace Puma {
56528
 
 
56529
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68210
class CMatchSyntax;
 
68211
namespace Puma {
 
68212
 
 
68213
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68214
 
 
68215
#line 68216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68216
} // closed Puma
 
68217
 
 
68218
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68219
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68220
#include "CCExprResolveH.ah"
 
68221
#endif
 
68222
namespace Puma {
 
68223
 
 
68224
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68225
 
 
68226
#line 68227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68227
} // closed Puma
 
68228
 
 
68229
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68230
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68231
#include "CExprResolveH.ah"
 
68232
#endif
 
68233
namespace Puma {
 
68234
 
 
68235
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56530
68236
class CT_SimpleName : public CT_List, public Printable, 
56531
68237
                      public CSemValue, public CSemObject {
56532
 
#line 56533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68238
#line 68239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68239
  friend class ::CCExprResolve;
 
68240
  friend class ::CExprResolve;
56533
68241
  friend class ::WinIfExists;
56534
68242
  friend class ::WinImportHandler;
56535
68243
  friend class ::WinMacros;
56536
 
  friend class ::CMatchSyntax;
56537
 
  friend class ::ExtGnu;
 
68244
  friend class ::WinAsm;
 
68245
  friend class ::WinDeclSpecs;
 
68246
  friend class ::WinMemberExplSpec;
 
68247
  friend class ::WinTypeKeywords;
 
68248
  friend class ::WinFriend;
56538
68249
  friend class ::ExtAC;
56539
68250
  friend class ::ExtACBuilderCoupling;
56540
68251
  friend class ::ExtACSyntaxCoupling;
56541
68252
  friend class ::ExtACTree;
56542
68253
  friend class ::ExtACKeywords;
56543
 
  friend class ::WinAsm;
56544
 
  friend class ::WinDeclSpecs;
56545
 
  friend class ::WinMemberExplSpec;
56546
 
  friend class ::WinTypeKeywords;
 
68254
  friend class ::ExtGnu;
56547
68255
  friend class ::PragmaOnceUnitState;
56548
68256
  friend class ::PragmaOnce;
56549
 
  friend class ::CCExprResolve;
56550
 
  friend class ::CExprResolve;
 
68257
  friend class ::CMatchSyntax;
56551
68258
 
56552
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68259
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56553
68260
 
56554
68261
protected:
 
68262
  /** Constructor.
 
68263
   *  \param size The number of sub-names (for qualified names). */
56555
68264
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
68265
  /** Constructor.
 
68266
   *  \param size The number of sub-names (for qualified names). 
 
68267
   *  \param properties Additional name list properties (for root qualified names). */
56556
68268
  CT_SimpleName (int size, int properties) : 
56557
68269
    CT_List (size, 2, properties) {}
56558
68270
  
56559
68271
public:
 
68272
  /** Constructor.
 
68273
   *  \param n The sub-tree containing the name. */
56560
68274
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
68275
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56561
68276
  static const char *NodeId ();
 
68277
  /** Get the name of the node. Can be compared with NodeId(). */
56562
68278
  const char *NodeName () const { return NodeId (); }
 
68279
  /** Get the string containing the name. */
56563
68280
  virtual const char *Text () const 
56564
68281
   { return Son (Sons ()-1)->token ()->text (); }
 
68282
  /** Print the name on the given stream. 
 
68283
   *  \param os The output stream. */
56565
68284
  virtual void print (ostream &os) const { os << Text (); }
 
68285
  /** Get this. */
56566
68286
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
68287
  /** Get the type of the entity represented by the name. */
56567
68288
  CTypeInfo *Type () const { return type; }
 
68289
  /** Get the value of the entity represented by the name. */ 
56568
68290
  CExprValue *Value () const { return value; }
 
68291
  /** Get the sematic value information object. */
56569
68292
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
68293
  /** Get the sematic information object. */
56570
68294
  CSemObject *SemObject () const { return (CSemObject*)this; }
56571
 
  // special new / delete with reusing memory
56572
 
  void *operator new (size_t);
56573
 
  void  operator delete (void *);
56574
 
  // classification function
 
68295
  /** Get this. */
56575
68296
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
68297
 
 
68298
public:
 
68299
  /** Own new operator reusing memory. */
 
68300
  void *operator new (size_t);
 
68301
  /** Own delete operator. */
 
68302
  void operator delete (void *);
56576
68303
   private:
56577
68304
  typedef CT_SimpleName CCExprResolveExpr;
56578
68305
 
56579
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68306
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56580
68307
 public :
56581
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68308
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56582
68309
  typedef CT_SimpleName CExprResolveExpr;
56583
68310
 
56584
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68311
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56585
68312
 public :
56586
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56587
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68313
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68314
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56588
68315
};
56589
68316
 
 
68317
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
68318
 *  Base class for tree nodes representing a special name, like destructor names. */
56590
68319
 
56591
 
#line 56592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68320
#line 68321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56592
68321
} // closed Puma
 
68322
class CCExprResolve;
 
68323
class CExprResolve;
56593
68324
class WinIfExists;
56594
68325
class WinImportHandler;
56595
68326
class WinMacros;
56596
 
class CMatchSyntax;
56597
 
class ExtGnu;
 
68327
class WinAsm;
 
68328
class WinDeclSpecs;
 
68329
class WinMemberExplSpec;
 
68330
class WinTypeKeywords;
 
68331
class WinFriend;
56598
68332
class ExtAC;
56599
68333
class ExtACBuilderCoupling;
56600
68334
class ExtACSyntaxCoupling;
56601
68335
class ExtACTree;
56602
68336
class ExtACKeywords;
56603
 
class WinAsm;
56604
 
class WinDeclSpecs;
56605
 
class WinMemberExplSpec;
56606
 
class WinTypeKeywords;
 
68337
class ExtGnu;
56607
68338
class PragmaOnceUnitState;
56608
68339
class PragmaOnce;
56609
 
class CCExprResolve;
56610
 
class CExprResolve;
56611
 
namespace Puma {
56612
 
 
56613
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68340
class CMatchSyntax;
 
68341
namespace Puma {
 
68342
 
 
68343
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68344
 
 
68345
#line 68346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68346
} // closed Puma
 
68347
 
 
68348
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68349
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68350
#include "CCExprResolveH.ah"
 
68351
#endif
 
68352
namespace Puma {
 
68353
 
 
68354
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68355
 
 
68356
#line 68357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68357
} // closed Puma
 
68358
 
 
68359
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68360
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68361
#include "CExprResolveH.ah"
 
68362
#endif
 
68363
namespace Puma {
 
68364
 
 
68365
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56614
68366
class CT_SpecialName : public CT_SimpleName {
56615
 
#line 56616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68367
#line 68368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68368
  friend class ::CCExprResolve;
 
68369
  friend class ::CExprResolve;
56616
68370
  friend class ::WinIfExists;
56617
68371
  friend class ::WinImportHandler;
56618
68372
  friend class ::WinMacros;
56619
 
  friend class ::CMatchSyntax;
56620
 
  friend class ::ExtGnu;
 
68373
  friend class ::WinAsm;
 
68374
  friend class ::WinDeclSpecs;
 
68375
  friend class ::WinMemberExplSpec;
 
68376
  friend class ::WinTypeKeywords;
 
68377
  friend class ::WinFriend;
56621
68378
  friend class ::ExtAC;
56622
68379
  friend class ::ExtACBuilderCoupling;
56623
68380
  friend class ::ExtACSyntaxCoupling;
56624
68381
  friend class ::ExtACTree;
56625
68382
  friend class ::ExtACKeywords;
56626
 
  friend class ::WinAsm;
56627
 
  friend class ::WinDeclSpecs;
56628
 
  friend class ::WinMemberExplSpec;
56629
 
  friend class ::WinTypeKeywords;
 
68383
  friend class ::ExtGnu;
56630
68384
  friend class ::PragmaOnceUnitState;
56631
68385
  friend class ::PragmaOnce;
56632
 
  friend class ::CCExprResolve;
56633
 
  friend class ::CExprResolve;
 
68386
  friend class ::CMatchSyntax;
56634
68387
 
56635
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68388
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56636
68389
 
56637
68390
  char *_name;
56638
68391
  
56639
68392
protected:
 
68393
  /** Constructor.
 
68394
   *  \param size The number of sub-names (for qualified names). */
56640
68395
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
56641
68396
  
56642
68397
public:
 
68398
  /** Destructor. Deletes the name string. */
56643
68399
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
68400
  /** Get the string containing the name. */
56644
68401
  const char *Text () const { return _name; }
 
68402
  /** Set the name. The name is copied.
 
68403
   *  \param n The name. */
56645
68404
  void Name (const char *n) { 
56646
68405
    if (n) { 
56647
68406
      _name = new char[strlen(n) + 1];
56648
68407
      strcpy (_name,n);
56649
68408
    }
56650
68409
  }
56651
 
  // special new / delete with reusing memory
 
68410
 
 
68411
public:
 
68412
  /** Own new operator reusing memory. */
56652
68413
  void *operator new (size_t);
56653
 
  void  operator delete (void *);
 
68414
  /** Own delete operator. */
 
68415
  void operator delete (void *);
56654
68416
   private:
56655
68417
  typedef CT_SpecialName CCExprResolveExpr;
56656
68418
 
56657
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68419
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56658
68420
 public :
56659
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68421
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56660
68422
  typedef CT_SpecialName CExprResolveExpr;
56661
68423
 
56662
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68424
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56663
68425
 public :
56664
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56665
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68426
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68427
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56666
68428
};
56667
68429
 
 
68430
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
68431
 *  Tree node representing a private name. Private names 
 
68432
 *  are generated names for abstract declarators etc. */
56668
68433
 
56669
 
#line 56670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68434
#line 68435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56670
68435
} // closed Puma
 
68436
class CCExprResolve;
 
68437
class CExprResolve;
56671
68438
class WinIfExists;
56672
68439
class WinImportHandler;
56673
68440
class WinMacros;
56674
 
class CMatchSyntax;
56675
 
class ExtGnu;
 
68441
class WinAsm;
 
68442
class WinDeclSpecs;
 
68443
class WinMemberExplSpec;
 
68444
class WinTypeKeywords;
 
68445
class WinFriend;
56676
68446
class ExtAC;
56677
68447
class ExtACBuilderCoupling;
56678
68448
class ExtACSyntaxCoupling;
56679
68449
class ExtACTree;
56680
68450
class ExtACKeywords;
56681
 
class WinAsm;
56682
 
class WinDeclSpecs;
56683
 
class WinMemberExplSpec;
56684
 
class WinTypeKeywords;
 
68451
class ExtGnu;
56685
68452
class PragmaOnceUnitState;
56686
68453
class PragmaOnce;
56687
 
class CCExprResolve;
56688
 
class CExprResolve;
56689
 
namespace Puma {
56690
 
 
56691
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68454
class CMatchSyntax;
 
68455
namespace Puma {
 
68456
 
 
68457
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68458
 
 
68459
#line 68460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68460
} // closed Puma
 
68461
 
 
68462
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68463
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68464
#include "CCExprResolveH.ah"
 
68465
#endif
 
68466
namespace Puma {
 
68467
 
 
68468
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68469
 
 
68470
#line 68471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68471
} // closed Puma
 
68472
 
 
68473
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68474
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68475
#include "CExprResolveH.ah"
 
68476
#endif
 
68477
namespace Puma {
 
68478
 
 
68479
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56692
68480
class CT_PrivateName : public CT_SpecialName {
56693
 
#line 56694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68481
#line 68482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68482
  friend class ::CCExprResolve;
 
68483
  friend class ::CExprResolve;
56694
68484
  friend class ::WinIfExists;
56695
68485
  friend class ::WinImportHandler;
56696
68486
  friend class ::WinMacros;
56697
 
  friend class ::CMatchSyntax;
56698
 
  friend class ::ExtGnu;
 
68487
  friend class ::WinAsm;
 
68488
  friend class ::WinDeclSpecs;
 
68489
  friend class ::WinMemberExplSpec;
 
68490
  friend class ::WinTypeKeywords;
 
68491
  friend class ::WinFriend;
56699
68492
  friend class ::ExtAC;
56700
68493
  friend class ::ExtACBuilderCoupling;
56701
68494
  friend class ::ExtACSyntaxCoupling;
56702
68495
  friend class ::ExtACTree;
56703
68496
  friend class ::ExtACKeywords;
56704
 
  friend class ::WinAsm;
56705
 
  friend class ::WinDeclSpecs;
56706
 
  friend class ::WinMemberExplSpec;
56707
 
  friend class ::WinTypeKeywords;
 
68497
  friend class ::ExtGnu;
56708
68498
  friend class ::PragmaOnceUnitState;
56709
68499
  friend class ::PragmaOnce;
56710
 
  friend class ::CCExprResolve;
56711
 
  friend class ::CExprResolve;
 
68500
  friend class ::CMatchSyntax;
56712
68501
 
56713
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68502
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56714
68503
 
56715
68504
public:
 
68505
  /** Constructor.
 
68506
   *  \param n The private (generated) name. */
56716
68507
  CT_PrivateName (const char *n) { Name (n); }
 
68508
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56717
68509
  static const char *NodeId ();
 
68510
  /** Get the name of the node. Can be compared with NodeId(). */
56718
68511
  const char *NodeName () const { return NodeId (); }
 
68512
  /** Get the number of sons. */
56719
68513
  int Sons () const { return 0; }
 
68514
  /** Get the n-th son.
 
68515
   *  \param n The index of the son.
 
68516
   *  \return The n-th son or NULL. */
56720
68517
  CTree *Son (int n) const { return (CTree*)0; }
56721
 
  // special new / delete with reusing memory
 
68518
 
 
68519
public:
 
68520
  /** Own new operator reusing memory. */
56722
68521
  void *operator new (size_t);
56723
 
  void  operator delete (void *);
 
68522
  /** Own delete operator. */
 
68523
  void operator delete (void *);
56724
68524
   private:
56725
68525
  typedef CT_PrivateName CCExprResolveExpr;
56726
68526
 
56727
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68527
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56728
68528
 public :
56729
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68529
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56730
68530
  typedef CT_PrivateName CExprResolveExpr;
56731
68531
 
56732
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68532
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56733
68533
 public :
56734
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56735
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68534
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68535
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56736
68536
};
56737
68537
 
 
68538
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
68539
 *  Tree node representing a destructor name. */
56738
68540
 
56739
 
#line 56740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68541
#line 68542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56740
68542
} // closed Puma
 
68543
class CCExprResolve;
 
68544
class CExprResolve;
56741
68545
class WinIfExists;
56742
68546
class WinImportHandler;
56743
68547
class WinMacros;
56744
 
class CMatchSyntax;
56745
 
class ExtGnu;
 
68548
class WinAsm;
 
68549
class WinDeclSpecs;
 
68550
class WinMemberExplSpec;
 
68551
class WinTypeKeywords;
 
68552
class WinFriend;
56746
68553
class ExtAC;
56747
68554
class ExtACBuilderCoupling;
56748
68555
class ExtACSyntaxCoupling;
56749
68556
class ExtACTree;
56750
68557
class ExtACKeywords;
56751
 
class WinAsm;
56752
 
class WinDeclSpecs;
56753
 
class WinMemberExplSpec;
56754
 
class WinTypeKeywords;
 
68558
class ExtGnu;
56755
68559
class PragmaOnceUnitState;
56756
68560
class PragmaOnce;
56757
 
class CCExprResolve;
56758
 
class CExprResolve;
56759
 
namespace Puma {
56760
 
 
56761
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68561
class CMatchSyntax;
 
68562
namespace Puma {
 
68563
 
 
68564
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68565
 
 
68566
#line 68567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68567
} // closed Puma
 
68568
 
 
68569
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68570
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68571
#include "CCExprResolveH.ah"
 
68572
#endif
 
68573
namespace Puma {
 
68574
 
 
68575
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68576
 
 
68577
#line 68578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68578
} // closed Puma
 
68579
 
 
68580
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68581
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68582
#include "CExprResolveH.ah"
 
68583
#endif
 
68584
namespace Puma {
 
68585
 
 
68586
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56762
68587
class CT_DestructorName : public CT_SpecialName {
56763
 
#line 56764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68588
#line 68589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68589
  friend class ::CCExprResolve;
 
68590
  friend class ::CExprResolve;
56764
68591
  friend class ::WinIfExists;
56765
68592
  friend class ::WinImportHandler;
56766
68593
  friend class ::WinMacros;
56767
 
  friend class ::CMatchSyntax;
56768
 
  friend class ::ExtGnu;
 
68594
  friend class ::WinAsm;
 
68595
  friend class ::WinDeclSpecs;
 
68596
  friend class ::WinMemberExplSpec;
 
68597
  friend class ::WinTypeKeywords;
 
68598
  friend class ::WinFriend;
56769
68599
  friend class ::ExtAC;
56770
68600
  friend class ::ExtACBuilderCoupling;
56771
68601
  friend class ::ExtACSyntaxCoupling;
56772
68602
  friend class ::ExtACTree;
56773
68603
  friend class ::ExtACKeywords;
56774
 
  friend class ::WinAsm;
56775
 
  friend class ::WinDeclSpecs;
56776
 
  friend class ::WinMemberExplSpec;
56777
 
  friend class ::WinTypeKeywords;
 
68604
  friend class ::ExtGnu;
56778
68605
  friend class ::PragmaOnceUnitState;
56779
68606
  friend class ::PragmaOnce;
56780
 
  friend class ::CCExprResolve;
56781
 
  friend class ::CExprResolve;
 
68607
  friend class ::CMatchSyntax;
56782
68608
 
56783
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68609
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56784
68610
 
56785
68611
public:
56786
 
  CT_DestructorName (CTree *, CTree *);
 
68612
  /** Constructor.
 
68613
   *  \param t The tilde operator.
 
68614
   *  \param n The class name. */
 
68615
  CT_DestructorName (CTree *t, CTree *n);
 
68616
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56787
68617
  static const char *NodeId ();
 
68618
  /** Get the name of the node. Can be compared with NodeId(). */
56788
68619
  const char *NodeName () const { return NodeId (); }
56789
 
  // special new / delete with reusing memory
 
68620
 
 
68621
public:
 
68622
  /** Own new operator reusing memory. */
56790
68623
  void *operator new (size_t);
56791
 
  void  operator delete (void *);
 
68624
  /** Own delete operator. */
 
68625
  void operator delete (void *);
56792
68626
   private:
56793
68627
  typedef CT_DestructorName CCExprResolveExpr;
56794
68628
 
56795
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68629
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56796
68630
 public :
56797
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68631
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56798
68632
  typedef CT_DestructorName CExprResolveExpr;
56799
68633
 
56800
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68634
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56801
68635
 public :
56802
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56803
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68636
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68637
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56804
68638
};
56805
68639
 
 
68640
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
68641
 *  Tree node representing a template name. */
56806
68642
 
56807
 
#line 56808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68643
#line 68644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56808
68644
} // closed Puma
 
68645
class CCExprResolve;
 
68646
class CExprResolve;
56809
68647
class WinIfExists;
56810
68648
class WinImportHandler;
56811
68649
class WinMacros;
56812
 
class CMatchSyntax;
56813
 
class ExtGnu;
 
68650
class WinAsm;
 
68651
class WinDeclSpecs;
 
68652
class WinMemberExplSpec;
 
68653
class WinTypeKeywords;
 
68654
class WinFriend;
56814
68655
class ExtAC;
56815
68656
class ExtACBuilderCoupling;
56816
68657
class ExtACSyntaxCoupling;
56817
68658
class ExtACTree;
56818
68659
class ExtACKeywords;
56819
 
class WinAsm;
56820
 
class WinDeclSpecs;
56821
 
class WinMemberExplSpec;
56822
 
class WinTypeKeywords;
 
68660
class ExtGnu;
56823
68661
class PragmaOnceUnitState;
56824
68662
class PragmaOnce;
56825
 
class CCExprResolve;
56826
 
class CExprResolve;
56827
 
namespace Puma {
56828
 
 
56829
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68663
class CMatchSyntax;
 
68664
namespace Puma {
 
68665
 
 
68666
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68667
 
 
68668
#line 68669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68669
} // closed Puma
 
68670
 
 
68671
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68672
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68673
#include "CCExprResolveH.ah"
 
68674
#endif
 
68675
namespace Puma {
 
68676
 
 
68677
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68678
 
 
68679
#line 68680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68680
} // closed Puma
 
68681
 
 
68682
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68683
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68684
#include "CExprResolveH.ah"
 
68685
#endif
 
68686
namespace Puma {
 
68687
 
 
68688
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56830
68689
class CT_TemplateName : public CT_SpecialName {
56831
 
#line 56832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68690
#line 68691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68691
  friend class ::CCExprResolve;
 
68692
  friend class ::CExprResolve;
56832
68693
  friend class ::WinIfExists;
56833
68694
  friend class ::WinImportHandler;
56834
68695
  friend class ::WinMacros;
56835
 
  friend class ::CMatchSyntax;
56836
 
  friend class ::ExtGnu;
 
68696
  friend class ::WinAsm;
 
68697
  friend class ::WinDeclSpecs;
 
68698
  friend class ::WinMemberExplSpec;
 
68699
  friend class ::WinTypeKeywords;
 
68700
  friend class ::WinFriend;
56837
68701
  friend class ::ExtAC;
56838
68702
  friend class ::ExtACBuilderCoupling;
56839
68703
  friend class ::ExtACSyntaxCoupling;
56840
68704
  friend class ::ExtACTree;
56841
68705
  friend class ::ExtACKeywords;
56842
 
  friend class ::WinAsm;
56843
 
  friend class ::WinDeclSpecs;
56844
 
  friend class ::WinMemberExplSpec;
56845
 
  friend class ::WinTypeKeywords;
 
68706
  friend class ::ExtGnu;
56846
68707
  friend class ::PragmaOnceUnitState;
56847
68708
  friend class ::PragmaOnce;
56848
 
  friend class ::CCExprResolve;
56849
 
  friend class ::CExprResolve;
 
68709
  friend class ::CMatchSyntax;
56850
68710
 
56851
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68711
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56852
68712
 
56853
68713
public:
 
68714
  /** Constructor.
 
68715
   *  \param n The template class or function name.
 
68716
   *  \param a The template argument list. */
56854
68717
  CT_TemplateName (CTree *n, CTree *a) 
56855
68718
   { AddSon (n); AddSon (a); }
 
68719
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56856
68720
  static const char *NodeId ();
 
68721
  /** Get the name of the node. Can be compared with NodeId(). */
56857
68722
  const char *NodeName () const { return NodeId (); }
 
68723
  /** Get the template argument list. */
56858
68724
  CT_TemplateArgList *Arguments () const 
56859
68725
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
68726
  /** Get the template class or function name. */
56860
68727
  CT_SimpleName *TemplateName () const 
56861
68728
   { return (CT_SimpleName*)Son (Sons ()-2); }
56862
68729
  // may change in the future
56863
68730
  const char *Text () const { return TemplateName ()->Text (); }
56864
 
  // special new / delete with reusing memory
 
68731
 
 
68732
public:
 
68733
  /** Own new operator reusing memory. */
56865
68734
  void *operator new (size_t);
56866
 
  void  operator delete (void *);
 
68735
  /** Own delete operator. */
 
68736
  void operator delete (void *);
56867
68737
   private:
56868
68738
  typedef CT_TemplateName CCExprResolveExpr;
56869
68739
 
56870
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68740
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56871
68741
 public :
56872
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68742
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56873
68743
  typedef CT_TemplateName CExprResolveExpr;
56874
68744
 
56875
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68745
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56876
68746
 public :
56877
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56878
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68747
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68748
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56879
68749
};
56880
68750
 
 
68751
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
68752
 *  Tree node representing the name of an overloaded operator. */
56881
68753
 
56882
 
#line 56883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68754
#line 68755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56883
68755
} // closed Puma
 
68756
class CCExprResolve;
 
68757
class CExprResolve;
56884
68758
class WinIfExists;
56885
68759
class WinImportHandler;
56886
68760
class WinMacros;
56887
 
class CMatchSyntax;
56888
 
class ExtGnu;
 
68761
class WinAsm;
 
68762
class WinDeclSpecs;
 
68763
class WinMemberExplSpec;
 
68764
class WinTypeKeywords;
 
68765
class WinFriend;
56889
68766
class ExtAC;
56890
68767
class ExtACBuilderCoupling;
56891
68768
class ExtACSyntaxCoupling;
56892
68769
class ExtACTree;
56893
68770
class ExtACKeywords;
56894
 
class WinAsm;
56895
 
class WinDeclSpecs;
56896
 
class WinMemberExplSpec;
56897
 
class WinTypeKeywords;
 
68771
class ExtGnu;
56898
68772
class PragmaOnceUnitState;
56899
68773
class PragmaOnce;
56900
 
class CCExprResolve;
56901
 
class CExprResolve;
56902
 
namespace Puma {
56903
 
 
56904
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68774
class CMatchSyntax;
 
68775
namespace Puma {
 
68776
 
 
68777
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68778
 
 
68779
#line 68780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68780
} // closed Puma
 
68781
 
 
68782
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68783
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68784
#include "CCExprResolveH.ah"
 
68785
#endif
 
68786
namespace Puma {
 
68787
 
 
68788
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68789
 
 
68790
#line 68791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68791
} // closed Puma
 
68792
 
 
68793
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68794
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68795
#include "CExprResolveH.ah"
 
68796
#endif
 
68797
namespace Puma {
 
68798
 
 
68799
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56905
68800
class CT_OperatorName : public CT_SpecialName {
56906
 
#line 56907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68801
#line 68802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68802
  friend class ::CCExprResolve;
 
68803
  friend class ::CExprResolve;
56907
68804
  friend class ::WinIfExists;
56908
68805
  friend class ::WinImportHandler;
56909
68806
  friend class ::WinMacros;
56910
 
  friend class ::CMatchSyntax;
56911
 
  friend class ::ExtGnu;
 
68807
  friend class ::WinAsm;
 
68808
  friend class ::WinDeclSpecs;
 
68809
  friend class ::WinMemberExplSpec;
 
68810
  friend class ::WinTypeKeywords;
 
68811
  friend class ::WinFriend;
56912
68812
  friend class ::ExtAC;
56913
68813
  friend class ::ExtACBuilderCoupling;
56914
68814
  friend class ::ExtACSyntaxCoupling;
56915
68815
  friend class ::ExtACTree;
56916
68816
  friend class ::ExtACKeywords;
56917
 
  friend class ::WinAsm;
56918
 
  friend class ::WinDeclSpecs;
56919
 
  friend class ::WinMemberExplSpec;
56920
 
  friend class ::WinTypeKeywords;
 
68817
  friend class ::ExtGnu;
56921
68818
  friend class ::PragmaOnceUnitState;
56922
68819
  friend class ::PragmaOnce;
56923
 
  friend class ::CCExprResolve;
56924
 
  friend class ::CExprResolve;
 
68820
  friend class ::CMatchSyntax;
56925
68821
 
56926
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68822
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56927
68823
 
56928
68824
  int _oper;
56929
68825
 
56930
68826
public:
56931
 
  enum { // complex operators
56932
 
    FCT_CALL = -100,
56933
 
    SUBSCRIPT,
56934
 
    NEW_ARRAY,
56935
 
    DEL_ARRAY
 
68827
  /** Complex operator types. */
 
68828
  enum { 
 
68829
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
68830
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
68831
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
68832
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
56936
68833
  };
56937
68834
 
56938
68835
public:
56939
 
  CT_OperatorName (CTree *);
56940
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
68836
  /** Constructor.
 
68837
   *  \param op The token containing the operator. */
 
68838
  CT_OperatorName (CTree *op);
 
68839
  /** Constructor.
 
68840
   *  \param f The operator function keyword 'operator'.
 
68841
   *  \param op The token containing the operator. 
 
68842
   *  \param o The token of '[' or '('.
 
68843
   *  \param c The token of ']' or ')'. */
 
68844
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
68845
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56941
68846
  static const char *NodeId ();
 
68847
  /** Get the name of the node. Can be compared with NodeId(). */
56942
68848
  const char *NodeName () const { return NodeId (); }
 
68849
  /** Get the operator type (either the token type or one of 
 
68850
   *  the complex operator types). */
56943
68851
  int Operator () const { return _oper; }
56944
 
  // special new / delete with reusing memory
 
68852
 
 
68853
public:
 
68854
  /** Own new operator reusing memory. */
56945
68855
  void *operator new (size_t);
56946
 
  void  operator delete (void *);
 
68856
  /** Own delete operator. */
 
68857
  void operator delete (void *);
56947
68858
   private:
56948
68859
  typedef CT_OperatorName CCExprResolveExpr;
56949
68860
 
56950
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68861
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56951
68862
 public :
56952
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68863
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56953
68864
  typedef CT_OperatorName CExprResolveExpr;
56954
68865
 
56955
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68866
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56956
68867
 public :
56957
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56958
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68868
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68869
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56959
68870
};
56960
68871
 
 
68872
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
68873
 *  Tree node representing the name of a conversion function. */
56961
68874
 
56962
 
#line 56963 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68875
#line 68876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
56963
68876
} // closed Puma
 
68877
class CCExprResolve;
 
68878
class CExprResolve;
56964
68879
class WinIfExists;
56965
68880
class WinImportHandler;
56966
68881
class WinMacros;
56967
 
class CMatchSyntax;
56968
 
class ExtGnu;
 
68882
class WinAsm;
 
68883
class WinDeclSpecs;
 
68884
class WinMemberExplSpec;
 
68885
class WinTypeKeywords;
 
68886
class WinFriend;
56969
68887
class ExtAC;
56970
68888
class ExtACBuilderCoupling;
56971
68889
class ExtACSyntaxCoupling;
56972
68890
class ExtACTree;
56973
68891
class ExtACKeywords;
56974
 
class WinAsm;
56975
 
class WinDeclSpecs;
56976
 
class WinMemberExplSpec;
56977
 
class WinTypeKeywords;
 
68892
class ExtGnu;
56978
68893
class PragmaOnceUnitState;
56979
68894
class PragmaOnce;
56980
 
class CCExprResolve;
56981
 
class CExprResolve;
56982
 
namespace Puma {
56983
 
 
56984
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68895
class CMatchSyntax;
 
68896
namespace Puma {
 
68897
 
 
68898
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68899
 
 
68900
#line 68901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68901
} // closed Puma
 
68902
 
 
68903
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68904
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68905
#include "CCExprResolveH.ah"
 
68906
#endif
 
68907
namespace Puma {
 
68908
 
 
68909
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68910
 
 
68911
#line 68912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68912
} // closed Puma
 
68913
 
 
68914
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68915
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68916
#include "CExprResolveH.ah"
 
68917
#endif
 
68918
namespace Puma {
 
68919
 
 
68920
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56985
68921
class CT_ConversionName : public CT_SpecialName {
56986
 
#line 56987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68922
#line 68923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
68923
  friend class ::CCExprResolve;
 
68924
  friend class ::CExprResolve;
56987
68925
  friend class ::WinIfExists;
56988
68926
  friend class ::WinImportHandler;
56989
68927
  friend class ::WinMacros;
56990
 
  friend class ::CMatchSyntax;
56991
 
  friend class ::ExtGnu;
 
68928
  friend class ::WinAsm;
 
68929
  friend class ::WinDeclSpecs;
 
68930
  friend class ::WinMemberExplSpec;
 
68931
  friend class ::WinTypeKeywords;
 
68932
  friend class ::WinFriend;
56992
68933
  friend class ::ExtAC;
56993
68934
  friend class ::ExtACBuilderCoupling;
56994
68935
  friend class ::ExtACSyntaxCoupling;
56995
68936
  friend class ::ExtACTree;
56996
68937
  friend class ::ExtACKeywords;
56997
 
  friend class ::WinAsm;
56998
 
  friend class ::WinDeclSpecs;
56999
 
  friend class ::WinMemberExplSpec;
57000
 
  friend class ::WinTypeKeywords;
 
68938
  friend class ::ExtGnu;
57001
68939
  friend class ::PragmaOnceUnitState;
57002
68940
  friend class ::PragmaOnce;
57003
 
  friend class ::CCExprResolve;
57004
 
  friend class ::CExprResolve;
 
68941
  friend class ::CMatchSyntax;
57005
68942
 
57006
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68943
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57007
68944
 
57008
68945
public:
57009
 
  CT_ConversionName (CTree *, CTree *);
 
68946
  /** Constructor.
 
68947
   *  \param f The operator function keyword 'operator'.
 
68948
   *  \param t The sub-tree containing the conversion type. */
 
68949
  CT_ConversionName (CTree *f, CTree *t);
 
68950
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57010
68951
  static const char *NodeId ();
 
68952
  /** Get the name of the node. Can be compared with NodeId(). */
57011
68953
  const char *NodeName () const { return NodeId (); }
 
68954
  /** Get the conversion type. */
57012
68955
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
57013
 
  // special new / delete with reusing memory
 
68956
 
 
68957
public:
 
68958
  /** Own new operator reusing memory. */
57014
68959
  void *operator new (size_t);
57015
 
  void  operator delete (void *);
 
68960
  /** Own delete operator. */
 
68961
  void operator delete (void *);
57016
68962
   private:
57017
68963
  typedef CT_ConversionName CCExprResolveExpr;
57018
68964
 
57019
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68965
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57020
68966
 public :
57021
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68967
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57022
68968
  typedef CT_ConversionName CExprResolveExpr;
57023
68969
 
57024
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68970
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57025
68971
 public :
57026
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57027
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68972
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68973
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57028
68974
};
57029
68975
 
 
68976
/** \class CT_QualName CTree.h Puma/CTree.h
 
68977
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
57030
68978
 
57031
 
#line 57032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
68979
#line 68980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57032
68980
} // closed Puma
 
68981
class CCExprResolve;
 
68982
class CExprResolve;
57033
68983
class WinIfExists;
57034
68984
class WinImportHandler;
57035
68985
class WinMacros;
57036
 
class CMatchSyntax;
57037
 
class ExtGnu;
 
68986
class WinAsm;
 
68987
class WinDeclSpecs;
 
68988
class WinMemberExplSpec;
 
68989
class WinTypeKeywords;
 
68990
class WinFriend;
57038
68991
class ExtAC;
57039
68992
class ExtACBuilderCoupling;
57040
68993
class ExtACSyntaxCoupling;
57041
68994
class ExtACTree;
57042
68995
class ExtACKeywords;
57043
 
class WinAsm;
57044
 
class WinDeclSpecs;
57045
 
class WinMemberExplSpec;
57046
 
class WinTypeKeywords;
 
68996
class ExtGnu;
57047
68997
class PragmaOnceUnitState;
57048
68998
class PragmaOnce;
57049
 
class CCExprResolve;
57050
 
class CExprResolve;
57051
 
namespace Puma {
57052
 
 
57053
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68999
class CMatchSyntax;
 
69000
namespace Puma {
 
69001
 
 
69002
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69003
 
 
69004
#line 69005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69005
} // closed Puma
 
69006
 
 
69007
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69008
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69009
#include "CCExprResolveH.ah"
 
69010
#endif
 
69011
namespace Puma {
 
69012
 
 
69013
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69014
 
 
69015
#line 69016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69016
} // closed Puma
 
69017
 
 
69018
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69019
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69020
#include "CExprResolveH.ah"
 
69021
#endif
 
69022
namespace Puma {
 
69023
 
 
69024
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57054
69025
class CT_QualName : public CT_SimpleName {
57055
 
#line 57056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69026
#line 69027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69027
  friend class ::CCExprResolve;
 
69028
  friend class ::CExprResolve;
57056
69029
  friend class ::WinIfExists;
57057
69030
  friend class ::WinImportHandler;
57058
69031
  friend class ::WinMacros;
57059
 
  friend class ::CMatchSyntax;
57060
 
  friend class ::ExtGnu;
 
69032
  friend class ::WinAsm;
 
69033
  friend class ::WinDeclSpecs;
 
69034
  friend class ::WinMemberExplSpec;
 
69035
  friend class ::WinTypeKeywords;
 
69036
  friend class ::WinFriend;
57061
69037
  friend class ::ExtAC;
57062
69038
  friend class ::ExtACBuilderCoupling;
57063
69039
  friend class ::ExtACSyntaxCoupling;
57064
69040
  friend class ::ExtACTree;
57065
69041
  friend class ::ExtACKeywords;
57066
 
  friend class ::WinAsm;
57067
 
  friend class ::WinDeclSpecs;
57068
 
  friend class ::WinMemberExplSpec;
57069
 
  friend class ::WinTypeKeywords;
 
69042
  friend class ::ExtGnu;
57070
69043
  friend class ::PragmaOnceUnitState;
57071
69044
  friend class ::PragmaOnce;
57072
 
  friend class ::CCExprResolve;
57073
 
  friend class ::CExprResolve;
 
69045
  friend class ::CMatchSyntax;
57074
69046
 
57075
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69047
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57076
69048
 
57077
69049
public:
 
69050
  /** Constructor.
 
69051
   *  \param size The initial number sub-names plus separators. */
57078
69052
  CT_QualName (int size = 3) : 
57079
69053
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
69054
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57080
69055
  static const char *NodeId ();
 
69056
  /** Get the name of the node. Can be compared with NodeId(). */
57081
69057
  const char *NodeName () const { return NodeId (); }
57082
 
  void print (ostream &) const;
 
69058
  /** Print the qualified name on the given stream. 
 
69059
   *  \param os The output stream. */
 
69060
  void print (ostream &os) const;
 
69061
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
57083
69062
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
69063
  /** Get the string containing the last name of the qualified name. */
57084
69064
  const char *Text () const { return Name ()->Text (); }
 
69065
  /** Get the type of the last name. */
57085
69066
  CTypeInfo *Type () const { return Name ()->Type (); }
 
69067
  /** Get the value of the last name. */
57086
69068
  CExprValue *Value () const { return Name ()->Value (); }
 
69069
  /** Get the semantic value object of the last name. */
57087
69070
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
69071
  /** Get the semantic information object of the last name. */
57088
69072
  CSemObject *SemObject () const { return Name ()->SemObject (); }
57089
 
  // special new / delete with reusing memory
 
69073
 
 
69074
public:
 
69075
  /** Own new operator reusing memory. */
57090
69076
  void *operator new (size_t);
57091
 
  void  operator delete (void *);
 
69077
  /** Own delete operator. */
 
69078
  void operator delete (void *);
57092
69079
   private:
57093
69080
  typedef CT_QualName CCExprResolveExpr;
57094
69081
 
57095
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69082
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57096
69083
 public :
57097
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69084
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57098
69085
  typedef CT_QualName CExprResolveExpr;
57099
69086
 
57100
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69087
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57101
69088
 public :
57102
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57103
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69089
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69090
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57104
69091
};
57105
69092
 
 
69093
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
69094
 *  Tree node representing a qualified name with introducing name separator,
 
69095
 *  e.g. ::X::Y::Z. */
57106
69096
 
57107
 
#line 57108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69097
#line 69098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57108
69098
} // closed Puma
 
69099
class CCExprResolve;
 
69100
class CExprResolve;
57109
69101
class WinIfExists;
57110
69102
class WinImportHandler;
57111
69103
class WinMacros;
57112
 
class CMatchSyntax;
57113
 
class ExtGnu;
 
69104
class WinAsm;
 
69105
class WinDeclSpecs;
 
69106
class WinMemberExplSpec;
 
69107
class WinTypeKeywords;
 
69108
class WinFriend;
57114
69109
class ExtAC;
57115
69110
class ExtACBuilderCoupling;
57116
69111
class ExtACSyntaxCoupling;
57117
69112
class ExtACTree;
57118
69113
class ExtACKeywords;
57119
 
class WinAsm;
57120
 
class WinDeclSpecs;
57121
 
class WinMemberExplSpec;
57122
 
class WinTypeKeywords;
 
69114
class ExtGnu;
57123
69115
class PragmaOnceUnitState;
57124
69116
class PragmaOnce;
57125
 
class CCExprResolve;
57126
 
class CExprResolve;
57127
 
namespace Puma {
57128
 
 
57129
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69117
class CMatchSyntax;
 
69118
namespace Puma {
 
69119
 
 
69120
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69121
 
 
69122
#line 69123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69123
} // closed Puma
 
69124
 
 
69125
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69126
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69127
#include "CCExprResolveH.ah"
 
69128
#endif
 
69129
namespace Puma {
 
69130
 
 
69131
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69132
 
 
69133
#line 69134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69134
} // closed Puma
 
69135
 
 
69136
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69137
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69138
#include "CExprResolveH.ah"
 
69139
#endif
 
69140
namespace Puma {
 
69141
 
 
69142
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57130
69143
class CT_RootQualName : public CT_QualName {
57131
 
#line 57132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69144
#line 69145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69145
  friend class ::CCExprResolve;
 
69146
  friend class ::CExprResolve;
57132
69147
  friend class ::WinIfExists;
57133
69148
  friend class ::WinImportHandler;
57134
69149
  friend class ::WinMacros;
57135
 
  friend class ::CMatchSyntax;
57136
 
  friend class ::ExtGnu;
 
69150
  friend class ::WinAsm;
 
69151
  friend class ::WinDeclSpecs;
 
69152
  friend class ::WinMemberExplSpec;
 
69153
  friend class ::WinTypeKeywords;
 
69154
  friend class ::WinFriend;
57137
69155
  friend class ::ExtAC;
57138
69156
  friend class ::ExtACBuilderCoupling;
57139
69157
  friend class ::ExtACSyntaxCoupling;
57140
69158
  friend class ::ExtACTree;
57141
69159
  friend class ::ExtACKeywords;
57142
 
  friend class ::WinAsm;
57143
 
  friend class ::WinDeclSpecs;
57144
 
  friend class ::WinMemberExplSpec;
57145
 
  friend class ::WinTypeKeywords;
 
69160
  friend class ::ExtGnu;
57146
69161
  friend class ::PragmaOnceUnitState;
57147
69162
  friend class ::PragmaOnce;
57148
 
  friend class ::CCExprResolve;
57149
 
  friend class ::CExprResolve;
 
69163
  friend class ::CMatchSyntax;
57150
69164
 
57151
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69165
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57152
69166
 
57153
69167
public:
 
69168
  /** Constructor.
 
69169
   *  \param size Initial number of sub-name plus separator. */
57154
69170
  CT_RootQualName (int size = 2) : 
57155
69171
    CT_QualName (size) { AddProperties (INTRO); }
 
69172
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57156
69173
  static const char *NodeId ();
 
69174
  /** Get the name of the node. Can be compared with NodeId(). */
57157
69175
  const char *NodeName () const { return NodeId (); }
57158
 
  // special new / delete with reusing memory
 
69176
 
 
69177
public:
 
69178
  /** Own new operator reusing memory. */
57159
69179
  void *operator new (size_t);
57160
 
  void  operator delete (void *);
 
69180
  /** Own delete operator. */
 
69181
  void operator delete (void *);
57161
69182
   private:
57162
69183
  typedef CT_RootQualName CCExprResolveExpr;
57163
69184
 
57164
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69185
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57165
69186
 public :
57166
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69187
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57167
69188
  typedef CT_RootQualName CExprResolveExpr;
57168
69189
 
57169
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69190
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57170
69191
 public :
57171
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57172
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69192
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69193
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57173
69194
};
57174
69195
 
 
69196
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
69197
 *  Tree node representing a binary expression, e.g. a+b. */
57175
69198
 
57176
 
#line 57177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69199
#line 69200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57177
69200
} // closed Puma
 
69201
class CCExprResolve;
 
69202
class CExprResolve;
57178
69203
class WinIfExists;
57179
69204
class WinImportHandler;
57180
69205
class WinMacros;
57181
 
class CMatchSyntax;
57182
 
class ExtGnu;
 
69206
class WinAsm;
 
69207
class WinDeclSpecs;
 
69208
class WinMemberExplSpec;
 
69209
class WinTypeKeywords;
 
69210
class WinFriend;
57183
69211
class ExtAC;
57184
69212
class ExtACBuilderCoupling;
57185
69213
class ExtACSyntaxCoupling;
57186
69214
class ExtACTree;
57187
69215
class ExtACKeywords;
57188
 
class WinAsm;
57189
 
class WinDeclSpecs;
57190
 
class WinMemberExplSpec;
57191
 
class WinTypeKeywords;
 
69216
class ExtGnu;
57192
69217
class PragmaOnceUnitState;
57193
69218
class PragmaOnce;
57194
 
class CCExprResolve;
57195
 
class CExprResolve;
57196
 
namespace Puma {
57197
 
 
57198
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57199
 
class CT_BinaryExpr : public CT_Expression {
57200
 
#line 57201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69219
class CMatchSyntax;
 
69220
namespace Puma {
 
69221
 
 
69222
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69223
 
 
69224
#line 69225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69225
} // closed Puma
 
69226
 
 
69227
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69228
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69229
#include "CCExprResolveH.ah"
 
69230
#endif
 
69231
namespace Puma {
 
69232
 
 
69233
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69234
 
 
69235
#line 69236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69236
} // closed Puma
 
69237
 
 
69238
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69239
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69240
#include "CExprResolveH.ah"
 
69241
#endif
 
69242
namespace Puma {
 
69243
 
 
69244
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69245
class CT_BinaryExpr : public CT_Call {
 
69246
#line 69247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69247
  friend class ::CCExprResolve;
 
69248
  friend class ::CExprResolve;
57201
69249
  friend class ::WinIfExists;
57202
69250
  friend class ::WinImportHandler;
57203
69251
  friend class ::WinMacros;
57204
 
  friend class ::CMatchSyntax;
57205
 
  friend class ::ExtGnu;
 
69252
  friend class ::WinAsm;
 
69253
  friend class ::WinDeclSpecs;
 
69254
  friend class ::WinMemberExplSpec;
 
69255
  friend class ::WinTypeKeywords;
 
69256
  friend class ::WinFriend;
57206
69257
  friend class ::ExtAC;
57207
69258
  friend class ::ExtACBuilderCoupling;
57208
69259
  friend class ::ExtACSyntaxCoupling;
57209
69260
  friend class ::ExtACTree;
57210
69261
  friend class ::ExtACKeywords;
57211
 
  friend class ::WinAsm;
57212
 
  friend class ::WinDeclSpecs;
57213
 
  friend class ::WinMemberExplSpec;
57214
 
  friend class ::WinTypeKeywords;
 
69262
  friend class ::ExtGnu;
57215
69263
  friend class ::PragmaOnceUnitState;
57216
69264
  friend class ::PragmaOnce;
57217
 
  friend class ::CCExprResolve;
57218
 
  friend class ::CExprResolve;
 
69265
  friend class ::CMatchSyntax;
57219
69266
 
57220
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69267
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57221
69268
 
57222
69269
  CTree *sons[3]; // expr, oper, expr
57223
69270
 
57224
69271
public:
 
69272
  /** Constructor. 
 
69273
   *  \param l Left hand side of the expression. 
 
69274
   *  \param o The operator token. 
 
69275
   *  \param r Right hand side of the expression. */
57225
69276
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
57226
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
69277
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
57227
69278
  }
 
69279
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57228
69280
  static const char *NodeId ();
 
69281
  /** Get the name of the node. Can be compared with NodeId(). */
57229
69282
  const char *NodeName () const { return NodeId (); }
 
69283
  /** Get the number of sons. */
57230
69284
  int Sons () const { return 3; }
 
69285
  /** Get the n-th son.
 
69286
   *  \param n The index of the son.
 
69287
   *  \return The n-th son or NULL. */
57231
69288
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
69289
  /** Replace a son.
 
69290
   *  \param old_son The son to replace.
 
69291
   *  \param new_son The new son. */
57232
69292
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57233
69293
    CTree::ReplaceSon (sons, 3, old_son, new_son);
57234
69294
  }
57235
69295
   private:
57236
69296
  typedef CT_BinaryExpr CCExprResolveExpr;
57237
69297
 
57238
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69298
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57239
69299
 public :
57240
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69300
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57241
69301
  typedef CT_BinaryExpr CExprResolveExpr;
57242
69302
 
57243
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69303
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57244
69304
 public :
57245
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57246
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69305
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69306
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57247
69307
};
57248
69308
 
 
69309
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
69310
 *  Tree node representing a member pointer expression, e.g. a->b. */
57249
69311
 
57250
 
#line 57251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69312
#line 69313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57251
69313
} // closed Puma
 
69314
class CCExprResolve;
 
69315
class CExprResolve;
57252
69316
class WinIfExists;
57253
69317
class WinImportHandler;
57254
69318
class WinMacros;
57255
 
class CMatchSyntax;
57256
 
class ExtGnu;
 
69319
class WinAsm;
 
69320
class WinDeclSpecs;
 
69321
class WinMemberExplSpec;
 
69322
class WinTypeKeywords;
 
69323
class WinFriend;
57257
69324
class ExtAC;
57258
69325
class ExtACBuilderCoupling;
57259
69326
class ExtACSyntaxCoupling;
57260
69327
class ExtACTree;
57261
69328
class ExtACKeywords;
57262
 
class WinAsm;
57263
 
class WinDeclSpecs;
57264
 
class WinMemberExplSpec;
57265
 
class WinTypeKeywords;
 
69329
class ExtGnu;
57266
69330
class PragmaOnceUnitState;
57267
69331
class PragmaOnce;
57268
 
class CCExprResolve;
57269
 
class CExprResolve;
57270
 
namespace Puma {
57271
 
 
57272
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57273
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
57274
 
#line 57275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69332
class CMatchSyntax;
 
69333
namespace Puma {
 
69334
 
 
69335
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69336
 
 
69337
#line 69338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69338
} // closed Puma
 
69339
 
 
69340
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69341
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69342
#include "CCExprResolveH.ah"
 
69343
#endif
 
69344
namespace Puma {
 
69345
 
 
69346
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69347
 
 
69348
#line 69349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69349
} // closed Puma
 
69350
 
 
69351
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69352
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69353
#include "CExprResolveH.ah"
 
69354
#endif
 
69355
namespace Puma {
 
69356
 
 
69357
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69358
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
69359
#line 69360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69360
  friend class ::CCExprResolve;
 
69361
  friend class ::CExprResolve;
57275
69362
  friend class ::WinIfExists;
57276
69363
  friend class ::WinImportHandler;
57277
69364
  friend class ::WinMacros;
57278
 
  friend class ::CMatchSyntax;
57279
 
  friend class ::ExtGnu;
 
69365
  friend class ::WinAsm;
 
69366
  friend class ::WinDeclSpecs;
 
69367
  friend class ::WinMemberExplSpec;
 
69368
  friend class ::WinTypeKeywords;
 
69369
  friend class ::WinFriend;
57280
69370
  friend class ::ExtAC;
57281
69371
  friend class ::ExtACBuilderCoupling;
57282
69372
  friend class ::ExtACSyntaxCoupling;
57283
69373
  friend class ::ExtACTree;
57284
69374
  friend class ::ExtACKeywords;
57285
 
  friend class ::WinAsm;
57286
 
  friend class ::WinDeclSpecs;
57287
 
  friend class ::WinMemberExplSpec;
57288
 
  friend class ::WinTypeKeywords;
 
69375
  friend class ::ExtGnu;
57289
69376
  friend class ::PragmaOnceUnitState;
57290
69377
  friend class ::PragmaOnce;
57291
 
  friend class ::CCExprResolve;
57292
 
  friend class ::CExprResolve;
57293
 
 
57294
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57295
 
 
 
69378
  friend class ::CMatchSyntax;
 
69379
 
 
69380
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69381
 
 
69382
  CTree *sons[3]; // expr, oper, expr
 
69383
  
57296
69384
public:
57297
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
57298
 
    CT_BinaryExpr (e, o, i) {}
 
69385
  /** Constructor.
 
69386
   *  \param e Expression on which to call the member.
 
69387
   *  \param o The arrow operator token.
 
69388
   *  \param i The member name. */
 
69389
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
69390
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
69391
  }
 
69392
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57299
69393
  static const char *NodeId ();
 
69394
  /** Get the name of the node. Can be compared with NodeId(). */
57300
69395
  const char *NodeName () const { return NodeId (); }
57301
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
69396
  /** Get the number of sons. */
 
69397
  int Sons () const { return 3; }
 
69398
  /** Get the n-th son.
 
69399
   *  \param n The index of the son.
 
69400
   *  \return The n-th son or NULL. */
 
69401
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
69402
  /** Replace a son.
 
69403
   *  \param old_son The son to replace.
 
69404
   *  \param new_son The new son. */
 
69405
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
69406
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
69407
  }
57302
69408
   private:
57303
69409
  typedef CT_MembPtrExpr CCExprResolveExpr;
57304
69410
 
57305
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69411
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57306
69412
 public :
57307
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69413
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57308
69414
  typedef CT_MembPtrExpr CExprResolveExpr;
57309
69415
 
57310
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69416
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57311
69417
 public :
57312
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57313
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69418
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69419
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57314
69420
};
57315
69421
 
 
69422
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
69423
 *  Tree node representing a member reference expression, e.g. a.b. */
57316
69424
 
57317
 
#line 57318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69425
#line 69426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57318
69426
} // closed Puma
 
69427
class CCExprResolve;
 
69428
class CExprResolve;
57319
69429
class WinIfExists;
57320
69430
class WinImportHandler;
57321
69431
class WinMacros;
57322
 
class CMatchSyntax;
57323
 
class ExtGnu;
 
69432
class WinAsm;
 
69433
class WinDeclSpecs;
 
69434
class WinMemberExplSpec;
 
69435
class WinTypeKeywords;
 
69436
class WinFriend;
57324
69437
class ExtAC;
57325
69438
class ExtACBuilderCoupling;
57326
69439
class ExtACSyntaxCoupling;
57327
69440
class ExtACTree;
57328
69441
class ExtACKeywords;
57329
 
class WinAsm;
57330
 
class WinDeclSpecs;
57331
 
class WinMemberExplSpec;
57332
 
class WinTypeKeywords;
 
69442
class ExtGnu;
57333
69443
class PragmaOnceUnitState;
57334
69444
class PragmaOnce;
57335
 
class CCExprResolve;
57336
 
class CExprResolve;
57337
 
namespace Puma {
57338
 
 
57339
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69445
class CMatchSyntax;
 
69446
namespace Puma {
 
69447
 
 
69448
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69449
 
 
69450
#line 69451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69451
} // closed Puma
 
69452
 
 
69453
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69454
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69455
#include "CCExprResolveH.ah"
 
69456
#endif
 
69457
namespace Puma {
 
69458
 
 
69459
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69460
 
 
69461
#line 69462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69462
} // closed Puma
 
69463
 
 
69464
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69465
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69466
#include "CExprResolveH.ah"
 
69467
#endif
 
69468
namespace Puma {
 
69469
 
 
69470
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57340
69471
class CT_MembRefExpr : public CT_MembPtrExpr {
57341
 
#line 57342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69472
#line 69473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69473
  friend class ::CCExprResolve;
 
69474
  friend class ::CExprResolve;
57342
69475
  friend class ::WinIfExists;
57343
69476
  friend class ::WinImportHandler;
57344
69477
  friend class ::WinMacros;
57345
 
  friend class ::CMatchSyntax;
57346
 
  friend class ::ExtGnu;
 
69478
  friend class ::WinAsm;
 
69479
  friend class ::WinDeclSpecs;
 
69480
  friend class ::WinMemberExplSpec;
 
69481
  friend class ::WinTypeKeywords;
 
69482
  friend class ::WinFriend;
57347
69483
  friend class ::ExtAC;
57348
69484
  friend class ::ExtACBuilderCoupling;
57349
69485
  friend class ::ExtACSyntaxCoupling;
57350
69486
  friend class ::ExtACTree;
57351
69487
  friend class ::ExtACKeywords;
57352
 
  friend class ::WinAsm;
57353
 
  friend class ::WinDeclSpecs;
57354
 
  friend class ::WinMemberExplSpec;
57355
 
  friend class ::WinTypeKeywords;
 
69488
  friend class ::ExtGnu;
57356
69489
  friend class ::PragmaOnceUnitState;
57357
69490
  friend class ::PragmaOnce;
57358
 
  friend class ::CCExprResolve;
57359
 
  friend class ::CExprResolve;
 
69491
  friend class ::CMatchSyntax;
57360
69492
 
57361
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69493
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57362
69494
 
57363
69495
public:
 
69496
  /** Constructor.
 
69497
   *  \param e Expression on which to call the member.
 
69498
   *  \param o The dot operator.
 
69499
   *  \param i The member name. */
57364
69500
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
57365
69501
    CT_MembPtrExpr (e, o, i) {}
 
69502
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57366
69503
  static const char *NodeId ();
 
69504
  /** Get the name of the node. Can be compared with NodeId(). */
57367
69505
  const char *NodeName () const { return NodeId (); }
57368
69506
   private:
57369
69507
  typedef CT_MembRefExpr CCExprResolveExpr;
57370
69508
 
57371
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69509
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57372
69510
 public :
57373
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69511
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57374
69512
  typedef CT_MembRefExpr CExprResolveExpr;
57375
69513
 
57376
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69514
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57377
69515
 public :
57378
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57379
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69516
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69517
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57380
69518
};
57381
69519
 
 
69520
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
69521
 *  Base class for tree nodes representing unary expressions. */
57382
69522
 
57383
 
#line 57384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69523
#line 69524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57384
69524
} // closed Puma
 
69525
class CCExprResolve;
 
69526
class CExprResolve;
57385
69527
class WinIfExists;
57386
69528
class WinImportHandler;
57387
69529
class WinMacros;
57388
 
class CMatchSyntax;
57389
 
class ExtGnu;
 
69530
class WinAsm;
 
69531
class WinDeclSpecs;
 
69532
class WinMemberExplSpec;
 
69533
class WinTypeKeywords;
 
69534
class WinFriend;
57390
69535
class ExtAC;
57391
69536
class ExtACBuilderCoupling;
57392
69537
class ExtACSyntaxCoupling;
57393
69538
class ExtACTree;
57394
69539
class ExtACKeywords;
57395
 
class WinAsm;
57396
 
class WinDeclSpecs;
57397
 
class WinMemberExplSpec;
57398
 
class WinTypeKeywords;
 
69540
class ExtGnu;
57399
69541
class PragmaOnceUnitState;
57400
69542
class PragmaOnce;
57401
 
class CCExprResolve;
57402
 
class CExprResolve;
57403
 
namespace Puma {
57404
 
 
57405
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57406
 
class CT_UnaryExpr : public CT_Expression {
57407
 
#line 57408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69543
class CMatchSyntax;
 
69544
namespace Puma {
 
69545
 
 
69546
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69547
 
 
69548
#line 69549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69549
} // closed Puma
 
69550
 
 
69551
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69552
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69553
#include "CCExprResolveH.ah"
 
69554
#endif
 
69555
namespace Puma {
 
69556
 
 
69557
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69558
 
 
69559
#line 69560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69560
} // closed Puma
 
69561
 
 
69562
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69563
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69564
#include "CExprResolveH.ah"
 
69565
#endif
 
69566
namespace Puma {
 
69567
 
 
69568
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69569
class CT_UnaryExpr : public CT_Call {
 
69570
#line 69571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69571
  friend class ::CCExprResolve;
 
69572
  friend class ::CExprResolve;
57408
69573
  friend class ::WinIfExists;
57409
69574
  friend class ::WinImportHandler;
57410
69575
  friend class ::WinMacros;
57411
 
  friend class ::CMatchSyntax;
57412
 
  friend class ::ExtGnu;
 
69576
  friend class ::WinAsm;
 
69577
  friend class ::WinDeclSpecs;
 
69578
  friend class ::WinMemberExplSpec;
 
69579
  friend class ::WinTypeKeywords;
 
69580
  friend class ::WinFriend;
57413
69581
  friend class ::ExtAC;
57414
69582
  friend class ::ExtACBuilderCoupling;
57415
69583
  friend class ::ExtACSyntaxCoupling;
57416
69584
  friend class ::ExtACTree;
57417
69585
  friend class ::ExtACKeywords;
57418
 
  friend class ::WinAsm;
57419
 
  friend class ::WinDeclSpecs;
57420
 
  friend class ::WinMemberExplSpec;
57421
 
  friend class ::WinTypeKeywords;
 
69586
  friend class ::ExtGnu;
57422
69587
  friend class ::PragmaOnceUnitState;
57423
69588
  friend class ::PragmaOnce;
57424
 
  friend class ::CCExprResolve;
57425
 
  friend class ::CExprResolve;
 
69589
  friend class ::CMatchSyntax;
57426
69590
 
57427
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69591
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57428
69592
 
57429
69593
  CTree *sons[2]; // oper, expr
57430
69594
 
57431
69595
public:
57432
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
69596
  /** Constructor.
 
69597
   *  \param o The unary operator.
 
69598
   *  \param e The expression on which the operator is invoked. */
 
69599
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
69600
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57433
69601
  static const char *NodeId ();
 
69602
  /** Get the name of the node. Can be compared with NodeId(). */
57434
69603
  const char *NodeName () const { return NodeId (); }
 
69604
  /** Get the number of sons. */
57435
69605
  int Sons () const { return 2; }
 
69606
  /** Get the n-th son.
 
69607
   *  \param n The index of the son.
 
69608
   *  \return The n-th son or NULL. */
57436
69609
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
69610
  /** Replace a son.
 
69611
   *  \param old_son The son to replace.
 
69612
   *  \param new_son The new son. */
57437
69613
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57438
69614
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57439
69615
  }
 
69616
  /** Get the expression node. */
57440
69617
  CTree *Expr () const { return sons[1]; }
57441
69618
   private:
57442
69619
  typedef CT_UnaryExpr CCExprResolveExpr;
57443
69620
 
57444
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69621
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57445
69622
 public :
57446
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69623
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57447
69624
  typedef CT_UnaryExpr CExprResolveExpr;
57448
69625
 
57449
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69626
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57450
69627
 public :
57451
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57452
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69628
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69629
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57453
69630
};
57454
69631
 
 
69632
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
69633
 *  Tree node representing a postfix expression, e.g. a++. */
57455
69634
 
57456
 
#line 57457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69635
#line 69636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57457
69636
} // closed Puma
 
69637
class CCExprResolve;
 
69638
class CExprResolve;
57458
69639
class WinIfExists;
57459
69640
class WinImportHandler;
57460
69641
class WinMacros;
57461
 
class CMatchSyntax;
57462
 
class ExtGnu;
 
69642
class WinAsm;
 
69643
class WinDeclSpecs;
 
69644
class WinMemberExplSpec;
 
69645
class WinTypeKeywords;
 
69646
class WinFriend;
57463
69647
class ExtAC;
57464
69648
class ExtACBuilderCoupling;
57465
69649
class ExtACSyntaxCoupling;
57466
69650
class ExtACTree;
57467
69651
class ExtACKeywords;
57468
 
class WinAsm;
57469
 
class WinDeclSpecs;
57470
 
class WinMemberExplSpec;
57471
 
class WinTypeKeywords;
 
69652
class ExtGnu;
57472
69653
class PragmaOnceUnitState;
57473
69654
class PragmaOnce;
57474
 
class CCExprResolve;
57475
 
class CExprResolve;
57476
 
namespace Puma {
57477
 
 
57478
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69655
class CMatchSyntax;
 
69656
namespace Puma {
 
69657
 
 
69658
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69659
 
 
69660
#line 69661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69661
} // closed Puma
 
69662
 
 
69663
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69664
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69665
#include "CCExprResolveH.ah"
 
69666
#endif
 
69667
namespace Puma {
 
69668
 
 
69669
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69670
 
 
69671
#line 69672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69672
} // closed Puma
 
69673
 
 
69674
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69675
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69676
#include "CExprResolveH.ah"
 
69677
#endif
 
69678
namespace Puma {
 
69679
 
 
69680
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57479
69681
class CT_PostfixExpr : public CT_UnaryExpr {
57480
 
#line 57481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69682
#line 69683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69683
  friend class ::CCExprResolve;
 
69684
  friend class ::CExprResolve;
57481
69685
  friend class ::WinIfExists;
57482
69686
  friend class ::WinImportHandler;
57483
69687
  friend class ::WinMacros;
57484
 
  friend class ::CMatchSyntax;
57485
 
  friend class ::ExtGnu;
 
69688
  friend class ::WinAsm;
 
69689
  friend class ::WinDeclSpecs;
 
69690
  friend class ::WinMemberExplSpec;
 
69691
  friend class ::WinTypeKeywords;
 
69692
  friend class ::WinFriend;
57486
69693
  friend class ::ExtAC;
57487
69694
  friend class ::ExtACBuilderCoupling;
57488
69695
  friend class ::ExtACSyntaxCoupling;
57489
69696
  friend class ::ExtACTree;
57490
69697
  friend class ::ExtACKeywords;
57491
 
  friend class ::WinAsm;
57492
 
  friend class ::WinDeclSpecs;
57493
 
  friend class ::WinMemberExplSpec;
57494
 
  friend class ::WinTypeKeywords;
 
69698
  friend class ::ExtGnu;
57495
69699
  friend class ::PragmaOnceUnitState;
57496
69700
  friend class ::PragmaOnce;
57497
 
  friend class ::CCExprResolve;
57498
 
  friend class ::CExprResolve;
 
69701
  friend class ::CMatchSyntax;
57499
69702
 
57500
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69703
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57501
69704
 
57502
69705
public:
 
69706
  /** Constructor.
 
69707
   *  \param e The expression on which to invoke the operator. 
 
69708
   *  \param o The postfix operator. */
57503
69709
  CT_PostfixExpr (CTree *e, CTree *o) :
57504
69710
    CT_UnaryExpr (e, o) {}
 
69711
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57505
69712
  static const char *NodeId ();
 
69713
  /** Get the name of the node. Can be compared with NodeId(). */
57506
69714
  const char *NodeName () const { return NodeId (); }
57507
69715
   private:
57508
69716
  typedef CT_PostfixExpr CCExprResolveExpr;
57509
69717
 
57510
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69718
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57511
69719
 public :
57512
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69720
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57513
69721
  typedef CT_PostfixExpr CExprResolveExpr;
57514
69722
 
57515
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69723
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57516
69724
 public :
57517
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57518
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69725
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69726
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57519
69727
};
57520
69728
 
 
69729
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
69730
 *  Tree node representing an address expression, e.g. &a. */
57521
69731
 
57522
 
#line 57523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69732
#line 69733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57523
69733
} // closed Puma
 
69734
class CCExprResolve;
 
69735
class CExprResolve;
57524
69736
class WinIfExists;
57525
69737
class WinImportHandler;
57526
69738
class WinMacros;
57527
 
class CMatchSyntax;
57528
 
class ExtGnu;
 
69739
class WinAsm;
 
69740
class WinDeclSpecs;
 
69741
class WinMemberExplSpec;
 
69742
class WinTypeKeywords;
 
69743
class WinFriend;
57529
69744
class ExtAC;
57530
69745
class ExtACBuilderCoupling;
57531
69746
class ExtACSyntaxCoupling;
57532
69747
class ExtACTree;
57533
69748
class ExtACKeywords;
57534
 
class WinAsm;
57535
 
class WinDeclSpecs;
57536
 
class WinMemberExplSpec;
57537
 
class WinTypeKeywords;
 
69749
class ExtGnu;
57538
69750
class PragmaOnceUnitState;
57539
69751
class PragmaOnce;
57540
 
class CCExprResolve;
57541
 
class CExprResolve;
57542
 
namespace Puma {
57543
 
 
57544
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69752
class CMatchSyntax;
 
69753
namespace Puma {
 
69754
 
 
69755
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69756
 
 
69757
#line 69758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69758
} // closed Puma
 
69759
 
 
69760
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69761
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69762
#include "CCExprResolveH.ah"
 
69763
#endif
 
69764
namespace Puma {
 
69765
 
 
69766
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69767
 
 
69768
#line 69769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69769
} // closed Puma
 
69770
 
 
69771
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69772
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69773
#include "CExprResolveH.ah"
 
69774
#endif
 
69775
namespace Puma {
 
69776
 
 
69777
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57545
69778
class CT_AddrExpr : public CT_UnaryExpr {
57546
 
#line 57547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69779
#line 69780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69780
  friend class ::CCExprResolve;
 
69781
  friend class ::CExprResolve;
57547
69782
  friend class ::WinIfExists;
57548
69783
  friend class ::WinImportHandler;
57549
69784
  friend class ::WinMacros;
57550
 
  friend class ::CMatchSyntax;
57551
 
  friend class ::ExtGnu;
 
69785
  friend class ::WinAsm;
 
69786
  friend class ::WinDeclSpecs;
 
69787
  friend class ::WinMemberExplSpec;
 
69788
  friend class ::WinTypeKeywords;
 
69789
  friend class ::WinFriend;
57552
69790
  friend class ::ExtAC;
57553
69791
  friend class ::ExtACBuilderCoupling;
57554
69792
  friend class ::ExtACSyntaxCoupling;
57555
69793
  friend class ::ExtACTree;
57556
69794
  friend class ::ExtACKeywords;
57557
 
  friend class ::WinAsm;
57558
 
  friend class ::WinDeclSpecs;
57559
 
  friend class ::WinMemberExplSpec;
57560
 
  friend class ::WinTypeKeywords;
 
69795
  friend class ::ExtGnu;
57561
69796
  friend class ::PragmaOnceUnitState;
57562
69797
  friend class ::PragmaOnce;
57563
 
  friend class ::CCExprResolve;
57564
 
  friend class ::CExprResolve;
 
69798
  friend class ::CMatchSyntax;
57565
69799
 
57566
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69800
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57567
69801
 
57568
69802
public:
 
69803
  /** Constructor.
 
69804
   *  \param o The address operator, i.e. '&'.
 
69805
   *  \param e The expression from which to take the address. */
57569
69806
  CT_AddrExpr (CTree *o, CTree *e) :
57570
69807
    CT_UnaryExpr (o, e) {}
 
69808
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57571
69809
  static const char *NodeId ();
 
69810
  /** Get the name of the node. Can be compared with NodeId(). */
57572
69811
  const char *NodeName () const { return NodeId (); }
57573
69812
   private:
57574
69813
  typedef CT_AddrExpr CCExprResolveExpr;
57575
69814
 
57576
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69815
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57577
69816
 public :
57578
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69817
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57579
69818
  typedef CT_AddrExpr CExprResolveExpr;
57580
69819
 
57581
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69820
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57582
69821
 public :
57583
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57584
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69822
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69823
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57585
69824
};
57586
69825
 
 
69826
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
69827
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
57587
69828
 
57588
 
#line 57589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69829
#line 69830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57589
69830
} // closed Puma
 
69831
class CCExprResolve;
 
69832
class CExprResolve;
57590
69833
class WinIfExists;
57591
69834
class WinImportHandler;
57592
69835
class WinMacros;
57593
 
class CMatchSyntax;
57594
 
class ExtGnu;
 
69836
class WinAsm;
 
69837
class WinDeclSpecs;
 
69838
class WinMemberExplSpec;
 
69839
class WinTypeKeywords;
 
69840
class WinFriend;
57595
69841
class ExtAC;
57596
69842
class ExtACBuilderCoupling;
57597
69843
class ExtACSyntaxCoupling;
57598
69844
class ExtACTree;
57599
69845
class ExtACKeywords;
57600
 
class WinAsm;
57601
 
class WinDeclSpecs;
57602
 
class WinMemberExplSpec;
57603
 
class WinTypeKeywords;
 
69846
class ExtGnu;
57604
69847
class PragmaOnceUnitState;
57605
69848
class PragmaOnce;
57606
 
class CCExprResolve;
57607
 
class CExprResolve;
57608
 
namespace Puma {
57609
 
 
57610
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69849
class CMatchSyntax;
 
69850
namespace Puma {
 
69851
 
 
69852
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69853
 
 
69854
#line 69855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69855
} // closed Puma
 
69856
 
 
69857
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69858
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69859
#include "CCExprResolveH.ah"
 
69860
#endif
 
69861
namespace Puma {
 
69862
 
 
69863
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69864
 
 
69865
#line 69866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69866
} // closed Puma
 
69867
 
 
69868
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69869
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69870
#include "CExprResolveH.ah"
 
69871
#endif
 
69872
namespace Puma {
 
69873
 
 
69874
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57611
69875
class CT_DerefExpr : public CT_UnaryExpr {
57612
 
#line 57613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69876
#line 69877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69877
  friend class ::CCExprResolve;
 
69878
  friend class ::CExprResolve;
57613
69879
  friend class ::WinIfExists;
57614
69880
  friend class ::WinImportHandler;
57615
69881
  friend class ::WinMacros;
57616
 
  friend class ::CMatchSyntax;
57617
 
  friend class ::ExtGnu;
 
69882
  friend class ::WinAsm;
 
69883
  friend class ::WinDeclSpecs;
 
69884
  friend class ::WinMemberExplSpec;
 
69885
  friend class ::WinTypeKeywords;
 
69886
  friend class ::WinFriend;
57618
69887
  friend class ::ExtAC;
57619
69888
  friend class ::ExtACBuilderCoupling;
57620
69889
  friend class ::ExtACSyntaxCoupling;
57621
69890
  friend class ::ExtACTree;
57622
69891
  friend class ::ExtACKeywords;
57623
 
  friend class ::WinAsm;
57624
 
  friend class ::WinDeclSpecs;
57625
 
  friend class ::WinMemberExplSpec;
57626
 
  friend class ::WinTypeKeywords;
 
69892
  friend class ::ExtGnu;
57627
69893
  friend class ::PragmaOnceUnitState;
57628
69894
  friend class ::PragmaOnce;
57629
 
  friend class ::CCExprResolve;
57630
 
  friend class ::CExprResolve;
 
69895
  friend class ::CMatchSyntax;
57631
69896
 
57632
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69897
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57633
69898
 
57634
69899
public:
 
69900
  /** Constructor.
 
69901
   *  \param o The dereferencing operator, i.e. '*'.
 
69902
   *  \param e The expression to dereference. */
57635
69903
  CT_DerefExpr (CTree *o, CTree *e) :
57636
69904
    CT_UnaryExpr (o, e) {}
 
69905
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57637
69906
  static const char *NodeId ();
 
69907
  /** Get the name of the node. Can be compared with NodeId(). */
57638
69908
  const char *NodeName () const { return NodeId (); }
57639
69909
   private:
57640
69910
  typedef CT_DerefExpr CCExprResolveExpr;
57641
69911
 
57642
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69912
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57643
69913
 public :
57644
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69914
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57645
69915
  typedef CT_DerefExpr CExprResolveExpr;
57646
69916
 
57647
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69917
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57648
69918
 public :
57649
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57650
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69919
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69920
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57651
69921
};
57652
69922
 
 
69923
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
69924
 *  Tree node representing a delete expression, e.g. delete a. */
57653
69925
 
57654
 
#line 57655 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69926
#line 69927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57655
69927
} // closed Puma
 
69928
class CCExprResolve;
 
69929
class CExprResolve;
57656
69930
class WinIfExists;
57657
69931
class WinImportHandler;
57658
69932
class WinMacros;
57659
 
class CMatchSyntax;
57660
 
class ExtGnu;
 
69933
class WinAsm;
 
69934
class WinDeclSpecs;
 
69935
class WinMemberExplSpec;
 
69936
class WinTypeKeywords;
 
69937
class WinFriend;
57661
69938
class ExtAC;
57662
69939
class ExtACBuilderCoupling;
57663
69940
class ExtACSyntaxCoupling;
57664
69941
class ExtACTree;
57665
69942
class ExtACKeywords;
57666
 
class WinAsm;
57667
 
class WinDeclSpecs;
57668
 
class WinMemberExplSpec;
57669
 
class WinTypeKeywords;
 
69943
class ExtGnu;
57670
69944
class PragmaOnceUnitState;
57671
69945
class PragmaOnce;
57672
 
class CCExprResolve;
57673
 
class CExprResolve;
57674
 
namespace Puma {
57675
 
 
57676
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69946
class CMatchSyntax;
 
69947
namespace Puma {
 
69948
 
 
69949
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69950
 
 
69951
#line 69952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69952
} // closed Puma
 
69953
 
 
69954
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69955
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69956
#include "CCExprResolveH.ah"
 
69957
#endif
 
69958
namespace Puma {
 
69959
 
 
69960
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69961
 
 
69962
#line 69963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69963
} // closed Puma
 
69964
 
 
69965
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69966
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69967
#include "CExprResolveH.ah"
 
69968
#endif
 
69969
namespace Puma {
 
69970
 
 
69971
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57677
69972
class CT_DeleteExpr : public CT_Expression, public CSemObject {
57678
 
#line 57679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
69973
#line 69974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
69974
  friend class ::CCExprResolve;
 
69975
  friend class ::CExprResolve;
57679
69976
  friend class ::WinIfExists;
57680
69977
  friend class ::WinImportHandler;
57681
69978
  friend class ::WinMacros;
57682
 
  friend class ::CMatchSyntax;
57683
 
  friend class ::ExtGnu;
 
69979
  friend class ::WinAsm;
 
69980
  friend class ::WinDeclSpecs;
 
69981
  friend class ::WinMemberExplSpec;
 
69982
  friend class ::WinTypeKeywords;
 
69983
  friend class ::WinFriend;
57684
69984
  friend class ::ExtAC;
57685
69985
  friend class ::ExtACBuilderCoupling;
57686
69986
  friend class ::ExtACSyntaxCoupling;
57687
69987
  friend class ::ExtACTree;
57688
69988
  friend class ::ExtACKeywords;
57689
 
  friend class ::WinAsm;
57690
 
  friend class ::WinDeclSpecs;
57691
 
  friend class ::WinMemberExplSpec;
57692
 
  friend class ::WinTypeKeywords;
 
69989
  friend class ::ExtGnu;
57693
69990
  friend class ::PragmaOnceUnitState;
57694
69991
  friend class ::PragmaOnce;
57695
 
  friend class ::CCExprResolve;
57696
 
  friend class ::CExprResolve;
 
69992
  friend class ::CMatchSyntax;
57697
69993
 
57698
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69994
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57699
69995
 
57700
69996
  CTree *sons[2]; // oper, expr
57701
69997
 
57702
69998
public:
57703
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
69999
  /** Constructor.
 
70000
   *  \param op The delete operator.
 
70001
   *  \param e The expression representing the object to delete. */
 
70002
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
70003
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57704
70004
  static const char *NodeId ();
 
70005
  /** Get the name of the node. Can be compared with NodeId(). */
57705
70006
  const char *NodeName () const { return NodeId (); }
 
70007
  /** Get the number of sons. */
57706
70008
  int Sons () const { return 2; }
 
70009
  /** Get the n-th son.
 
70010
   *  \param n The index of the son.
 
70011
   *  \return The n-th son or NULL. */
57707
70012
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
70013
  /** Replace a son.
 
70014
   *  \param old_son The son to replace.
 
70015
   *  \param new_son The new son. */
57708
70016
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57709
70017
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57710
70018
  }
 
70019
  /** Get the expression. */
57711
70020
  CTree *Expr () const { return sons[1]; }
 
70021
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
57712
70022
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
70023
  /** Get the semantic information object. */
57713
70024
  CSemObject *SemObject () const { return (CSemObject*)this; }
57714
70025
   private:
57715
70026
  typedef CT_DeleteExpr CCExprResolveExpr;
57716
70027
 
57717
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70028
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57718
70029
 public :
57719
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70030
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57720
70031
  typedef CT_DeleteExpr CExprResolveExpr;
57721
70032
 
57722
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70033
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57723
70034
 public :
57724
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57725
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70035
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70036
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57726
70037
};
57727
70038
 
 
70039
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
70040
 *  Tree node representing a new expression, e.g. new A(). */
57728
70041
 
57729
 
#line 57730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70042
#line 70043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57730
70043
} // closed Puma
 
70044
class CCExprResolve;
 
70045
class CExprResolve;
57731
70046
class WinIfExists;
57732
70047
class WinImportHandler;
57733
70048
class WinMacros;
57734
 
class CMatchSyntax;
57735
 
class ExtGnu;
 
70049
class WinAsm;
 
70050
class WinDeclSpecs;
 
70051
class WinMemberExplSpec;
 
70052
class WinTypeKeywords;
 
70053
class WinFriend;
57736
70054
class ExtAC;
57737
70055
class ExtACBuilderCoupling;
57738
70056
class ExtACSyntaxCoupling;
57739
70057
class ExtACTree;
57740
70058
class ExtACKeywords;
57741
 
class WinAsm;
57742
 
class WinDeclSpecs;
57743
 
class WinMemberExplSpec;
57744
 
class WinTypeKeywords;
 
70059
class ExtGnu;
57745
70060
class PragmaOnceUnitState;
57746
70061
class PragmaOnce;
57747
 
class CCExprResolve;
57748
 
class CExprResolve;
57749
 
namespace Puma {
57750
 
 
57751
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70062
class CMatchSyntax;
 
70063
namespace Puma {
 
70064
 
 
70065
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70066
 
 
70067
#line 70068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70068
} // closed Puma
 
70069
 
 
70070
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70071
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70072
#include "CCExprResolveH.ah"
 
70073
#endif
 
70074
namespace Puma {
 
70075
 
 
70076
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70077
 
 
70078
#line 70079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70079
} // closed Puma
 
70080
 
 
70081
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70082
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70083
#include "CExprResolveH.ah"
 
70084
#endif
 
70085
namespace Puma {
 
70086
 
 
70087
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57752
70088
class CT_NewExpr : public CT_Expression, public CSemObject {
57753
 
#line 57754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70089
#line 70090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70090
  friend class ::CCExprResolve;
 
70091
  friend class ::CExprResolve;
57754
70092
  friend class ::WinIfExists;
57755
70093
  friend class ::WinImportHandler;
57756
70094
  friend class ::WinMacros;
57757
 
  friend class ::CMatchSyntax;
57758
 
  friend class ::ExtGnu;
 
70095
  friend class ::WinAsm;
 
70096
  friend class ::WinDeclSpecs;
 
70097
  friend class ::WinMemberExplSpec;
 
70098
  friend class ::WinTypeKeywords;
 
70099
  friend class ::WinFriend;
57759
70100
  friend class ::ExtAC;
57760
70101
  friend class ::ExtACBuilderCoupling;
57761
70102
  friend class ::ExtACSyntaxCoupling;
57762
70103
  friend class ::ExtACTree;
57763
70104
  friend class ::ExtACKeywords;
57764
 
  friend class ::WinAsm;
57765
 
  friend class ::WinDeclSpecs;
57766
 
  friend class ::WinMemberExplSpec;
57767
 
  friend class ::WinTypeKeywords;
 
70105
  friend class ::ExtGnu;
57768
70106
  friend class ::PragmaOnceUnitState;
57769
70107
  friend class ::PragmaOnce;
57770
 
  friend class ::CCExprResolve;
57771
 
  friend class ::CExprResolve;
 
70108
  friend class ::CMatchSyntax;
57772
70109
 
57773
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70110
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57774
70111
 
57775
70112
  CTree *sons[6]; // oper, placement, open, type, close, init
57776
70113
 
57777
70114
public:
 
70115
  /** Constructor.
 
70116
   *  \param op The new operator.
 
70117
   *  \param p The optional placement expression.
 
70118
   *  \param o The optional left parenthesis around the type identifier.
 
70119
   *  \param t The type identifier specifying the type of the object to create.
 
70120
   *  \param c The optional right parenthesis around the type identifier.
 
70121
   *  \param i The optional initializer. */
57778
70122
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
57779
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
70123
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
70124
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
57780
70125
  }
 
70126
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57781
70127
  static const char *NodeId ();
 
70128
  /** Get the name of the node. Can be compared with NodeId(). */
57782
70129
  const char *NodeName () const { return NodeId (); }
 
70130
  /** Get the number of sons. */
57783
70131
  int Sons () const { return CTree::Sons (sons, 6); }
 
70132
  /** Get the n-th son.
 
70133
   *  \param n The index of the son.
 
70134
   *  \return The n-th son or NULL. */
57784
70135
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
70136
  /** Replace a son.
 
70137
   *  \param old_son The son to replace.
 
70138
   *  \param new_son The new son. */
57785
70139
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57786
70140
    CTree::ReplaceSon (sons, 6, old_son, new_son);
57787
70141
  }
 
70142
  /** Get the operator name. */
57788
70143
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
70144
  /** Get the placement expression. */
57789
70145
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
70146
  /** Get the initializer. */
57790
70147
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
70148
  /** Get the type of the object to create. */
57791
70149
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
70150
  /** Get the semantic information object. */
57792
70151
  CSemObject *SemObject () const { return (CSemObject*)this; }
57793
70152
   private:
57794
70153
  typedef CT_NewExpr CCExprResolveExpr;
57795
70154
 
57796
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70155
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57797
70156
 public :
57798
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70157
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57799
70158
  typedef CT_NewExpr CExprResolveExpr;
57800
70159
 
57801
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70160
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57802
70161
 public :
57803
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57804
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70162
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70163
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57805
70164
};
57806
70165
 
 
70166
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
70167
 *  Tree node representing an if-then expression, 
 
70168
 *  e.g. a>0?a:b or a?:b. */
57807
70169
 
57808
 
#line 57809 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70170
#line 70171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57809
70171
} // closed Puma
 
70172
class CCExprResolve;
 
70173
class CExprResolve;
57810
70174
class WinIfExists;
57811
70175
class WinImportHandler;
57812
70176
class WinMacros;
57813
 
class CMatchSyntax;
57814
 
class ExtGnu;
 
70177
class WinAsm;
 
70178
class WinDeclSpecs;
 
70179
class WinMemberExplSpec;
 
70180
class WinTypeKeywords;
 
70181
class WinFriend;
57815
70182
class ExtAC;
57816
70183
class ExtACBuilderCoupling;
57817
70184
class ExtACSyntaxCoupling;
57818
70185
class ExtACTree;
57819
70186
class ExtACKeywords;
57820
 
class WinAsm;
57821
 
class WinDeclSpecs;
57822
 
class WinMemberExplSpec;
57823
 
class WinTypeKeywords;
 
70187
class ExtGnu;
57824
70188
class PragmaOnceUnitState;
57825
70189
class PragmaOnce;
57826
 
class CCExprResolve;
57827
 
class CExprResolve;
57828
 
namespace Puma {
57829
 
 
57830
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70190
class CMatchSyntax;
 
70191
namespace Puma {
 
70192
 
 
70193
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70194
 
 
70195
#line 70196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70196
} // closed Puma
 
70197
 
 
70198
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70199
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70200
#include "CCExprResolveH.ah"
 
70201
#endif
 
70202
namespace Puma {
 
70203
 
 
70204
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70205
 
 
70206
#line 70207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70207
} // closed Puma
 
70208
 
 
70209
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70210
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70211
#include "CExprResolveH.ah"
 
70212
#endif
 
70213
namespace Puma {
 
70214
 
 
70215
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57831
70216
class CT_IfThenExpr : public CT_Expression {
57832
 
#line 57833 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70217
#line 70218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70218
  friend class ::CCExprResolve;
 
70219
  friend class ::CExprResolve;
57833
70220
  friend class ::WinIfExists;
57834
70221
  friend class ::WinImportHandler;
57835
70222
  friend class ::WinMacros;
57836
 
  friend class ::CMatchSyntax;
57837
 
  friend class ::ExtGnu;
 
70223
  friend class ::WinAsm;
 
70224
  friend class ::WinDeclSpecs;
 
70225
  friend class ::WinMemberExplSpec;
 
70226
  friend class ::WinTypeKeywords;
 
70227
  friend class ::WinFriend;
57838
70228
  friend class ::ExtAC;
57839
70229
  friend class ::ExtACBuilderCoupling;
57840
70230
  friend class ::ExtACSyntaxCoupling;
57841
70231
  friend class ::ExtACTree;
57842
70232
  friend class ::ExtACKeywords;
57843
 
  friend class ::WinAsm;
57844
 
  friend class ::WinDeclSpecs;
57845
 
  friend class ::WinMemberExplSpec;
57846
 
  friend class ::WinTypeKeywords;
 
70233
  friend class ::ExtGnu;
57847
70234
  friend class ::PragmaOnceUnitState;
57848
70235
  friend class ::PragmaOnce;
57849
 
  friend class ::CCExprResolve;
57850
 
  friend class ::CExprResolve;
 
70236
  friend class ::CMatchSyntax;
57851
70237
 
57852
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70238
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57853
70239
 
57854
70240
  CTree *sons[5]; // cond, oper, left, colon, right
57855
70241
 
57856
70242
public:
 
70243
  /** Constructor.
 
70244
   *  \param c1 The condition expression.
 
70245
   *  \param o The question mark operator. 
 
70246
   *  \param l The expression to the left of the colon.
 
70247
   *  \param c2 The colon operator.
 
70248
   *  \param r The expression to the right of the colon. */ 
57857
70249
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
57858
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
70250
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
70251
    AddSon (sons[3], c2); AddSon (sons[4], r);
57859
70252
  }
 
70253
  /** Constructor.
 
70254
   *  \param c1 The condition expression.
 
70255
   *  \param o The question mark operator. 
 
70256
   *  \param c2 The colon operator.
 
70257
   *  \param r The expression to the right of the colon. */ 
57860
70258
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
57861
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
70259
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
70260
    AddSon (sons[3], c2); AddSon (sons[4], r);
57862
70261
  }
 
70262
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57863
70263
  static const char *NodeId ();
 
70264
  /** Get the name of the node. Can be compared with NodeId(). */
57864
70265
  const char *NodeName () const { return NodeId (); }
 
70266
  /** Get the number of sons. */
57865
70267
  int Sons () const { return CTree::Sons (sons, 5); }
 
70268
  /** Get the n-th son.
 
70269
   *  \param n The index of the son.
 
70270
   *  \return The n-th son or NULL. */
57866
70271
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
70272
  /** Get the condition expression. */
57867
70273
  CTree *Condition () const { return sons[0]; }
 
70274
  /** Get the left expression (condition=true). */
57868
70275
  CTree *LeftOperand () const { return sons[2]; }
 
70276
  /** Get the right expression (condition=false). */
57869
70277
  CTree *RightOperand () const { return sons[4]; }
 
70278
  /** Replace a son.
 
70279
   *  \param old_son The son to replace.
 
70280
   *  \param new_son The new son. */
57870
70281
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57871
70282
    CTree::ReplaceSon (sons, 5, old_son, new_son);
57872
70283
  }
57873
70284
   private:
57874
70285
  typedef CT_IfThenExpr CCExprResolveExpr;
57875
70286
 
57876
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70287
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57877
70288
 public :
57878
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70289
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57879
70290
  typedef CT_IfThenExpr CExprResolveExpr;
57880
70291
 
57881
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70292
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57882
70293
 public :
57883
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57884
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70294
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70295
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57885
70296
};
57886
70297
 
 
70298
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
70299
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
57887
70300
 
57888
 
#line 57889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70301
#line 70302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57889
70302
} // closed Puma
 
70303
class CCExprResolve;
 
70304
class CExprResolve;
57890
70305
class WinIfExists;
57891
70306
class WinImportHandler;
57892
70307
class WinMacros;
57893
 
class CMatchSyntax;
57894
 
class ExtGnu;
 
70308
class WinAsm;
 
70309
class WinDeclSpecs;
 
70310
class WinMemberExplSpec;
 
70311
class WinTypeKeywords;
 
70312
class WinFriend;
57895
70313
class ExtAC;
57896
70314
class ExtACBuilderCoupling;
57897
70315
class ExtACSyntaxCoupling;
57898
70316
class ExtACTree;
57899
70317
class ExtACKeywords;
57900
 
class WinAsm;
57901
 
class WinDeclSpecs;
57902
 
class WinMemberExplSpec;
57903
 
class WinTypeKeywords;
 
70318
class ExtGnu;
57904
70319
class PragmaOnceUnitState;
57905
70320
class PragmaOnce;
57906
 
class CCExprResolve;
57907
 
class CExprResolve;
57908
 
namespace Puma {
57909
 
 
57910
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70321
class CMatchSyntax;
 
70322
namespace Puma {
 
70323
 
 
70324
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70325
 
 
70326
#line 70327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70327
} // closed Puma
 
70328
 
 
70329
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70330
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70331
#include "CCExprResolveH.ah"
 
70332
#endif
 
70333
namespace Puma {
 
70334
 
 
70335
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70336
 
 
70337
#line 70338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70338
} // closed Puma
 
70339
 
 
70340
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70341
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70342
#include "CExprResolveH.ah"
 
70343
#endif
 
70344
namespace Puma {
 
70345
 
 
70346
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57911
70347
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
57912
 
#line 57913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70348
#line 70349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70349
  friend class ::CCExprResolve;
 
70350
  friend class ::CExprResolve;
57913
70351
  friend class ::WinIfExists;
57914
70352
  friend class ::WinImportHandler;
57915
70353
  friend class ::WinMacros;
57916
 
  friend class ::CMatchSyntax;
57917
 
  friend class ::ExtGnu;
 
70354
  friend class ::WinAsm;
 
70355
  friend class ::WinDeclSpecs;
 
70356
  friend class ::WinMemberExplSpec;
 
70357
  friend class ::WinTypeKeywords;
 
70358
  friend class ::WinFriend;
57918
70359
  friend class ::ExtAC;
57919
70360
  friend class ::ExtACBuilderCoupling;
57920
70361
  friend class ::ExtACSyntaxCoupling;
57921
70362
  friend class ::ExtACTree;
57922
70363
  friend class ::ExtACKeywords;
57923
 
  friend class ::WinAsm;
57924
 
  friend class ::WinDeclSpecs;
57925
 
  friend class ::WinMemberExplSpec;
57926
 
  friend class ::WinTypeKeywords;
 
70364
  friend class ::ExtGnu;
57927
70365
  friend class ::PragmaOnceUnitState;
57928
70366
  friend class ::PragmaOnce;
57929
 
  friend class ::CCExprResolve;
57930
 
  friend class ::CExprResolve;
 
70367
  friend class ::CMatchSyntax;
57931
70368
 
57932
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70369
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57933
70370
 
57934
70371
  CTree *sons[4]; // open, type, close, init
57935
70372
 
57936
70373
public:
 
70374
  /** Constructor.
 
70375
   *  \param r Left parenthesis of the type name.
 
70376
   *  \param t The type name.
 
70377
   *  \param cr Right parenthesis of the type name.
 
70378
   *  \param i The initializer list. */
57937
70379
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
57938
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
70380
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
70381
    AddSon (sons[2], cr); AddSon (sons[3], i);
57939
70382
  }
 
70383
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57940
70384
  static const char *NodeId ();
 
70385
  /** Get the name of the node. Can be compared with NodeId(). */
57941
70386
  const char *NodeName () const { return NodeId (); }
 
70387
  /** Get the number of sons. */
57942
70388
  int Sons () const { return 4; }
 
70389
  /** Get the n-th son.
 
70390
   *  \param n The index of the son.
 
70391
   *  \return The n-th son or NULL. */
57943
70392
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
70393
  /** Replace a son.
 
70394
   *  \param old_son The son to replace.
 
70395
   *  \param new_son The new son. */
57944
70396
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57945
70397
    CTree::ReplaceSon (sons, 4, old_son, new_son);
57946
70398
  }
 
70399
  /** Get the type name. */
57947
70400
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
70401
  /** Get the initializer list. */
57948
70402
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
70403
  /** Get the semantic information object. */
57949
70404
  CSemObject *SemObject () const { return (CSemObject*)this; }
57950
70405
   private:
57951
70406
  typedef CT_CmpdLiteral CCExprResolveExpr;
57952
70407
 
57953
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70408
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57954
70409
 public :
57955
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70410
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57956
70411
  typedef CT_CmpdLiteral CExprResolveExpr;
57957
70412
 
57958
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70413
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57959
70414
 public :
57960
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57961
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70415
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70416
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57962
70417
};
57963
70418
 
 
70419
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
70420
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
57964
70421
 
57965
 
#line 57966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70422
#line 70423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
57966
70423
} // closed Puma
 
70424
class CCExprResolve;
 
70425
class CExprResolve;
57967
70426
class WinIfExists;
57968
70427
class WinImportHandler;
57969
70428
class WinMacros;
57970
 
class CMatchSyntax;
57971
 
class ExtGnu;
 
70429
class WinAsm;
 
70430
class WinDeclSpecs;
 
70431
class WinMemberExplSpec;
 
70432
class WinTypeKeywords;
 
70433
class WinFriend;
57972
70434
class ExtAC;
57973
70435
class ExtACBuilderCoupling;
57974
70436
class ExtACSyntaxCoupling;
57975
70437
class ExtACTree;
57976
70438
class ExtACKeywords;
57977
 
class WinAsm;
57978
 
class WinDeclSpecs;
57979
 
class WinMemberExplSpec;
57980
 
class WinTypeKeywords;
 
70439
class ExtGnu;
57981
70440
class PragmaOnceUnitState;
57982
70441
class PragmaOnce;
57983
 
class CCExprResolve;
57984
 
class CExprResolve;
57985
 
namespace Puma {
57986
 
 
57987
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70442
class CMatchSyntax;
 
70443
namespace Puma {
 
70444
 
 
70445
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70446
 
 
70447
#line 70448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70448
} // closed Puma
 
70449
 
 
70450
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70451
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70452
#include "CCExprResolveH.ah"
 
70453
#endif
 
70454
namespace Puma {
 
70455
 
 
70456
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70457
 
 
70458
#line 70459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70459
} // closed Puma
 
70460
 
 
70461
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70462
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70463
#include "CExprResolveH.ah"
 
70464
#endif
 
70465
namespace Puma {
 
70466
 
 
70467
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57988
70468
class CT_ConstructExpr : public CT_Expression, public CSemObject {
57989
 
#line 57990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70469
#line 70470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70470
  friend class ::CCExprResolve;
 
70471
  friend class ::CExprResolve;
57990
70472
  friend class ::WinIfExists;
57991
70473
  friend class ::WinImportHandler;
57992
70474
  friend class ::WinMacros;
57993
 
  friend class ::CMatchSyntax;
57994
 
  friend class ::ExtGnu;
 
70475
  friend class ::WinAsm;
 
70476
  friend class ::WinDeclSpecs;
 
70477
  friend class ::WinMemberExplSpec;
 
70478
  friend class ::WinTypeKeywords;
 
70479
  friend class ::WinFriend;
57995
70480
  friend class ::ExtAC;
57996
70481
  friend class ::ExtACBuilderCoupling;
57997
70482
  friend class ::ExtACSyntaxCoupling;
57998
70483
  friend class ::ExtACTree;
57999
70484
  friend class ::ExtACKeywords;
58000
 
  friend class ::WinAsm;
58001
 
  friend class ::WinDeclSpecs;
58002
 
  friend class ::WinMemberExplSpec;
58003
 
  friend class ::WinTypeKeywords;
 
70485
  friend class ::ExtGnu;
58004
70486
  friend class ::PragmaOnceUnitState;
58005
70487
  friend class ::PragmaOnce;
58006
 
  friend class ::CCExprResolve;
58007
 
  friend class ::CExprResolve;
 
70488
  friend class ::CMatchSyntax;
58008
70489
 
58009
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70490
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58010
70491
 
58011
70492
  CTree *sons[2]; // type, init
58012
70493
 
58013
70494
public:
58014
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
70495
  /** Constructor.
 
70496
   *  \param t The type name.
 
70497
   *  \param i The initializer list. */
 
70498
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
70499
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58015
70500
  static const char *NodeId ();
 
70501
  /** Get the name of the node. Can be compared with NodeId(). */
58016
70502
  const char *NodeName () const { return NodeId (); }
 
70503
  /** Get the number of sons. */
58017
70504
  int Sons () const { return 2; }
 
70505
  /** Get the n-th son.
 
70506
   *  \param n The index of the son.
 
70507
   *  \return The n-th son or NULL. */
58018
70508
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
70509
  /** Replace a son.
 
70510
   *  \param old_son The son to replace.
 
70511
   *  \param new_son The new son. */
58019
70512
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58020
70513
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58021
70514
  }
 
70515
  /** Get the type name. */
58022
70516
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
70517
  /** Get the initializer. */
58023
70518
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
70519
  /** Get the semantic information object. */
58024
70520
  CSemObject *SemObject () const { return (CSemObject*)this; }
58025
70521
   private:
58026
70522
  typedef CT_ConstructExpr CCExprResolveExpr;
58027
70523
 
58028
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70524
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58029
70525
 public :
58030
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70526
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58031
70527
  typedef CT_ConstructExpr CExprResolveExpr;
58032
70528
 
58033
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70529
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58034
70530
 public :
58035
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58036
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70531
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70532
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58037
70533
};
58038
70534
 
 
70535
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
70536
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
58039
70537
 
58040
 
#line 58041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70538
#line 70539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58041
70539
} // closed Puma
 
70540
class CCExprResolve;
 
70541
class CExprResolve;
58042
70542
class WinIfExists;
58043
70543
class WinImportHandler;
58044
70544
class WinMacros;
58045
 
class CMatchSyntax;
58046
 
class ExtGnu;
 
70545
class WinAsm;
 
70546
class WinDeclSpecs;
 
70547
class WinMemberExplSpec;
 
70548
class WinTypeKeywords;
 
70549
class WinFriend;
58047
70550
class ExtAC;
58048
70551
class ExtACBuilderCoupling;
58049
70552
class ExtACSyntaxCoupling;
58050
70553
class ExtACTree;
58051
70554
class ExtACKeywords;
58052
 
class WinAsm;
58053
 
class WinDeclSpecs;
58054
 
class WinMemberExplSpec;
58055
 
class WinTypeKeywords;
 
70555
class ExtGnu;
58056
70556
class PragmaOnceUnitState;
58057
70557
class PragmaOnce;
58058
 
class CCExprResolve;
58059
 
class CExprResolve;
58060
 
namespace Puma {
58061
 
 
58062
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70558
class CMatchSyntax;
 
70559
namespace Puma {
 
70560
 
 
70561
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70562
 
 
70563
#line 70564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70564
} // closed Puma
 
70565
 
 
70566
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70567
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70568
#include "CCExprResolveH.ah"
 
70569
#endif
 
70570
namespace Puma {
 
70571
 
 
70572
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70573
 
 
70574
#line 70575 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70575
} // closed Puma
 
70576
 
 
70577
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70578
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70579
#include "CExprResolveH.ah"
 
70580
#endif
 
70581
namespace Puma {
 
70582
 
 
70583
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58063
70584
class CT_ThrowExpr : public CT_Expression {
58064
 
#line 58065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70585
#line 70586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70586
  friend class ::CCExprResolve;
 
70587
  friend class ::CExprResolve;
58065
70588
  friend class ::WinIfExists;
58066
70589
  friend class ::WinImportHandler;
58067
70590
  friend class ::WinMacros;
58068
 
  friend class ::CMatchSyntax;
58069
 
  friend class ::ExtGnu;
 
70591
  friend class ::WinAsm;
 
70592
  friend class ::WinDeclSpecs;
 
70593
  friend class ::WinMemberExplSpec;
 
70594
  friend class ::WinTypeKeywords;
 
70595
  friend class ::WinFriend;
58070
70596
  friend class ::ExtAC;
58071
70597
  friend class ::ExtACBuilderCoupling;
58072
70598
  friend class ::ExtACSyntaxCoupling;
58073
70599
  friend class ::ExtACTree;
58074
70600
  friend class ::ExtACKeywords;
58075
 
  friend class ::WinAsm;
58076
 
  friend class ::WinDeclSpecs;
58077
 
  friend class ::WinMemberExplSpec;
58078
 
  friend class ::WinTypeKeywords;
 
70601
  friend class ::ExtGnu;
58079
70602
  friend class ::PragmaOnceUnitState;
58080
70603
  friend class ::PragmaOnce;
58081
 
  friend class ::CCExprResolve;
58082
 
  friend class ::CExprResolve;
 
70604
  friend class ::CMatchSyntax;
58083
70605
 
58084
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70606
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58085
70607
 
58086
70608
  CTree *sons[2]; // throw, expr
58087
70609
 
58088
70610
public:
58089
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
70611
  /** Constructor.
 
70612
   *  \param t The 'throw' keyword.
 
70613
   *  \param e The expression. */
 
70614
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
70615
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58090
70616
  static const char *NodeId ();
 
70617
  /** Get the name of the node. Can be compared with NodeId(). */
58091
70618
  const char *NodeName () const { return NodeId (); }
 
70619
  /** Get the number of sons. */
58092
70620
  int Sons () const { return CTree::Sons (sons, 2); }
 
70621
  /** Get the n-th son.
 
70622
   *  \param n The index of the son.
 
70623
   *  \return The n-th son or NULL. */
58093
70624
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
70625
  /** Replace a son.
 
70626
   *  \param old_son The son to replace.
 
70627
   *  \param new_son The new son. */
58094
70628
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58095
70629
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58096
70630
  }
 
70631
  /** Get the expression. */
58097
70632
  CTree *Expr () const { return sons[1]; }
58098
70633
   private:
58099
70634
  typedef CT_ThrowExpr CCExprResolveExpr;
58100
70635
 
58101
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70636
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58102
70637
 public :
58103
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70638
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58104
70639
  typedef CT_ThrowExpr CExprResolveExpr;
58105
70640
 
58106
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70641
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58107
70642
 public :
58108
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58109
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70643
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70644
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58110
70645
};
58111
70646
 
 
70647
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
70648
 *  Tree node representing an index expression. */
58112
70649
 
58113
 
#line 58114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70650
#line 70651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58114
70651
} // closed Puma
 
70652
class CCExprResolve;
 
70653
class CExprResolve;
58115
70654
class WinIfExists;
58116
70655
class WinImportHandler;
58117
70656
class WinMacros;
58118
 
class CMatchSyntax;
58119
 
class ExtGnu;
 
70657
class WinAsm;
 
70658
class WinDeclSpecs;
 
70659
class WinMemberExplSpec;
 
70660
class WinTypeKeywords;
 
70661
class WinFriend;
58120
70662
class ExtAC;
58121
70663
class ExtACBuilderCoupling;
58122
70664
class ExtACSyntaxCoupling;
58123
70665
class ExtACTree;
58124
70666
class ExtACKeywords;
58125
 
class WinAsm;
58126
 
class WinDeclSpecs;
58127
 
class WinMemberExplSpec;
58128
 
class WinTypeKeywords;
 
70667
class ExtGnu;
58129
70668
class PragmaOnceUnitState;
58130
70669
class PragmaOnce;
58131
 
class CCExprResolve;
58132
 
class CExprResolve;
58133
 
namespace Puma {
58134
 
 
58135
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58136
 
class CT_IndexExpr : public CT_Expression {
58137
 
#line 58138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70670
class CMatchSyntax;
 
70671
namespace Puma {
 
70672
 
 
70673
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70674
 
 
70675
#line 70676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70676
} // closed Puma
 
70677
 
 
70678
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70679
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70680
#include "CCExprResolveH.ah"
 
70681
#endif
 
70682
namespace Puma {
 
70683
 
 
70684
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70685
 
 
70686
#line 70687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70687
} // closed Puma
 
70688
 
 
70689
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70690
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70691
#include "CExprResolveH.ah"
 
70692
#endif
 
70693
namespace Puma {
 
70694
 
 
70695
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70696
class CT_IndexExpr : public CT_Call {
 
70697
#line 70698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70698
  friend class ::CCExprResolve;
 
70699
  friend class ::CExprResolve;
58138
70700
  friend class ::WinIfExists;
58139
70701
  friend class ::WinImportHandler;
58140
70702
  friend class ::WinMacros;
58141
 
  friend class ::CMatchSyntax;
58142
 
  friend class ::ExtGnu;
 
70703
  friend class ::WinAsm;
 
70704
  friend class ::WinDeclSpecs;
 
70705
  friend class ::WinMemberExplSpec;
 
70706
  friend class ::WinTypeKeywords;
 
70707
  friend class ::WinFriend;
58143
70708
  friend class ::ExtAC;
58144
70709
  friend class ::ExtACBuilderCoupling;
58145
70710
  friend class ::ExtACSyntaxCoupling;
58146
70711
  friend class ::ExtACTree;
58147
70712
  friend class ::ExtACKeywords;
58148
 
  friend class ::WinAsm;
58149
 
  friend class ::WinDeclSpecs;
58150
 
  friend class ::WinMemberExplSpec;
58151
 
  friend class ::WinTypeKeywords;
 
70713
  friend class ::ExtGnu;
58152
70714
  friend class ::PragmaOnceUnitState;
58153
70715
  friend class ::PragmaOnce;
58154
 
  friend class ::CCExprResolve;
58155
 
  friend class ::CExprResolve;
 
70716
  friend class ::CMatchSyntax;
58156
70717
 
58157
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70718
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58158
70719
 
58159
70720
  CTree *sons[4]; // expr, open, index, close
58160
70721
 
58161
70722
public:
 
70723
  /** Constructor.
 
70724
   *  \param e The expression on which to invoke the index operator.
 
70725
   *  \param o Left parenthesis of the index expression.
 
70726
   *  \param i The index expression. 
 
70727
   *  \param c Right parenthesis of the index expression. */
58162
70728
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
58163
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
70729
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
70730
    AddSon (sons[2], i); AddSon (sons[3], c);
58164
70731
  }
 
70732
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58165
70733
  static const char *NodeId ();
 
70734
  /** Get the name of the node. Can be compared with NodeId(). */
58166
70735
  const char *NodeName () const { return NodeId (); }
 
70736
  /** Get the number of sons. */
58167
70737
  int Sons () const { return 4; }
 
70738
  /** Get the n-th son.
 
70739
   *  \param n The index of the son.
 
70740
   *  \return The n-th son or NULL. */
58168
70741
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
70742
  /** Replace a son.
 
70743
   *  \param old_son The son to replace.
 
70744
   *  \param new_son The new son. */
58169
70745
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58170
70746
    CTree::ReplaceSon (sons, 4, old_son, new_son);
58171
70747
  }
58172
70748
   private:
58173
70749
  typedef CT_IndexExpr CCExprResolveExpr;
58174
70750
 
58175
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70751
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58176
70752
 public :
58177
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70753
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58178
70754
  typedef CT_IndexExpr CExprResolveExpr;
58179
70755
 
58180
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70756
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58181
70757
 public :
58182
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58183
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70758
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70759
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58184
70760
};
58185
70761
 
 
70762
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
70763
 *  Tree node representing a function call expression, e.g. f(i). */
58186
70764
 
58187
 
#line 58188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70765
#line 70766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58188
70766
} // closed Puma
 
70767
class CCExprResolve;
 
70768
class CExprResolve;
58189
70769
class WinIfExists;
58190
70770
class WinImportHandler;
58191
70771
class WinMacros;
58192
 
class CMatchSyntax;
58193
 
class ExtGnu;
 
70772
class WinAsm;
 
70773
class WinDeclSpecs;
 
70774
class WinMemberExplSpec;
 
70775
class WinTypeKeywords;
 
70776
class WinFriend;
58194
70777
class ExtAC;
58195
70778
class ExtACBuilderCoupling;
58196
70779
class ExtACSyntaxCoupling;
58197
70780
class ExtACTree;
58198
70781
class ExtACKeywords;
58199
 
class WinAsm;
58200
 
class WinDeclSpecs;
58201
 
class WinMemberExplSpec;
58202
 
class WinTypeKeywords;
 
70782
class ExtGnu;
58203
70783
class PragmaOnceUnitState;
58204
70784
class PragmaOnce;
58205
 
class CCExprResolve;
58206
 
class CExprResolve;
58207
 
namespace Puma {
58208
 
 
58209
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58210
 
class CT_CallExpr : public CT_Expression, public CSemObject {
58211
 
#line 58212 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70785
class CMatchSyntax;
 
70786
namespace Puma {
 
70787
 
 
70788
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70789
 
 
70790
#line 70791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70791
} // closed Puma
 
70792
 
 
70793
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70794
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70795
#include "CCExprResolveH.ah"
 
70796
#endif
 
70797
namespace Puma {
 
70798
 
 
70799
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70800
 
 
70801
#line 70802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70802
} // closed Puma
 
70803
 
 
70804
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70805
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70806
#include "CExprResolveH.ah"
 
70807
#endif
 
70808
namespace Puma {
 
70809
 
 
70810
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70811
class CT_CallExpr : public CT_Call {
 
70812
#line 70813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70813
  friend class ::CCExprResolve;
 
70814
  friend class ::CExprResolve;
58212
70815
  friend class ::WinIfExists;
58213
70816
  friend class ::WinImportHandler;
58214
70817
  friend class ::WinMacros;
58215
 
  friend class ::CMatchSyntax;
58216
 
  friend class ::ExtGnu;
 
70818
  friend class ::WinAsm;
 
70819
  friend class ::WinDeclSpecs;
 
70820
  friend class ::WinMemberExplSpec;
 
70821
  friend class ::WinTypeKeywords;
 
70822
  friend class ::WinFriend;
58217
70823
  friend class ::ExtAC;
58218
70824
  friend class ::ExtACBuilderCoupling;
58219
70825
  friend class ::ExtACSyntaxCoupling;
58220
70826
  friend class ::ExtACTree;
58221
70827
  friend class ::ExtACKeywords;
58222
 
  friend class ::WinAsm;
58223
 
  friend class ::WinDeclSpecs;
58224
 
  friend class ::WinMemberExplSpec;
58225
 
  friend class ::WinTypeKeywords;
 
70828
  friend class ::ExtGnu;
58226
70829
  friend class ::PragmaOnceUnitState;
58227
70830
  friend class ::PragmaOnce;
58228
 
  friend class ::CCExprResolve;
58229
 
  friend class ::CExprResolve;
 
70831
  friend class ::CMatchSyntax;
58230
70832
 
58231
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70833
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58232
70834
 
58233
70835
  CTree *sons[2]; // expr, args
58234
70836
 
58235
70837
public:
58236
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
58237
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
70838
  /** Constructor.
 
70839
   *  \param e The expression on which the call is invoked. */
 
70840
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
70841
  /** Constructor.
 
70842
   *  \param e The expression on which the call is invoked.
 
70843
   *  \param l The argument list of the call. */
 
70844
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
70845
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58238
70846
  static const char *NodeId ();
 
70847
  /** Get the name of the node. Can be compared with NodeId(). */
58239
70848
  const char *NodeName () const { return NodeId (); }
 
70849
  /** Get the number of sons. */
58240
70850
  int Sons () const { return CTree::Sons (sons, 2); }
 
70851
  /** Get the n-th son.
 
70852
   *  \param n The index of the son.
 
70853
   *  \return The n-th son or NULL. */
58241
70854
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
70855
  /** Replace a son.
 
70856
   *  \param old_son The son to replace.
 
70857
   *  \param new_son The new son. */
58242
70858
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58243
70859
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58244
70860
  }
58245
70861
  CTree *Expr () const { return sons[0]; }
58246
70862
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
58247
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
58248
70863
   private:
58249
70864
  typedef CT_CallExpr CCExprResolveExpr;
58250
70865
 
58251
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70866
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58252
70867
 public :
58253
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70868
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58254
70869
  typedef CT_CallExpr CExprResolveExpr;
58255
70870
 
58256
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70871
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58257
70872
 public :
58258
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58259
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70873
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70874
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58260
70875
};
58261
70876
 
 
70877
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
70878
 *  Tree node representing a cast expression, e.g. (int)a. */
58262
70879
 
58263
 
#line 58264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70880
#line 70881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58264
70881
} // closed Puma
 
70882
class CCExprResolve;
 
70883
class CExprResolve;
58265
70884
class WinIfExists;
58266
70885
class WinImportHandler;
58267
70886
class WinMacros;
58268
 
class CMatchSyntax;
58269
 
class ExtGnu;
 
70887
class WinAsm;
 
70888
class WinDeclSpecs;
 
70889
class WinMemberExplSpec;
 
70890
class WinTypeKeywords;
 
70891
class WinFriend;
58270
70892
class ExtAC;
58271
70893
class ExtACBuilderCoupling;
58272
70894
class ExtACSyntaxCoupling;
58273
70895
class ExtACTree;
58274
70896
class ExtACKeywords;
58275
 
class WinAsm;
58276
 
class WinDeclSpecs;
58277
 
class WinMemberExplSpec;
58278
 
class WinTypeKeywords;
 
70897
class ExtGnu;
58279
70898
class PragmaOnceUnitState;
58280
70899
class PragmaOnce;
58281
 
class CCExprResolve;
58282
 
class CExprResolve;
58283
 
namespace Puma {
58284
 
 
58285
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70900
class CMatchSyntax;
 
70901
namespace Puma {
 
70902
 
 
70903
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70904
 
 
70905
#line 70906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70906
} // closed Puma
 
70907
 
 
70908
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70909
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70910
#include "CCExprResolveH.ah"
 
70911
#endif
 
70912
namespace Puma {
 
70913
 
 
70914
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70915
 
 
70916
#line 70917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70917
} // closed Puma
 
70918
 
 
70919
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70920
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70921
#include "CExprResolveH.ah"
 
70922
#endif
 
70923
namespace Puma {
 
70924
 
 
70925
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58286
70926
class CT_CastExpr : public CT_Expression {
58287
 
#line 58288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70927
#line 70928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
70928
  friend class ::CCExprResolve;
 
70929
  friend class ::CExprResolve;
58288
70930
  friend class ::WinIfExists;
58289
70931
  friend class ::WinImportHandler;
58290
70932
  friend class ::WinMacros;
58291
 
  friend class ::CMatchSyntax;
58292
 
  friend class ::ExtGnu;
 
70933
  friend class ::WinAsm;
 
70934
  friend class ::WinDeclSpecs;
 
70935
  friend class ::WinMemberExplSpec;
 
70936
  friend class ::WinTypeKeywords;
 
70937
  friend class ::WinFriend;
58293
70938
  friend class ::ExtAC;
58294
70939
  friend class ::ExtACBuilderCoupling;
58295
70940
  friend class ::ExtACSyntaxCoupling;
58296
70941
  friend class ::ExtACTree;
58297
70942
  friend class ::ExtACKeywords;
58298
 
  friend class ::WinAsm;
58299
 
  friend class ::WinDeclSpecs;
58300
 
  friend class ::WinMemberExplSpec;
58301
 
  friend class ::WinTypeKeywords;
 
70943
  friend class ::ExtGnu;
58302
70944
  friend class ::PragmaOnceUnitState;
58303
70945
  friend class ::PragmaOnce;
58304
 
  friend class ::CCExprResolve;
58305
 
  friend class ::CExprResolve;
 
70946
  friend class ::CMatchSyntax;
58306
70947
 
58307
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70948
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58308
70949
 
58309
70950
  CTree *sons[4]; // open, type, close, expr
58310
70951
 
58311
70952
public:
 
70953
  /** Constructor.
 
70954
   *  \param o Left parenthesis of the type name.
 
70955
   *  \param t The type to cast to.
 
70956
   *  \param c Right parenthesis of the type name. 
 
70957
   *  \param e The expression to cast. */
58312
70958
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
58313
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
70959
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
70960
    AddSon (sons[2], c); AddSon (sons[3], e);
58314
70961
  }
 
70962
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58315
70963
  static const char *NodeId ();
 
70964
  /** Get the name of the node. Can be compared with NodeId(). */
58316
70965
  const char *NodeName () const { return NodeId (); }
 
70966
  /** Get the number of sons. */
58317
70967
  int Sons () const { return 4; }
 
70968
  /** Get the n-th son.
 
70969
   *  \param n The index of the son.
 
70970
   *  \return The n-th son or NULL. */
58318
70971
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
70972
  /** Replace a son.
 
70973
   *  \param old_son The son to replace.
 
70974
   *  \param new_son The new son. */
58319
70975
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58320
70976
    CTree::ReplaceSon (sons, 4, old_son, new_son);
58321
70977
  }
 
70978
  /** Get the casted expression. */
58322
70979
  CTree *Expr () const { return sons[3]; }
 
70980
  /** Get the type to cast to. */
58323
70981
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
58324
70982
   private:
58325
70983
  typedef CT_CastExpr CCExprResolveExpr;
58326
70984
 
58327
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70985
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58328
70986
 public :
58329
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70987
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58330
70988
  typedef CT_CastExpr CExprResolveExpr;
58331
70989
 
58332
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70990
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58333
70991
 public :
58334
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58335
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70992
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70993
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58336
70994
};
58337
70995
 
 
70996
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
70997
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
58338
70998
 
58339
 
#line 58340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
70999
#line 71000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58340
71000
} // closed Puma
 
71001
class CCExprResolve;
 
71002
class CExprResolve;
58341
71003
class WinIfExists;
58342
71004
class WinImportHandler;
58343
71005
class WinMacros;
58344
 
class CMatchSyntax;
58345
 
class ExtGnu;
 
71006
class WinAsm;
 
71007
class WinDeclSpecs;
 
71008
class WinMemberExplSpec;
 
71009
class WinTypeKeywords;
 
71010
class WinFriend;
58346
71011
class ExtAC;
58347
71012
class ExtACBuilderCoupling;
58348
71013
class ExtACSyntaxCoupling;
58349
71014
class ExtACTree;
58350
71015
class ExtACKeywords;
58351
 
class WinAsm;
58352
 
class WinDeclSpecs;
58353
 
class WinMemberExplSpec;
58354
 
class WinTypeKeywords;
 
71016
class ExtGnu;
58355
71017
class PragmaOnceUnitState;
58356
71018
class PragmaOnce;
58357
 
class CCExprResolve;
58358
 
class CExprResolve;
58359
 
namespace Puma {
58360
 
 
58361
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71019
class CMatchSyntax;
 
71020
namespace Puma {
 
71021
 
 
71022
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71023
 
 
71024
#line 71025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71025
} // closed Puma
 
71026
 
 
71027
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71028
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71029
#include "CCExprResolveH.ah"
 
71030
#endif
 
71031
namespace Puma {
 
71032
 
 
71033
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71034
 
 
71035
#line 71036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71036
} // closed Puma
 
71037
 
 
71038
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71039
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71040
#include "CExprResolveH.ah"
 
71041
#endif
 
71042
namespace Puma {
 
71043
 
 
71044
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58362
71045
class CT_StaticCast : public CT_Expression {
58363
 
#line 58364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71046
#line 71047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71047
  friend class ::CCExprResolve;
 
71048
  friend class ::CExprResolve;
58364
71049
  friend class ::WinIfExists;
58365
71050
  friend class ::WinImportHandler;
58366
71051
  friend class ::WinMacros;
58367
 
  friend class ::CMatchSyntax;
58368
 
  friend class ::ExtGnu;
 
71052
  friend class ::WinAsm;
 
71053
  friend class ::WinDeclSpecs;
 
71054
  friend class ::WinMemberExplSpec;
 
71055
  friend class ::WinTypeKeywords;
 
71056
  friend class ::WinFriend;
58369
71057
  friend class ::ExtAC;
58370
71058
  friend class ::ExtACBuilderCoupling;
58371
71059
  friend class ::ExtACSyntaxCoupling;
58372
71060
  friend class ::ExtACTree;
58373
71061
  friend class ::ExtACKeywords;
58374
 
  friend class ::WinAsm;
58375
 
  friend class ::WinDeclSpecs;
58376
 
  friend class ::WinMemberExplSpec;
58377
 
  friend class ::WinTypeKeywords;
 
71062
  friend class ::ExtGnu;
58378
71063
  friend class ::PragmaOnceUnitState;
58379
71064
  friend class ::PragmaOnce;
58380
 
  friend class ::CCExprResolve;
58381
 
  friend class ::CExprResolve;
 
71065
  friend class ::CMatchSyntax;
58382
71066
 
58383
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71067
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58384
71068
 
58385
71069
  CTree *sons[5]; // cast, open, type, close, expr
58386
71070
 
58387
71071
public:
 
71072
  /** Constructor.
 
71073
   *  \param cst The cast operator, i.e. 'static_cast'.
 
71074
   *  \param o Left arrow bracket of the type name.
 
71075
   *  \param t The type to cast to.
 
71076
   *  \param c Right array bracket of the type name.
 
71077
   *  \param e The expression to cast. */
58388
71078
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
58389
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
71079
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
71080
    AddSon (sons[3], c); AddSon (sons[4], e);
58390
71081
  }
 
71082
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58391
71083
  static const char *NodeId ();
 
71084
  /** Get the name of the node. Can be compared with NodeId(). */
58392
71085
  const char *NodeName () const { return NodeId (); }
 
71086
  /** Get the number of sons. */
58393
71087
  int Sons () const { return 5; }
 
71088
  /** Get the n-th son.
 
71089
   *  \param n The index of the son.
 
71090
   *  \return The n-th son or NULL. */
58394
71091
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
71092
  /** Replace a son.
 
71093
   *  \param old_son The son to replace.
 
71094
   *  \param new_son The new son. */
58395
71095
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58396
71096
    CTree::ReplaceSon (sons, 5, old_son, new_son);
58397
71097
  }
 
71098
  /** Get the casted expression. */
58398
71099
  CTree *Expr () const { return sons[4]; }
 
71100
  /** Get the type to cast to. */
58399
71101
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
58400
71102
   private:
58401
71103
  typedef CT_StaticCast CCExprResolveExpr;
58402
71104
 
58403
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71105
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58404
71106
 public :
58405
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71107
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58406
71108
  typedef CT_StaticCast CExprResolveExpr;
58407
71109
 
58408
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71110
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58409
71111
 public :
58410
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58411
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71112
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71113
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58412
71114
};
58413
71115
 
 
71116
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
71117
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
58414
71118
 
58415
 
#line 58416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71119
#line 71120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58416
71120
} // closed Puma
 
71121
class CCExprResolve;
 
71122
class CExprResolve;
58417
71123
class WinIfExists;
58418
71124
class WinImportHandler;
58419
71125
class WinMacros;
58420
 
class CMatchSyntax;
58421
 
class ExtGnu;
 
71126
class WinAsm;
 
71127
class WinDeclSpecs;
 
71128
class WinMemberExplSpec;
 
71129
class WinTypeKeywords;
 
71130
class WinFriend;
58422
71131
class ExtAC;
58423
71132
class ExtACBuilderCoupling;
58424
71133
class ExtACSyntaxCoupling;
58425
71134
class ExtACTree;
58426
71135
class ExtACKeywords;
58427
 
class WinAsm;
58428
 
class WinDeclSpecs;
58429
 
class WinMemberExplSpec;
58430
 
class WinTypeKeywords;
 
71136
class ExtGnu;
58431
71137
class PragmaOnceUnitState;
58432
71138
class PragmaOnce;
58433
 
class CCExprResolve;
58434
 
class CExprResolve;
58435
 
namespace Puma {
58436
 
 
58437
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71139
class CMatchSyntax;
 
71140
namespace Puma {
 
71141
 
 
71142
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71143
 
 
71144
#line 71145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71145
} // closed Puma
 
71146
 
 
71147
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71148
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71149
#include "CCExprResolveH.ah"
 
71150
#endif
 
71151
namespace Puma {
 
71152
 
 
71153
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71154
 
 
71155
#line 71156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71156
} // closed Puma
 
71157
 
 
71158
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71159
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71160
#include "CExprResolveH.ah"
 
71161
#endif
 
71162
namespace Puma {
 
71163
 
 
71164
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58438
71165
class CT_ConstCast : public CT_StaticCast {
58439
 
#line 58440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71166
#line 71167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71167
  friend class ::CCExprResolve;
 
71168
  friend class ::CExprResolve;
58440
71169
  friend class ::WinIfExists;
58441
71170
  friend class ::WinImportHandler;
58442
71171
  friend class ::WinMacros;
58443
 
  friend class ::CMatchSyntax;
58444
 
  friend class ::ExtGnu;
 
71172
  friend class ::WinAsm;
 
71173
  friend class ::WinDeclSpecs;
 
71174
  friend class ::WinMemberExplSpec;
 
71175
  friend class ::WinTypeKeywords;
 
71176
  friend class ::WinFriend;
58445
71177
  friend class ::ExtAC;
58446
71178
  friend class ::ExtACBuilderCoupling;
58447
71179
  friend class ::ExtACSyntaxCoupling;
58448
71180
  friend class ::ExtACTree;
58449
71181
  friend class ::ExtACKeywords;
58450
 
  friend class ::WinAsm;
58451
 
  friend class ::WinDeclSpecs;
58452
 
  friend class ::WinMemberExplSpec;
58453
 
  friend class ::WinTypeKeywords;
 
71182
  friend class ::ExtGnu;
58454
71183
  friend class ::PragmaOnceUnitState;
58455
71184
  friend class ::PragmaOnce;
58456
 
  friend class ::CCExprResolve;
58457
 
  friend class ::CExprResolve;
 
71185
  friend class ::CMatchSyntax;
58458
71186
 
58459
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71187
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58460
71188
 
58461
71189
public:
 
71190
  /** Constructor.
 
71191
   *  \param cst The cast operator, i.e. 'const_cast'.
 
71192
   *  \param o Left arrow bracket of the type name.
 
71193
   *  \param t The type to cast to.
 
71194
   *  \param c Right array bracket of the type name.
 
71195
   *  \param e The expression to cast. */
58462
71196
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
58463
71197
    CT_StaticCast (cst, o, t, c, e) {}
 
71198
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58464
71199
  static const char *NodeId ();
 
71200
  /** Get the name of the node. Can be compared with NodeId(). */
58465
71201
  const char *NodeName () const { return NodeId (); }
58466
71202
   private:
58467
71203
  typedef CT_ConstCast CCExprResolveExpr;
58468
71204
 
58469
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71205
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58470
71206
 public :
58471
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71207
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58472
71208
  typedef CT_ConstCast CExprResolveExpr;
58473
71209
 
58474
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71210
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58475
71211
 public :
58476
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58477
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71212
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71213
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58478
71214
};
58479
71215
 
 
71216
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
71217
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
58480
71218
 
58481
 
#line 58482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71219
#line 71220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58482
71220
} // closed Puma
 
71221
class CCExprResolve;
 
71222
class CExprResolve;
58483
71223
class WinIfExists;
58484
71224
class WinImportHandler;
58485
71225
class WinMacros;
58486
 
class CMatchSyntax;
58487
 
class ExtGnu;
 
71226
class WinAsm;
 
71227
class WinDeclSpecs;
 
71228
class WinMemberExplSpec;
 
71229
class WinTypeKeywords;
 
71230
class WinFriend;
58488
71231
class ExtAC;
58489
71232
class ExtACBuilderCoupling;
58490
71233
class ExtACSyntaxCoupling;
58491
71234
class ExtACTree;
58492
71235
class ExtACKeywords;
58493
 
class WinAsm;
58494
 
class WinDeclSpecs;
58495
 
class WinMemberExplSpec;
58496
 
class WinTypeKeywords;
 
71236
class ExtGnu;
58497
71237
class PragmaOnceUnitState;
58498
71238
class PragmaOnce;
58499
 
class CCExprResolve;
58500
 
class CExprResolve;
58501
 
namespace Puma {
58502
 
 
58503
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71239
class CMatchSyntax;
 
71240
namespace Puma {
 
71241
 
 
71242
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71243
 
 
71244
#line 71245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71245
} // closed Puma
 
71246
 
 
71247
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71248
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71249
#include "CCExprResolveH.ah"
 
71250
#endif
 
71251
namespace Puma {
 
71252
 
 
71253
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71254
 
 
71255
#line 71256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71256
} // closed Puma
 
71257
 
 
71258
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71259
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71260
#include "CExprResolveH.ah"
 
71261
#endif
 
71262
namespace Puma {
 
71263
 
 
71264
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58504
71265
class CT_ReintCast : public CT_StaticCast {
58505
 
#line 58506 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71266
#line 71267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71267
  friend class ::CCExprResolve;
 
71268
  friend class ::CExprResolve;
58506
71269
  friend class ::WinIfExists;
58507
71270
  friend class ::WinImportHandler;
58508
71271
  friend class ::WinMacros;
58509
 
  friend class ::CMatchSyntax;
58510
 
  friend class ::ExtGnu;
 
71272
  friend class ::WinAsm;
 
71273
  friend class ::WinDeclSpecs;
 
71274
  friend class ::WinMemberExplSpec;
 
71275
  friend class ::WinTypeKeywords;
 
71276
  friend class ::WinFriend;
58511
71277
  friend class ::ExtAC;
58512
71278
  friend class ::ExtACBuilderCoupling;
58513
71279
  friend class ::ExtACSyntaxCoupling;
58514
71280
  friend class ::ExtACTree;
58515
71281
  friend class ::ExtACKeywords;
58516
 
  friend class ::WinAsm;
58517
 
  friend class ::WinDeclSpecs;
58518
 
  friend class ::WinMemberExplSpec;
58519
 
  friend class ::WinTypeKeywords;
 
71282
  friend class ::ExtGnu;
58520
71283
  friend class ::PragmaOnceUnitState;
58521
71284
  friend class ::PragmaOnce;
58522
 
  friend class ::CCExprResolve;
58523
 
  friend class ::CExprResolve;
 
71285
  friend class ::CMatchSyntax;
58524
71286
 
58525
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71287
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58526
71288
 
58527
71289
public:
 
71290
  /** Constructor.
 
71291
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
71292
   *  \param o Left arrow bracket of the type name.
 
71293
   *  \param t The type to cast to.
 
71294
   *  \param c Right array bracket of the type name.
 
71295
   *  \param e The expression to cast. */
58528
71296
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
58529
71297
    CT_StaticCast (cst, o, t, c, e) {}
 
71298
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58530
71299
  static const char *NodeId ();
 
71300
  /** Get the name of the node. Can be compared with NodeId(). */
58531
71301
  const char *NodeName () const { return NodeId (); }
58532
71302
   private:
58533
71303
  typedef CT_ReintCast CCExprResolveExpr;
58534
71304
 
58535
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71305
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58536
71306
 public :
58537
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71307
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58538
71308
  typedef CT_ReintCast CExprResolveExpr;
58539
71309
 
58540
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71310
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58541
71311
 public :
58542
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58543
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71312
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71313
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58544
71314
};
58545
71315
 
 
71316
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
71317
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
58546
71318
 
58547
 
#line 58548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71319
#line 71320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58548
71320
} // closed Puma
 
71321
class CCExprResolve;
 
71322
class CExprResolve;
58549
71323
class WinIfExists;
58550
71324
class WinImportHandler;
58551
71325
class WinMacros;
58552
 
class CMatchSyntax;
58553
 
class ExtGnu;
 
71326
class WinAsm;
 
71327
class WinDeclSpecs;
 
71328
class WinMemberExplSpec;
 
71329
class WinTypeKeywords;
 
71330
class WinFriend;
58554
71331
class ExtAC;
58555
71332
class ExtACBuilderCoupling;
58556
71333
class ExtACSyntaxCoupling;
58557
71334
class ExtACTree;
58558
71335
class ExtACKeywords;
58559
 
class WinAsm;
58560
 
class WinDeclSpecs;
58561
 
class WinMemberExplSpec;
58562
 
class WinTypeKeywords;
 
71336
class ExtGnu;
58563
71337
class PragmaOnceUnitState;
58564
71338
class PragmaOnce;
58565
 
class CCExprResolve;
58566
 
class CExprResolve;
58567
 
namespace Puma {
58568
 
 
58569
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71339
class CMatchSyntax;
 
71340
namespace Puma {
 
71341
 
 
71342
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71343
 
 
71344
#line 71345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71345
} // closed Puma
 
71346
 
 
71347
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71348
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71349
#include "CCExprResolveH.ah"
 
71350
#endif
 
71351
namespace Puma {
 
71352
 
 
71353
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71354
 
 
71355
#line 71356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71356
} // closed Puma
 
71357
 
 
71358
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71359
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71360
#include "CExprResolveH.ah"
 
71361
#endif
 
71362
namespace Puma {
 
71363
 
 
71364
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58570
71365
class CT_DynamicCast : public CT_StaticCast {
58571
 
#line 58572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71366
#line 71367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71367
  friend class ::CCExprResolve;
 
71368
  friend class ::CExprResolve;
58572
71369
  friend class ::WinIfExists;
58573
71370
  friend class ::WinImportHandler;
58574
71371
  friend class ::WinMacros;
58575
 
  friend class ::CMatchSyntax;
58576
 
  friend class ::ExtGnu;
 
71372
  friend class ::WinAsm;
 
71373
  friend class ::WinDeclSpecs;
 
71374
  friend class ::WinMemberExplSpec;
 
71375
  friend class ::WinTypeKeywords;
 
71376
  friend class ::WinFriend;
58577
71377
  friend class ::ExtAC;
58578
71378
  friend class ::ExtACBuilderCoupling;
58579
71379
  friend class ::ExtACSyntaxCoupling;
58580
71380
  friend class ::ExtACTree;
58581
71381
  friend class ::ExtACKeywords;
58582
 
  friend class ::WinAsm;
58583
 
  friend class ::WinDeclSpecs;
58584
 
  friend class ::WinMemberExplSpec;
58585
 
  friend class ::WinTypeKeywords;
 
71382
  friend class ::ExtGnu;
58586
71383
  friend class ::PragmaOnceUnitState;
58587
71384
  friend class ::PragmaOnce;
58588
 
  friend class ::CCExprResolve;
58589
 
  friend class ::CExprResolve;
 
71385
  friend class ::CMatchSyntax;
58590
71386
 
58591
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71387
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58592
71388
 
58593
71389
public:
 
71390
  /** Constructor.
 
71391
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
71392
   *  \param o Left arrow bracket of the type name.
 
71393
   *  \param t The type to cast to.
 
71394
   *  \param c Right array bracket of the type name.
 
71395
   *  \param e The expression to cast. */
58594
71396
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
58595
71397
    CT_StaticCast (cst, o, t, c, e) {}
 
71398
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58596
71399
  static const char *NodeId ();
 
71400
  /** Get the name of the node. Can be compared with NodeId(). */
58597
71401
  const char *NodeName () const { return NodeId (); }
58598
71402
   private:
58599
71403
  typedef CT_DynamicCast CCExprResolveExpr;
58600
71404
 
58601
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71405
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58602
71406
 public :
58603
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71407
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58604
71408
  typedef CT_DynamicCast CExprResolveExpr;
58605
71409
 
58606
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71410
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58607
71411
 public :
58608
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58609
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71412
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71413
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58610
71414
};
58611
71415
 
 
71416
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
71417
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
71418
 *  where 1.2 is implicitely casted from float to int. */
58612
71419
 
58613
 
#line 58614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71420
#line 71421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58614
71421
} // closed Puma
 
71422
class CCExprResolve;
 
71423
class CExprResolve;
58615
71424
class WinIfExists;
58616
71425
class WinImportHandler;
58617
71426
class WinMacros;
58618
 
class CMatchSyntax;
58619
 
class ExtGnu;
 
71427
class WinAsm;
 
71428
class WinDeclSpecs;
 
71429
class WinMemberExplSpec;
 
71430
class WinTypeKeywords;
 
71431
class WinFriend;
58620
71432
class ExtAC;
58621
71433
class ExtACBuilderCoupling;
58622
71434
class ExtACSyntaxCoupling;
58623
71435
class ExtACTree;
58624
71436
class ExtACKeywords;
58625
 
class WinAsm;
58626
 
class WinDeclSpecs;
58627
 
class WinMemberExplSpec;
58628
 
class WinTypeKeywords;
 
71437
class ExtGnu;
58629
71438
class PragmaOnceUnitState;
58630
71439
class PragmaOnce;
58631
 
class CCExprResolve;
58632
 
class CExprResolve;
58633
 
namespace Puma {
58634
 
 
58635
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71440
class CMatchSyntax;
 
71441
namespace Puma {
 
71442
 
 
71443
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71444
 
 
71445
#line 71446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71446
} // closed Puma
 
71447
 
 
71448
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71449
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71450
#include "CCExprResolveH.ah"
 
71451
#endif
 
71452
namespace Puma {
 
71453
 
 
71454
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71455
 
 
71456
#line 71457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71457
} // closed Puma
 
71458
 
 
71459
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71460
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71461
#include "CExprResolveH.ah"
 
71462
#endif
 
71463
namespace Puma {
 
71464
 
 
71465
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58636
71466
class CT_ImplicitCast : public CT_Expression {
58637
 
#line 58638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71467
#line 71468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71468
  friend class ::CCExprResolve;
 
71469
  friend class ::CExprResolve;
58638
71470
  friend class ::WinIfExists;
58639
71471
  friend class ::WinImportHandler;
58640
71472
  friend class ::WinMacros;
58641
 
  friend class ::CMatchSyntax;
58642
 
  friend class ::ExtGnu;
 
71473
  friend class ::WinAsm;
 
71474
  friend class ::WinDeclSpecs;
 
71475
  friend class ::WinMemberExplSpec;
 
71476
  friend class ::WinTypeKeywords;
 
71477
  friend class ::WinFriend;
58643
71478
  friend class ::ExtAC;
58644
71479
  friend class ::ExtACBuilderCoupling;
58645
71480
  friend class ::ExtACSyntaxCoupling;
58646
71481
  friend class ::ExtACTree;
58647
71482
  friend class ::ExtACKeywords;
58648
 
  friend class ::WinAsm;
58649
 
  friend class ::WinDeclSpecs;
58650
 
  friend class ::WinMemberExplSpec;
58651
 
  friend class ::WinTypeKeywords;
 
71483
  friend class ::ExtGnu;
58652
71484
  friend class ::PragmaOnceUnitState;
58653
71485
  friend class ::PragmaOnce;
58654
 
  friend class ::CCExprResolve;
58655
 
  friend class ::CExprResolve;
 
71486
  friend class ::CMatchSyntax;
58656
71487
 
58657
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71488
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58658
71489
 
58659
71490
  CTree *_expr; // casted expression
58660
71491
 
58661
71492
public:
58662
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
71493
  /** Constructor.
 
71494
   *  \param e The expression that is implicitely casted. */
 
71495
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
71496
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58663
71497
  static const char *NodeId ();
 
71498
  /** Get the name of the node. Can be compared with NodeId(). */
58664
71499
  const char *NodeName () const { return NodeId (); }
 
71500
  /** Get the number of sons. */
58665
71501
  int Sons () const { return 1; }
 
71502
  /** Get the n-th son.
 
71503
   *  \param n The index of the son.
 
71504
   *  \return The n-th son or NULL. */
58666
71505
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
71506
  /** Get the casted expression. */
58667
71507
  CTree *Expr () const { return _expr; }
 
71508
  /** Replace a son.
 
71509
   *  \param old_son The son to replace.
 
71510
   *  \param new_son The new son. */
58668
71511
  void ReplaceSon (CTree *old_son, CTree *new_son) 
58669
 
   { if (old_son == _expr) _expr = new_son; }
 
71512
   { CTree::ReplaceSon (_expr, old_son, new_son); }
58670
71513
   private:
58671
71514
  typedef CT_ImplicitCast CCExprResolveExpr;
58672
71515
 
58673
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71516
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58674
71517
 public :
58675
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71518
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58676
71519
  typedef CT_ImplicitCast CExprResolveExpr;
58677
71520
 
58678
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71521
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58679
71522
 public :
58680
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58681
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71523
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71524
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58682
71525
};
58683
71526
 
 
71527
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
71528
 *  Tree node representing a typeid expression, e.g. typeid(X). */
58684
71529
 
58685
 
#line 58686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71530
#line 71531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58686
71531
} // closed Puma
 
71532
class CCExprResolve;
 
71533
class CExprResolve;
58687
71534
class WinIfExists;
58688
71535
class WinImportHandler;
58689
71536
class WinMacros;
58690
 
class CMatchSyntax;
58691
 
class ExtGnu;
 
71537
class WinAsm;
 
71538
class WinDeclSpecs;
 
71539
class WinMemberExplSpec;
 
71540
class WinTypeKeywords;
 
71541
class WinFriend;
58692
71542
class ExtAC;
58693
71543
class ExtACBuilderCoupling;
58694
71544
class ExtACSyntaxCoupling;
58695
71545
class ExtACTree;
58696
71546
class ExtACKeywords;
58697
 
class WinAsm;
58698
 
class WinDeclSpecs;
58699
 
class WinMemberExplSpec;
58700
 
class WinTypeKeywords;
 
71547
class ExtGnu;
58701
71548
class PragmaOnceUnitState;
58702
71549
class PragmaOnce;
58703
 
class CCExprResolve;
58704
 
class CExprResolve;
58705
 
namespace Puma {
58706
 
 
58707
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71550
class CMatchSyntax;
 
71551
namespace Puma {
 
71552
 
 
71553
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71554
 
 
71555
#line 71556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71556
} // closed Puma
 
71557
 
 
71558
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71559
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71560
#include "CCExprResolveH.ah"
 
71561
#endif
 
71562
namespace Puma {
 
71563
 
 
71564
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71565
 
 
71566
#line 71567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71567
} // closed Puma
 
71568
 
 
71569
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71570
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71571
#include "CExprResolveH.ah"
 
71572
#endif
 
71573
namespace Puma {
 
71574
 
 
71575
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58708
71576
class CT_TypeidExpr : public CT_Expression {
58709
 
#line 58710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71577
#line 71578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71578
  friend class ::CCExprResolve;
 
71579
  friend class ::CExprResolve;
58710
71580
  friend class ::WinIfExists;
58711
71581
  friend class ::WinImportHandler;
58712
71582
  friend class ::WinMacros;
58713
 
  friend class ::CMatchSyntax;
58714
 
  friend class ::ExtGnu;
 
71583
  friend class ::WinAsm;
 
71584
  friend class ::WinDeclSpecs;
 
71585
  friend class ::WinMemberExplSpec;
 
71586
  friend class ::WinTypeKeywords;
 
71587
  friend class ::WinFriend;
58715
71588
  friend class ::ExtAC;
58716
71589
  friend class ::ExtACBuilderCoupling;
58717
71590
  friend class ::ExtACSyntaxCoupling;
58718
71591
  friend class ::ExtACTree;
58719
71592
  friend class ::ExtACKeywords;
58720
 
  friend class ::WinAsm;
58721
 
  friend class ::WinDeclSpecs;
58722
 
  friend class ::WinMemberExplSpec;
58723
 
  friend class ::WinTypeKeywords;
 
71593
  friend class ::ExtGnu;
58724
71594
  friend class ::PragmaOnceUnitState;
58725
71595
  friend class ::PragmaOnce;
58726
 
  friend class ::CCExprResolve;
58727
 
  friend class ::CExprResolve;
 
71596
  friend class ::CMatchSyntax;
58728
71597
 
58729
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71598
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58730
71599
 
58731
71600
  CTree *sons[4]; // typeid, open, type_id/expr, close
58732
71601
 
58733
71602
public:
 
71603
  /** Constructor.
 
71604
   *  \param tid The 'typeid' operator.
 
71605
   *  \param o The left parenthesis of the type name or expression.
 
71606
   *  \param e The expression or type name for which to get the type identifier.
 
71607
   *  \param c The right parenthesis of the type name or expression. */
58734
71608
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
58735
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
71609
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
71610
    AddSon (sons[2], e); AddSon (sons[3], c);
58736
71611
  }
 
71612
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58737
71613
  static const char *NodeId ();
 
71614
  /** Get the name of the node. Can be compared with NodeId(). */
58738
71615
  const char *NodeName () const { return NodeId (); }
 
71616
  /** Get the number of sons. */
58739
71617
  int Sons () const { return 4; }
 
71618
  /** Get the n-th son.
 
71619
   *  \param n The index of the son.
 
71620
   *  \return The n-th son or NULL. */
58740
71621
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
71622
  /** Replace a son.
 
71623
   *  \param old_son The son to replace.
 
71624
   *  \param new_son The new son. */
58741
71625
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58742
71626
    CTree::ReplaceSon (sons, 4, old_son, new_son);
58743
71627
  }
 
71628
  /** Get the typeid argument, i.e. the expression or type name for
 
71629
   *  which to get the type identifier. */
58744
71630
  CTree *Arg () const { return sons[2]; }
58745
71631
   private:
58746
71632
  typedef CT_TypeidExpr CCExprResolveExpr;
58747
71633
 
58748
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71634
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58749
71635
 public :
58750
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71636
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58751
71637
  typedef CT_TypeidExpr CExprResolveExpr;
58752
71638
 
58753
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71639
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58754
71640
 public :
58755
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58756
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71641
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71642
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58757
71643
};
58758
71644
 
 
71645
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
71646
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
58759
71647
 
58760
 
#line 58761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71648
#line 71649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58761
71649
} // closed Puma
 
71650
class CCExprResolve;
 
71651
class CExprResolve;
58762
71652
class WinIfExists;
58763
71653
class WinImportHandler;
58764
71654
class WinMacros;
58765
 
class CMatchSyntax;
58766
 
class ExtGnu;
 
71655
class WinAsm;
 
71656
class WinDeclSpecs;
 
71657
class WinMemberExplSpec;
 
71658
class WinTypeKeywords;
 
71659
class WinFriend;
58767
71660
class ExtAC;
58768
71661
class ExtACBuilderCoupling;
58769
71662
class ExtACSyntaxCoupling;
58770
71663
class ExtACTree;
58771
71664
class ExtACKeywords;
58772
 
class WinAsm;
58773
 
class WinDeclSpecs;
58774
 
class WinMemberExplSpec;
58775
 
class WinTypeKeywords;
 
71665
class ExtGnu;
58776
71666
class PragmaOnceUnitState;
58777
71667
class PragmaOnce;
58778
 
class CCExprResolve;
58779
 
class CExprResolve;
58780
 
namespace Puma {
58781
 
 
58782
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71668
class CMatchSyntax;
 
71669
namespace Puma {
 
71670
 
 
71671
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71672
 
 
71673
#line 71674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71674
} // closed Puma
 
71675
 
 
71676
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71677
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71678
#include "CCExprResolveH.ah"
 
71679
#endif
 
71680
namespace Puma {
 
71681
 
 
71682
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71683
 
 
71684
#line 71685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71685
} // closed Puma
 
71686
 
 
71687
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71688
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71689
#include "CExprResolveH.ah"
 
71690
#endif
 
71691
namespace Puma {
 
71692
 
 
71693
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58783
71694
class CT_SizeofExpr : public CT_Expression {
58784
 
#line 58785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71695
#line 71696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71696
  friend class ::CCExprResolve;
 
71697
  friend class ::CExprResolve;
58785
71698
  friend class ::WinIfExists;
58786
71699
  friend class ::WinImportHandler;
58787
71700
  friend class ::WinMacros;
58788
 
  friend class ::CMatchSyntax;
58789
 
  friend class ::ExtGnu;
 
71701
  friend class ::WinAsm;
 
71702
  friend class ::WinDeclSpecs;
 
71703
  friend class ::WinMemberExplSpec;
 
71704
  friend class ::WinTypeKeywords;
 
71705
  friend class ::WinFriend;
58790
71706
  friend class ::ExtAC;
58791
71707
  friend class ::ExtACBuilderCoupling;
58792
71708
  friend class ::ExtACSyntaxCoupling;
58793
71709
  friend class ::ExtACTree;
58794
71710
  friend class ::ExtACKeywords;
58795
 
  friend class ::WinAsm;
58796
 
  friend class ::WinDeclSpecs;
58797
 
  friend class ::WinMemberExplSpec;
58798
 
  friend class ::WinTypeKeywords;
 
71711
  friend class ::ExtGnu;
58799
71712
  friend class ::PragmaOnceUnitState;
58800
71713
  friend class ::PragmaOnce;
58801
 
  friend class ::CCExprResolve;
58802
 
  friend class ::CExprResolve;
 
71714
  friend class ::CMatchSyntax;
58803
71715
 
58804
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71716
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58805
71717
 
58806
71718
  CTree *sons[5]; // key, open, type, close, expr
58807
71719
 
58808
71720
public:
 
71721
  /** Constructor.
 
71722
   *  \param k The 'sizeof' keyword.
 
71723
   *  \param o Left parenthesis around the type name.
 
71724
   *  \param t The type from which to get the size.
 
71725
   *  \param c Right parenthesis around the type name. */
58809
71726
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
58810
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
71727
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
71728
    AddSon (sons[3], c); AddSon (sons[4], 0);
58811
71729
  }
 
71730
  /** Constructor.
 
71731
   *  \param k The 'sizeof' keyword.
 
71732
   *  \param e The expression from which to get the size. */
58812
71733
  CT_SizeofExpr (CTree *k, CTree *e) {
58813
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
71734
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
71735
    AddSon (sons[3], 0); AddSon (sons[4], e);
58814
71736
  }
 
71737
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58815
71738
  static const char *NodeId ();
 
71739
  /** Get the name of the node. Can be compared with NodeId(). */
58816
71740
  const char *NodeName () const { return NodeId (); }
 
71741
  /** Get the number of sons. */
58817
71742
  int Sons () const { return CTree::Sons (sons, 5); }
 
71743
  /** Get the n-th son.
 
71744
   *  \param n The index of the son.
 
71745
   *  \return The n-th son or NULL. */
58818
71746
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
71747
  /** Replace a son.
 
71748
   *  \param old_son The son to replace.
 
71749
   *  \param new_son The new son. */
58819
71750
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58820
71751
    CTree::ReplaceSon (sons, 5, old_son, new_son);
58821
71752
  }
 
71753
  /** Get the expression. */
58822
71754
  CTree *Expr () const { return sons[4]; }
 
71755
  /** Get the type name. */
58823
71756
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
58824
71757
   private:
58825
71758
  typedef CT_SizeofExpr CCExprResolveExpr;
58826
71759
 
58827
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71760
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58828
71761
 public :
58829
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71762
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58830
71763
  typedef CT_SizeofExpr CExprResolveExpr;
58831
71764
 
58832
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71765
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58833
71766
 public :
58834
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58835
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71767
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71768
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58836
71769
};
58837
71770
 
 
71771
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
71772
 *  Tree node representing an index designator, i.e. [1]. */
58838
71773
 
58839
 
#line 58840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71774
#line 71775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58840
71775
} // closed Puma
 
71776
class CCExprResolve;
 
71777
class CExprResolve;
58841
71778
class WinIfExists;
58842
71779
class WinImportHandler;
58843
71780
class WinMacros;
58844
 
class CMatchSyntax;
58845
 
class ExtGnu;
 
71781
class WinAsm;
 
71782
class WinDeclSpecs;
 
71783
class WinMemberExplSpec;
 
71784
class WinTypeKeywords;
 
71785
class WinFriend;
58846
71786
class ExtAC;
58847
71787
class ExtACBuilderCoupling;
58848
71788
class ExtACSyntaxCoupling;
58849
71789
class ExtACTree;
58850
71790
class ExtACKeywords;
58851
 
class WinAsm;
58852
 
class WinDeclSpecs;
58853
 
class WinMemberExplSpec;
58854
 
class WinTypeKeywords;
 
71791
class ExtGnu;
58855
71792
class PragmaOnceUnitState;
58856
71793
class PragmaOnce;
58857
 
class CCExprResolve;
58858
 
class CExprResolve;
58859
 
namespace Puma {
58860
 
 
58861
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71794
class CMatchSyntax;
 
71795
namespace Puma {
 
71796
 
 
71797
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71798
 
 
71799
#line 71800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71800
} // closed Puma
 
71801
 
 
71802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71804
#include "CCExprResolveH.ah"
 
71805
#endif
 
71806
namespace Puma {
 
71807
 
 
71808
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71809
 
 
71810
#line 71811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71811
} // closed Puma
 
71812
 
 
71813
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71814
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71815
#include "CExprResolveH.ah"
 
71816
#endif
 
71817
namespace Puma {
 
71818
 
 
71819
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58862
71820
class CT_IndexDesignator : public CT_Expression {
58863
 
#line 58864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71821
#line 71822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71822
  friend class ::CCExprResolve;
 
71823
  friend class ::CExprResolve;
58864
71824
  friend class ::WinIfExists;
58865
71825
  friend class ::WinImportHandler;
58866
71826
  friend class ::WinMacros;
58867
 
  friend class ::CMatchSyntax;
58868
 
  friend class ::ExtGnu;
 
71827
  friend class ::WinAsm;
 
71828
  friend class ::WinDeclSpecs;
 
71829
  friend class ::WinMemberExplSpec;
 
71830
  friend class ::WinTypeKeywords;
 
71831
  friend class ::WinFriend;
58869
71832
  friend class ::ExtAC;
58870
71833
  friend class ::ExtACBuilderCoupling;
58871
71834
  friend class ::ExtACSyntaxCoupling;
58872
71835
  friend class ::ExtACTree;
58873
71836
  friend class ::ExtACKeywords;
58874
 
  friend class ::WinAsm;
58875
 
  friend class ::WinDeclSpecs;
58876
 
  friend class ::WinMemberExplSpec;
58877
 
  friend class ::WinTypeKeywords;
 
71837
  friend class ::ExtGnu;
58878
71838
  friend class ::PragmaOnceUnitState;
58879
71839
  friend class ::PragmaOnce;
58880
 
  friend class ::CCExprResolve;
58881
 
  friend class ::CExprResolve;
 
71840
  friend class ::CMatchSyntax;
58882
71841
 
58883
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71842
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58884
71843
 
58885
71844
  CTree *sons[3]; // open, index, close
58886
71845
 
58887
71846
public:
 
71847
  /** Constructor.
 
71848
   *  \param o Left bracket of the index designator.
 
71849
   *  \param i The index expression.
 
71850
   *  \param c Right bracket of the index designator. */
58888
71851
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
58889
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
71852
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
58890
71853
  }
 
71854
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58891
71855
  static const char *NodeId ();
 
71856
  /** Get the name of the node. Can be compared with NodeId(). */
58892
71857
  const char *NodeName () const { return NodeId (); }
 
71858
  /** Get the number of sons. */
58893
71859
  int Sons () const { return 3; }
 
71860
  /** Get the n-th son.
 
71861
   *  \param n The index of the son.
 
71862
   *  \return The n-th son or NULL. */
58894
71863
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
71864
  /** Replace a son.
 
71865
   *  \param old_son The son to replace.
 
71866
   *  \param new_son The new son. */
58895
71867
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58896
71868
    CTree::ReplaceSon (sons, 3, old_son, new_son);
58897
71869
  }
58898
71870
   private:
58899
71871
  typedef CT_IndexDesignator CCExprResolveExpr;
58900
71872
 
58901
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71873
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58902
71874
 public :
58903
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71875
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58904
71876
  typedef CT_IndexDesignator CExprResolveExpr;
58905
71877
 
58906
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71878
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58907
71879
 public :
58908
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58909
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71880
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71881
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58910
71882
};
58911
71883
 
 
71884
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
71885
 *  Tree node representing a member designator, e.g. .a. */
58912
71886
 
58913
 
#line 58914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71887
#line 71888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58914
71888
} // closed Puma
 
71889
class CCExprResolve;
 
71890
class CExprResolve;
58915
71891
class WinIfExists;
58916
71892
class WinImportHandler;
58917
71893
class WinMacros;
58918
 
class CMatchSyntax;
58919
 
class ExtGnu;
 
71894
class WinAsm;
 
71895
class WinDeclSpecs;
 
71896
class WinMemberExplSpec;
 
71897
class WinTypeKeywords;
 
71898
class WinFriend;
58920
71899
class ExtAC;
58921
71900
class ExtACBuilderCoupling;
58922
71901
class ExtACSyntaxCoupling;
58923
71902
class ExtACTree;
58924
71903
class ExtACKeywords;
58925
 
class WinAsm;
58926
 
class WinDeclSpecs;
58927
 
class WinMemberExplSpec;
58928
 
class WinTypeKeywords;
 
71904
class ExtGnu;
58929
71905
class PragmaOnceUnitState;
58930
71906
class PragmaOnce;
58931
 
class CCExprResolve;
58932
 
class CExprResolve;
58933
 
namespace Puma {
58934
 
 
58935
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71907
class CMatchSyntax;
 
71908
namespace Puma {
 
71909
 
 
71910
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71911
 
 
71912
#line 71913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71913
} // closed Puma
 
71914
 
 
71915
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71916
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71917
#include "CCExprResolveH.ah"
 
71918
#endif
 
71919
namespace Puma {
 
71920
 
 
71921
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71922
 
 
71923
#line 71924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71924
} // closed Puma
 
71925
 
 
71926
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71927
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71928
#include "CExprResolveH.ah"
 
71929
#endif
 
71930
namespace Puma {
 
71931
 
 
71932
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58936
71933
class CT_MembDesignator : public CT_Expression {
58937
 
#line 58938 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71934
#line 71935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
71935
  friend class ::CCExprResolve;
 
71936
  friend class ::CExprResolve;
58938
71937
  friend class ::WinIfExists;
58939
71938
  friend class ::WinImportHandler;
58940
71939
  friend class ::WinMacros;
58941
 
  friend class ::CMatchSyntax;
58942
 
  friend class ::ExtGnu;
 
71940
  friend class ::WinAsm;
 
71941
  friend class ::WinDeclSpecs;
 
71942
  friend class ::WinMemberExplSpec;
 
71943
  friend class ::WinTypeKeywords;
 
71944
  friend class ::WinFriend;
58943
71945
  friend class ::ExtAC;
58944
71946
  friend class ::ExtACBuilderCoupling;
58945
71947
  friend class ::ExtACSyntaxCoupling;
58946
71948
  friend class ::ExtACTree;
58947
71949
  friend class ::ExtACKeywords;
58948
 
  friend class ::WinAsm;
58949
 
  friend class ::WinDeclSpecs;
58950
 
  friend class ::WinMemberExplSpec;
58951
 
  friend class ::WinTypeKeywords;
 
71950
  friend class ::ExtGnu;
58952
71951
  friend class ::PragmaOnceUnitState;
58953
71952
  friend class ::PragmaOnce;
58954
 
  friend class ::CCExprResolve;
58955
 
  friend class ::CExprResolve;
 
71953
  friend class ::CMatchSyntax;
58956
71954
 
58957
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71955
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58958
71956
 
58959
71957
  CTree *sons[2]; // dot, member
58960
71958
 
58961
71959
public:
58962
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
71960
  /** Constructor.
 
71961
   *  \param d The dot before the member name.
 
71962
   *  \param m The member name. */
 
71963
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
71964
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58963
71965
  static const char *NodeId ();
 
71966
  /** Get the name of the node. Can be compared with NodeId(). */
58964
71967
  const char *NodeName () const { return NodeId (); }
 
71968
  /** Get the number of sons. */
58965
71969
  int Sons () const { return 2; }
 
71970
  /** Get the n-th son.
 
71971
   *  \param n The index of the son.
 
71972
   *  \return The n-th son or NULL. */
58966
71973
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
71974
  /** Replace a son.
 
71975
   *  \param old_son The son to replace.
 
71976
   *  \param new_son The new son. */
58967
71977
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58968
71978
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58969
71979
  }
58970
71980
   private:
58971
71981
  typedef CT_MembDesignator CCExprResolveExpr;
58972
71982
 
58973
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71983
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58974
71984
 public :
58975
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71985
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58976
71986
  typedef CT_MembDesignator CExprResolveExpr;
58977
71987
 
58978
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71988
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58979
71989
 public :
58980
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58981
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71990
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71991
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58982
71992
};
58983
71993
 
 
71994
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
71995
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
58984
71996
 
58985
 
#line 58986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
71997
#line 71998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
58986
71998
} // closed Puma
 
71999
class CCExprResolve;
 
72000
class CExprResolve;
58987
72001
class WinIfExists;
58988
72002
class WinImportHandler;
58989
72003
class WinMacros;
58990
 
class CMatchSyntax;
58991
 
class ExtGnu;
 
72004
class WinAsm;
 
72005
class WinDeclSpecs;
 
72006
class WinMemberExplSpec;
 
72007
class WinTypeKeywords;
 
72008
class WinFriend;
58992
72009
class ExtAC;
58993
72010
class ExtACBuilderCoupling;
58994
72011
class ExtACSyntaxCoupling;
58995
72012
class ExtACTree;
58996
72013
class ExtACKeywords;
58997
 
class WinAsm;
58998
 
class WinDeclSpecs;
58999
 
class WinMemberExplSpec;
59000
 
class WinTypeKeywords;
 
72014
class ExtGnu;
59001
72015
class PragmaOnceUnitState;
59002
72016
class PragmaOnce;
59003
 
class CCExprResolve;
59004
 
class CExprResolve;
 
72017
class CMatchSyntax;
59005
72018
namespace Puma {
59006
72019
 
59007
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72020
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59008
72021
class CT_DesignatorSeq : public CT_List, public CSemValue {
59009
 
#line 59010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72022
#line 72023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72023
  friend class ::CCExprResolve;
 
72024
  friend class ::CExprResolve;
59010
72025
  friend class ::WinIfExists;
59011
72026
  friend class ::WinImportHandler;
59012
72027
  friend class ::WinMacros;
59013
 
  friend class ::CMatchSyntax;
59014
 
  friend class ::ExtGnu;
 
72028
  friend class ::WinAsm;
 
72029
  friend class ::WinDeclSpecs;
 
72030
  friend class ::WinMemberExplSpec;
 
72031
  friend class ::WinTypeKeywords;
 
72032
  friend class ::WinFriend;
59015
72033
  friend class ::ExtAC;
59016
72034
  friend class ::ExtACBuilderCoupling;
59017
72035
  friend class ::ExtACSyntaxCoupling;
59018
72036
  friend class ::ExtACTree;
59019
72037
  friend class ::ExtACKeywords;
59020
 
  friend class ::WinAsm;
59021
 
  friend class ::WinDeclSpecs;
59022
 
  friend class ::WinMemberExplSpec;
59023
 
  friend class ::WinTypeKeywords;
 
72038
  friend class ::ExtGnu;
59024
72039
  friend class ::PragmaOnceUnitState;
59025
72040
  friend class ::PragmaOnce;
59026
 
  friend class ::CCExprResolve;
59027
 
  friend class ::CExprResolve;
 
72041
  friend class ::CMatchSyntax;
59028
72042
 
59029
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72043
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59030
72044
 
59031
72045
public:
 
72046
  /** Constructor.
 
72047
   *  \param size Initial number of designators. */
59032
72048
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
72049
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59033
72050
  static const char *NodeId ();
 
72051
  /** Get the name of the node. Can be compared with NodeId(). */
59034
72052
  const char *NodeName () const { return NodeId (); }
59035
72053
 
 
72054
  /** Get the type of the entity to initialize. */
59036
72055
  CTypeInfo *Type () const { return type; }
 
72056
  /** Get the value of the entity to initialize. */
59037
72057
  CExprValue *Value () const { return value; }
 
72058
  /** Get the semantic value object. */
59038
72059
  CSemValue *SemValue () const { return (CSemValue*)this; }
59039
72060
};
59040
72061
 
59044
72065
/*                                                                           */
59045
72066
/*****************************************************************************/
59046
72067
 
 
72068
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
72069
 *  Base class for all tree nodes representing declaration specifiers. */
59047
72070
 
59048
 
#line 59049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72071
#line 72072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59049
72072
} // closed Puma
 
72073
class CCExprResolve;
 
72074
class CExprResolve;
59050
72075
class WinIfExists;
59051
72076
class WinImportHandler;
59052
72077
class WinMacros;
59053
 
class CMatchSyntax;
59054
 
class ExtGnu;
 
72078
class WinAsm;
 
72079
class WinDeclSpecs;
 
72080
class WinMemberExplSpec;
 
72081
class WinTypeKeywords;
 
72082
class WinFriend;
59055
72083
class ExtAC;
59056
72084
class ExtACBuilderCoupling;
59057
72085
class ExtACSyntaxCoupling;
59058
72086
class ExtACTree;
59059
72087
class ExtACKeywords;
59060
 
class WinAsm;
59061
 
class WinDeclSpecs;
59062
 
class WinMemberExplSpec;
59063
 
class WinTypeKeywords;
 
72088
class ExtGnu;
59064
72089
class PragmaOnceUnitState;
59065
72090
class PragmaOnce;
59066
 
class CCExprResolve;
59067
 
class CExprResolve;
 
72091
class CMatchSyntax;
59068
72092
namespace Puma {
59069
72093
 
59070
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72094
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59071
72095
class CT_DeclSpec : public CTree {
59072
 
#line 59073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72096
#line 72097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72097
  friend class ::CCExprResolve;
 
72098
  friend class ::CExprResolve;
59073
72099
  friend class ::WinIfExists;
59074
72100
  friend class ::WinImportHandler;
59075
72101
  friend class ::WinMacros;
59076
 
  friend class ::CMatchSyntax;
59077
 
  friend class ::ExtGnu;
 
72102
  friend class ::WinAsm;
 
72103
  friend class ::WinDeclSpecs;
 
72104
  friend class ::WinMemberExplSpec;
 
72105
  friend class ::WinTypeKeywords;
 
72106
  friend class ::WinFriend;
59078
72107
  friend class ::ExtAC;
59079
72108
  friend class ::ExtACBuilderCoupling;
59080
72109
  friend class ::ExtACSyntaxCoupling;
59081
72110
  friend class ::ExtACTree;
59082
72111
  friend class ::ExtACKeywords;
59083
 
  friend class ::WinAsm;
59084
 
  friend class ::WinDeclSpecs;
59085
 
  friend class ::WinMemberExplSpec;
59086
 
  friend class ::WinTypeKeywords;
 
72112
  friend class ::ExtGnu;
59087
72113
  friend class ::PragmaOnceUnitState;
59088
72114
  friend class ::PragmaOnce;
59089
 
  friend class ::CCExprResolve;
59090
 
  friend class ::CExprResolve;
 
72115
  friend class ::CMatchSyntax;
59091
72116
 
59092
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72117
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59093
72118
 
59094
72119
protected:
 
72120
  /** Constructor. */
59095
72121
  CT_DeclSpec () {}
59096
72122
};
59097
72123
 
 
72124
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
72125
 *  Tree node representing a primitive declaration specifier. */
59098
72126
 
59099
 
#line 59100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72127
#line 72128 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59100
72128
} // closed Puma
 
72129
class CCExprResolve;
 
72130
class CExprResolve;
59101
72131
class WinIfExists;
59102
72132
class WinImportHandler;
59103
72133
class WinMacros;
59104
 
class CMatchSyntax;
59105
 
class ExtGnu;
 
72134
class WinAsm;
 
72135
class WinDeclSpecs;
 
72136
class WinMemberExplSpec;
 
72137
class WinTypeKeywords;
 
72138
class WinFriend;
59106
72139
class ExtAC;
59107
72140
class ExtACBuilderCoupling;
59108
72141
class ExtACSyntaxCoupling;
59109
72142
class ExtACTree;
59110
72143
class ExtACKeywords;
59111
 
class WinAsm;
59112
 
class WinDeclSpecs;
59113
 
class WinMemberExplSpec;
59114
 
class WinTypeKeywords;
 
72144
class ExtGnu;
59115
72145
class PragmaOnceUnitState;
59116
72146
class PragmaOnce;
59117
 
class CCExprResolve;
59118
 
class CExprResolve;
 
72147
class CMatchSyntax;
59119
72148
namespace Puma {
59120
72149
 
59121
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72150
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59122
72151
class CT_PrimDeclSpec : public CT_DeclSpec {
59123
 
#line 59124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72152
#line 72153 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72153
  friend class ::CCExprResolve;
 
72154
  friend class ::CExprResolve;
59124
72155
  friend class ::WinIfExists;
59125
72156
  friend class ::WinImportHandler;
59126
72157
  friend class ::WinMacros;
59127
 
  friend class ::CMatchSyntax;
59128
 
  friend class ::ExtGnu;
 
72158
  friend class ::WinAsm;
 
72159
  friend class ::WinDeclSpecs;
 
72160
  friend class ::WinMemberExplSpec;
 
72161
  friend class ::WinTypeKeywords;
 
72162
  friend class ::WinFriend;
59129
72163
  friend class ::ExtAC;
59130
72164
  friend class ::ExtACBuilderCoupling;
59131
72165
  friend class ::ExtACSyntaxCoupling;
59132
72166
  friend class ::ExtACTree;
59133
72167
  friend class ::ExtACKeywords;
59134
 
  friend class ::WinAsm;
59135
 
  friend class ::WinDeclSpecs;
59136
 
  friend class ::WinMemberExplSpec;
59137
 
  friend class ::WinTypeKeywords;
 
72168
  friend class ::ExtGnu;
59138
72169
  friend class ::PragmaOnceUnitState;
59139
72170
  friend class ::PragmaOnce;
59140
 
  friend class ::CCExprResolve;
59141
 
  friend class ::CExprResolve;
 
72171
  friend class ::CMatchSyntax;
59142
72172
 
59143
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72173
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59144
72174
 
59145
72175
public:
59146
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
59147
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
59148
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
59149
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
59150
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
59151
 
              // AspectC++ specific type specifier
59152
 
              PDS_UNKNOWN_T,
59153
 
              // Win specific declaration specifiers
59154
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
59155
 
              PDS_UNKNOWN, PDS_NUM };
 
72176
  /** Declaration specifier types. */
 
72177
  enum Type { 
 
72178
    PDS_FRIEND,    /** friend */
 
72179
    PDS_TYPEDEF,   /** typedef */
 
72180
    PDS_AUTO,      /** auto */
 
72181
    PDS_REGISTER,  /** register */
 
72182
    PDS_STATIC,    /** static */
 
72183
    PDS_EXTERN,    /** extern */
 
72184
    PDS_MUTABLE,   /** mutable */
 
72185
    PDS_INLINE,    /** inline */
 
72186
    PDS_VIRTUAL,   /** virtual */
 
72187
    PDS_EXPLICIT,  /** explicit */
 
72188
    PDS_CONST,     /** const */
 
72189
    PDS_VOLATILE,  /** volatile */
 
72190
    PDS_RESTRICT,  /** restrict */
 
72191
    PDS_CHAR,      /** char */
 
72192
    PDS_WCHAR_T,   /** wchar_t */
 
72193
    PDS_BOOL,      /** bool */
 
72194
    PDS_SHORT,     /** short */
 
72195
    PDS_INT,       /** int */
 
72196
    PDS_LONG,      /** long */
 
72197
    PDS_SIGNED,    /** signed */
 
72198
    PDS_UNSIGNED,  /** unsigned */
 
72199
    PDS_FLOAT,     /** float */
 
72200
    PDS_DOUBLE,    /** double */
 
72201
    PDS_VOID,      /** void */
 
72202
    // AspectC++ specific type specifier
 
72203
    PDS_UNKNOWN_T, /** unknown_t */
 
72204
    // Win specific declaration specifiers
 
72205
    PDS_CDECL,     /** __cdecl */
 
72206
    PDS_STDCALL,   /** __stdcall */
 
72207
    PDS_FASTCALL,  /** __fastcall */
 
72208
    PDS_INT64,     /** __int64 */
 
72209
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
72210
    PDS_NUM        /** Number of declaration specifier types. */
 
72211
  };
59156
72212
 
59157
72213
private:
59158
72214
  Type _type;
59159
 
  CT_Token *_token;
 
72215
  CTree *_token; // has to be a CT_Token
59160
72216
 
59161
72217
  void determine_type ();
59162
72218
 
59163
72219
public:
59164
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
72220
  /** Constructor.
 
72221
   *  \param t The token containing the declaration specifier. */
 
72222
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
72223
  /** Constructor.
 
72224
   *  \param t The declaration specifier type. */
59165
72225
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
72226
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59166
72227
  static const char *NodeId ();
 
72228
  /** Get the name of the node. Can be compared with NodeId(). */
59167
72229
  const char *NodeName () const { return NodeId (); }
 
72230
  /** Get the number of sons. */
59168
72231
  int Sons () const { return _token ? 1 : 0; }
 
72232
  /** Get the n-th son.
 
72233
   *  \param n The index of the son.
 
72234
   *  \return The n-th son or NULL. */
59169
72235
  CTree *Son (int n) const 
59170
72236
   { return (n == 0) ? _token : (CTree*)0; }
 
72237
  /** Get the textual representation of the declaration specifier.
 
72238
   *  \return The string representation or " ". */
59171
72239
  const char *SpecText () const 
59172
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
72240
   { return _token ? _token->token ()->text () : " "; }
 
72241
  /** Get the declaration specifier type. */
59173
72242
  Type SpecType () const { return _type; }
 
72243
  /** Number of declaration specifier types. */
59174
72244
  static const int NumTypes = PDS_NUM;
 
72245
  /** Replace a son.
 
72246
   *  \param old_son The son to replace.
 
72247
   *  \param new_son The new son. */
 
72248
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
72249
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
72250
    determine_type ();
 
72251
  }
59175
72252
};
59176
72253
 
 
72254
/** \class CT_NamedType CTree.h Puma/CTree.h
 
72255
 *  Tree node representing a named type, e.g. (int*)a. 
 
72256
 *  where int* is a type with a generated name. */
59177
72257
 
59178
 
#line 59179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72258
#line 72259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59179
72259
} // closed Puma
 
72260
class CCExprResolve;
 
72261
class CExprResolve;
59180
72262
class WinIfExists;
59181
72263
class WinImportHandler;
59182
72264
class WinMacros;
59183
 
class CMatchSyntax;
59184
 
class ExtGnu;
 
72265
class WinAsm;
 
72266
class WinDeclSpecs;
 
72267
class WinMemberExplSpec;
 
72268
class WinTypeKeywords;
 
72269
class WinFriend;
59185
72270
class ExtAC;
59186
72271
class ExtACBuilderCoupling;
59187
72272
class ExtACSyntaxCoupling;
59188
72273
class ExtACTree;
59189
72274
class ExtACKeywords;
59190
 
class WinAsm;
59191
 
class WinDeclSpecs;
59192
 
class WinMemberExplSpec;
59193
 
class WinTypeKeywords;
 
72275
class ExtGnu;
59194
72276
class PragmaOnceUnitState;
59195
72277
class PragmaOnce;
59196
 
class CCExprResolve;
59197
 
class CExprResolve;
 
72278
class CMatchSyntax;
59198
72279
namespace Puma {
59199
72280
 
59200
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72281
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59201
72282
class CT_NamedType : public CT_DeclSpec, public CSemObject {
59202
 
#line 59203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72283
#line 72284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72284
  friend class ::CCExprResolve;
 
72285
  friend class ::CExprResolve;
59203
72286
  friend class ::WinIfExists;
59204
72287
  friend class ::WinImportHandler;
59205
72288
  friend class ::WinMacros;
59206
 
  friend class ::CMatchSyntax;
59207
 
  friend class ::ExtGnu;
 
72289
  friend class ::WinAsm;
 
72290
  friend class ::WinDeclSpecs;
 
72291
  friend class ::WinMemberExplSpec;
 
72292
  friend class ::WinTypeKeywords;
 
72293
  friend class ::WinFriend;
59208
72294
  friend class ::ExtAC;
59209
72295
  friend class ::ExtACBuilderCoupling;
59210
72296
  friend class ::ExtACSyntaxCoupling;
59211
72297
  friend class ::ExtACTree;
59212
72298
  friend class ::ExtACKeywords;
59213
 
  friend class ::WinAsm;
59214
 
  friend class ::WinDeclSpecs;
59215
 
  friend class ::WinMemberExplSpec;
59216
 
  friend class ::WinTypeKeywords;
 
72299
  friend class ::ExtGnu;
59217
72300
  friend class ::PragmaOnceUnitState;
59218
72301
  friend class ::PragmaOnce;
59219
 
  friend class ::CCExprResolve;
59220
 
  friend class ::CExprResolve;
 
72302
  friend class ::CMatchSyntax;
59221
72303
 
59222
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72304
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59223
72305
 
59224
72306
  CTree *sons[2]; // declspecs, declarator
59225
72307
 
59226
72308
public:
59227
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
72309
  /** Constructor.
 
72310
   *  \param dss The declaration specifier sequence of the type.
 
72311
   *  \param d The type declarator. */
 
72312
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
72313
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59228
72314
  static const char *NodeId ();
 
72315
  /** Get the name of the node. Can be compared with NodeId(). */
59229
72316
  const char *NodeName () const { return NodeId (); }
 
72317
  /** Get the number of sons. */
59230
72318
  int Sons () const { return CTree::Sons (sons, 2); }
 
72319
  /** Get the n-th son.
 
72320
   *  \param n The index of the son.
 
72321
   *  \return The n-th son or NULL. */
59231
72322
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
72323
  /** Get the declarator. */
59232
72324
  CTree *Declarator () const { return sons[1]; }
 
72325
  /** Replace a son.
 
72326
   *  \param old_son The son to replace.
 
72327
   *  \param new_son The new son. */
59233
72328
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59234
72329
    CTree::ReplaceSon (sons, 2, old_son, new_son);
59235
72330
  }
 
72331
  /** Get the semantic information object. */
59236
72332
  CSemObject *SemObject () const { return (CSemObject*)this; }
59237
72333
};
59238
72334
      
 
72335
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
72336
 *  Tree node representing a class specifier, e.g. class X. */
59239
72337
 
59240
 
#line 59241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72338
#line 72339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59241
72339
} // closed Puma
 
72340
class CCExprResolve;
 
72341
class CExprResolve;
59242
72342
class WinIfExists;
59243
72343
class WinImportHandler;
59244
72344
class WinMacros;
59245
 
class CMatchSyntax;
59246
 
class ExtGnu;
 
72345
class WinAsm;
 
72346
class WinDeclSpecs;
 
72347
class WinMemberExplSpec;
 
72348
class WinTypeKeywords;
 
72349
class WinFriend;
59247
72350
class ExtAC;
59248
72351
class ExtACBuilderCoupling;
59249
72352
class ExtACSyntaxCoupling;
59250
72353
class ExtACTree;
59251
72354
class ExtACKeywords;
59252
 
class WinAsm;
59253
 
class WinDeclSpecs;
59254
 
class WinMemberExplSpec;
59255
 
class WinTypeKeywords;
 
72355
class ExtGnu;
59256
72356
class PragmaOnceUnitState;
59257
72357
class PragmaOnce;
59258
 
class CCExprResolve;
59259
 
class CExprResolve;
 
72358
class CMatchSyntax;
59260
72359
namespace Puma {
59261
72360
 
59262
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72361
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59263
72362
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
59264
 
#line 59265 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72363
#line 72364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72364
  friend class ::CCExprResolve;
 
72365
  friend class ::CExprResolve;
59265
72366
  friend class ::WinIfExists;
59266
72367
  friend class ::WinImportHandler;
59267
72368
  friend class ::WinMacros;
59268
 
  friend class ::CMatchSyntax;
59269
 
  friend class ::ExtGnu;
 
72369
  friend class ::WinAsm;
 
72370
  friend class ::WinDeclSpecs;
 
72371
  friend class ::WinMemberExplSpec;
 
72372
  friend class ::WinTypeKeywords;
 
72373
  friend class ::WinFriend;
59270
72374
  friend class ::ExtAC;
59271
72375
  friend class ::ExtACBuilderCoupling;
59272
72376
  friend class ::ExtACSyntaxCoupling;
59273
72377
  friend class ::ExtACTree;
59274
72378
  friend class ::ExtACKeywords;
59275
 
  friend class ::WinAsm;
59276
 
  friend class ::WinDeclSpecs;
59277
 
  friend class ::WinMemberExplSpec;
59278
 
  friend class ::WinTypeKeywords;
 
72379
  friend class ::ExtGnu;
59279
72380
  friend class ::PragmaOnceUnitState;
59280
72381
  friend class ::PragmaOnce;
59281
 
  friend class ::CCExprResolve;
59282
 
  friend class ::CExprResolve;
 
72382
  friend class ::CMatchSyntax;
59283
72383
 
59284
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72384
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59285
72385
 
59286
72386
  CTree *sons[2]; // key, name
59287
72387
  
59288
72388
public:
59289
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
72389
  /** Constructor.
 
72390
   *  \param k The 'class' or 'struct' keyword.
 
72391
   *  \param n The class name. */
 
72392
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
72393
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59290
72394
  static const char *NodeId ();
 
72395
  /** Get the name of the node. Can be compared with NodeId(). */
59291
72396
  const char *NodeName () const { return NodeId (); }
 
72397
  /** Get the number of sons. */
59292
72398
  int Sons () const { return 2; }
 
72399
  /** Get the n-th son.
 
72400
   *  \param n The index of the son.
 
72401
   *  \return The n-th son or NULL. */
59293
72402
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
72403
  /** Get the class name. */
59294
72404
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
72405
  /** Get the semantic information object. */
59295
72406
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
72407
  /** Replace a son.
 
72408
   *  \param old_son The son to replace.
 
72409
   *  \param new_son The new son. */
59296
72410
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59297
72411
    CTree::ReplaceSon (sons, 2, old_son, new_son);
59298
72412
  }
59299
72413
};
59300
72414
 
 
72415
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
72416
 *  Tree node representing a union specifier, e.g. union X. */
59301
72417
 
59302
 
#line 59303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72418
#line 72419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59303
72419
} // closed Puma
 
72420
class CCExprResolve;
 
72421
class CExprResolve;
59304
72422
class WinIfExists;
59305
72423
class WinImportHandler;
59306
72424
class WinMacros;
59307
 
class CMatchSyntax;
59308
 
class ExtGnu;
 
72425
class WinAsm;
 
72426
class WinDeclSpecs;
 
72427
class WinMemberExplSpec;
 
72428
class WinTypeKeywords;
 
72429
class WinFriend;
59309
72430
class ExtAC;
59310
72431
class ExtACBuilderCoupling;
59311
72432
class ExtACSyntaxCoupling;
59312
72433
class ExtACTree;
59313
72434
class ExtACKeywords;
59314
 
class WinAsm;
59315
 
class WinDeclSpecs;
59316
 
class WinMemberExplSpec;
59317
 
class WinTypeKeywords;
 
72435
class ExtGnu;
59318
72436
class PragmaOnceUnitState;
59319
72437
class PragmaOnce;
59320
 
class CCExprResolve;
59321
 
class CExprResolve;
 
72438
class CMatchSyntax;
59322
72439
namespace Puma {
59323
72440
 
59324
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72441
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59325
72442
class CT_UnionSpec : public CT_ClassSpec {
59326
 
#line 59327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72443
#line 72444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72444
  friend class ::CCExprResolve;
 
72445
  friend class ::CExprResolve;
59327
72446
  friend class ::WinIfExists;
59328
72447
  friend class ::WinImportHandler;
59329
72448
  friend class ::WinMacros;
59330
 
  friend class ::CMatchSyntax;
59331
 
  friend class ::ExtGnu;
 
72449
  friend class ::WinAsm;
 
72450
  friend class ::WinDeclSpecs;
 
72451
  friend class ::WinMemberExplSpec;
 
72452
  friend class ::WinTypeKeywords;
 
72453
  friend class ::WinFriend;
59332
72454
  friend class ::ExtAC;
59333
72455
  friend class ::ExtACBuilderCoupling;
59334
72456
  friend class ::ExtACSyntaxCoupling;
59335
72457
  friend class ::ExtACTree;
59336
72458
  friend class ::ExtACKeywords;
59337
 
  friend class ::WinAsm;
59338
 
  friend class ::WinDeclSpecs;
59339
 
  friend class ::WinMemberExplSpec;
59340
 
  friend class ::WinTypeKeywords;
 
72459
  friend class ::ExtGnu;
59341
72460
  friend class ::PragmaOnceUnitState;
59342
72461
  friend class ::PragmaOnce;
59343
 
  friend class ::CCExprResolve;
59344
 
  friend class ::CExprResolve;
 
72462
  friend class ::CMatchSyntax;
59345
72463
 
59346
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72464
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59347
72465
 
59348
72466
public:
 
72467
  /** Constructor.
 
72468
   *  \param k The 'union' keyword.
 
72469
   *  \param n The name of the union. */
59349
72470
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
72471
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59350
72472
  static const char *NodeId ();
 
72473
  /** Get the name of the node. Can be compared with NodeId(). */
59351
72474
  const char *NodeName () const { return NodeId (); }
59352
72475
};
59353
72476
 
 
72477
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
72478
 *  Tree node representing an enumeration specifier, e.g. enum X. */
59354
72479
 
59355
 
#line 59356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72480
#line 72481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59356
72481
} // closed Puma
 
72482
class CCExprResolve;
 
72483
class CExprResolve;
59357
72484
class WinIfExists;
59358
72485
class WinImportHandler;
59359
72486
class WinMacros;
59360
 
class CMatchSyntax;
59361
 
class ExtGnu;
 
72487
class WinAsm;
 
72488
class WinDeclSpecs;
 
72489
class WinMemberExplSpec;
 
72490
class WinTypeKeywords;
 
72491
class WinFriend;
59362
72492
class ExtAC;
59363
72493
class ExtACBuilderCoupling;
59364
72494
class ExtACSyntaxCoupling;
59365
72495
class ExtACTree;
59366
72496
class ExtACKeywords;
59367
 
class WinAsm;
59368
 
class WinDeclSpecs;
59369
 
class WinMemberExplSpec;
59370
 
class WinTypeKeywords;
 
72497
class ExtGnu;
59371
72498
class PragmaOnceUnitState;
59372
72499
class PragmaOnce;
59373
 
class CCExprResolve;
59374
 
class CExprResolve;
 
72500
class CMatchSyntax;
59375
72501
namespace Puma {
59376
72502
 
59377
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72503
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59378
72504
class CT_EnumSpec : public CT_ClassSpec {
59379
 
#line 59380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72505
#line 72506 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72506
  friend class ::CCExprResolve;
 
72507
  friend class ::CExprResolve;
59380
72508
  friend class ::WinIfExists;
59381
72509
  friend class ::WinImportHandler;
59382
72510
  friend class ::WinMacros;
59383
 
  friend class ::CMatchSyntax;
59384
 
  friend class ::ExtGnu;
 
72511
  friend class ::WinAsm;
 
72512
  friend class ::WinDeclSpecs;
 
72513
  friend class ::WinMemberExplSpec;
 
72514
  friend class ::WinTypeKeywords;
 
72515
  friend class ::WinFriend;
59385
72516
  friend class ::ExtAC;
59386
72517
  friend class ::ExtACBuilderCoupling;
59387
72518
  friend class ::ExtACSyntaxCoupling;
59388
72519
  friend class ::ExtACTree;
59389
72520
  friend class ::ExtACKeywords;
59390
 
  friend class ::WinAsm;
59391
 
  friend class ::WinDeclSpecs;
59392
 
  friend class ::WinMemberExplSpec;
59393
 
  friend class ::WinTypeKeywords;
 
72521
  friend class ::ExtGnu;
59394
72522
  friend class ::PragmaOnceUnitState;
59395
72523
  friend class ::PragmaOnce;
59396
 
  friend class ::CCExprResolve;
59397
 
  friend class ::CExprResolve;
 
72524
  friend class ::CMatchSyntax;
59398
72525
 
59399
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72526
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59400
72527
 
59401
72528
public:
 
72529
  /** Constructor.
 
72530
   *  \param k The 'enum' keyword. 
 
72531
   *  \param n The name of the enumeration. */
59402
72532
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
72533
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59403
72534
  static const char *NodeId ();
 
72535
  /** Get the name of the node. Can be compared with NodeId(). */
59404
72536
  const char *NodeName () const { return NodeId (); }
59405
72537
};
59406
72538
 
 
72539
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
72540
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
59407
72541
 
59408
 
#line 59409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72542
#line 72543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59409
72543
} // closed Puma
 
72544
class CCExprResolve;
 
72545
class CExprResolve;
59410
72546
class WinIfExists;
59411
72547
class WinImportHandler;
59412
72548
class WinMacros;
59413
 
class CMatchSyntax;
59414
 
class ExtGnu;
 
72549
class WinAsm;
 
72550
class WinDeclSpecs;
 
72551
class WinMemberExplSpec;
 
72552
class WinTypeKeywords;
 
72553
class WinFriend;
59415
72554
class ExtAC;
59416
72555
class ExtACBuilderCoupling;
59417
72556
class ExtACSyntaxCoupling;
59418
72557
class ExtACTree;
59419
72558
class ExtACKeywords;
59420
 
class WinAsm;
59421
 
class WinDeclSpecs;
59422
 
class WinMemberExplSpec;
59423
 
class WinTypeKeywords;
 
72559
class ExtGnu;
59424
72560
class PragmaOnceUnitState;
59425
72561
class PragmaOnce;
59426
 
class CCExprResolve;
59427
 
class CExprResolve;
 
72562
class CMatchSyntax;
59428
72563
namespace Puma {
59429
72564
 
59430
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72565
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59431
72566
class CT_ExceptionSpec : public CT_DeclSpec {
59432
 
#line 59433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72567
#line 72568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72568
  friend class ::CCExprResolve;
 
72569
  friend class ::CExprResolve;
59433
72570
  friend class ::WinIfExists;
59434
72571
  friend class ::WinImportHandler;
59435
72572
  friend class ::WinMacros;
59436
 
  friend class ::CMatchSyntax;
59437
 
  friend class ::ExtGnu;
 
72573
  friend class ::WinAsm;
 
72574
  friend class ::WinDeclSpecs;
 
72575
  friend class ::WinMemberExplSpec;
 
72576
  friend class ::WinTypeKeywords;
 
72577
  friend class ::WinFriend;
59438
72578
  friend class ::ExtAC;
59439
72579
  friend class ::ExtACBuilderCoupling;
59440
72580
  friend class ::ExtACSyntaxCoupling;
59441
72581
  friend class ::ExtACTree;
59442
72582
  friend class ::ExtACKeywords;
59443
 
  friend class ::WinAsm;
59444
 
  friend class ::WinDeclSpecs;
59445
 
  friend class ::WinMemberExplSpec;
59446
 
  friend class ::WinTypeKeywords;
 
72583
  friend class ::ExtGnu;
59447
72584
  friend class ::PragmaOnceUnitState;
59448
72585
  friend class ::PragmaOnce;
59449
 
  friend class ::CCExprResolve;
59450
 
  friend class ::CExprResolve;
 
72586
  friend class ::CMatchSyntax;
59451
72587
 
59452
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72588
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59453
72589
 
59454
72590
  CTree *sons[2]; // throw, type_id_list
59455
72591
  
59456
72592
public:
59457
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
72593
  /** Constructor.
 
72594
   *  \param k The 'throw' keyword.
 
72595
   *  \param l The type list for the exception type to throw. */
 
72596
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
72597
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59458
72598
  static const char *NodeId ();
 
72599
  /** Get the name of the node. Can be compared with NodeId(). */
59459
72600
  const char *NodeName () const { return NodeId (); }
 
72601
  /** Get the number of sons. */
59460
72602
  int Sons () const { return 2; }
 
72603
  /** Get the n-th son.
 
72604
   *  \param n The index of the son.
 
72605
   *  \return The n-th son or NULL. */
59461
72606
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
72607
  /** Get the exception type list. */
59462
72608
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
72609
  /** Replace a son.
 
72610
   *  \param old_son The son to replace.
 
72611
   *  \param new_son The new son. */
59463
72612
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59464
72613
    CTree::ReplaceSon (sons, 2, old_son, new_son);
59465
72614
  }
59471
72620
/*                                                                           */
59472
72621
/*****************************************************************************/
59473
72622
 
 
72623
/** \class CT_Decl CTree.h Puma/CTree.h
 
72624
 *  Base class for all tree nodes representing declarations. */
59474
72625
 
59475
 
#line 59476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72626
#line 72627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59476
72627
} // closed Puma
 
72628
class CCExprResolve;
 
72629
class CExprResolve;
59477
72630
class WinIfExists;
59478
72631
class WinImportHandler;
59479
72632
class WinMacros;
59480
 
class CMatchSyntax;
59481
 
class ExtGnu;
 
72633
class WinAsm;
 
72634
class WinDeclSpecs;
 
72635
class WinMemberExplSpec;
 
72636
class WinTypeKeywords;
 
72637
class WinFriend;
59482
72638
class ExtAC;
59483
72639
class ExtACBuilderCoupling;
59484
72640
class ExtACSyntaxCoupling;
59485
72641
class ExtACTree;
59486
72642
class ExtACKeywords;
59487
 
class WinAsm;
59488
 
class WinDeclSpecs;
59489
 
class WinMemberExplSpec;
59490
 
class WinTypeKeywords;
 
72643
class ExtGnu;
59491
72644
class PragmaOnceUnitState;
59492
72645
class PragmaOnce;
59493
 
class CCExprResolve;
59494
 
class CExprResolve;
 
72646
class CMatchSyntax;
59495
72647
namespace Puma {
59496
72648
 
59497
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72649
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59498
72650
class CT_Decl : public CTree {
59499
 
#line 59500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72651
#line 72652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72652
  friend class ::CCExprResolve;
 
72653
  friend class ::CExprResolve;
59500
72654
  friend class ::WinIfExists;
59501
72655
  friend class ::WinImportHandler;
59502
72656
  friend class ::WinMacros;
59503
 
  friend class ::CMatchSyntax;
59504
 
  friend class ::ExtGnu;
 
72657
  friend class ::WinAsm;
 
72658
  friend class ::WinDeclSpecs;
 
72659
  friend class ::WinMemberExplSpec;
 
72660
  friend class ::WinTypeKeywords;
 
72661
  friend class ::WinFriend;
59505
72662
  friend class ::ExtAC;
59506
72663
  friend class ::ExtACBuilderCoupling;
59507
72664
  friend class ::ExtACSyntaxCoupling;
59508
72665
  friend class ::ExtACTree;
59509
72666
  friend class ::ExtACKeywords;
59510
 
  friend class ::WinAsm;
59511
 
  friend class ::WinDeclSpecs;
59512
 
  friend class ::WinMemberExplSpec;
59513
 
  friend class ::WinTypeKeywords;
 
72667
  friend class ::ExtGnu;
59514
72668
  friend class ::PragmaOnceUnitState;
59515
72669
  friend class ::PragmaOnce;
59516
 
  friend class ::CCExprResolve;
59517
 
  friend class ::CExprResolve;
 
72670
  friend class ::CMatchSyntax;
59518
72671
 
59519
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72672
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59520
72673
 
59521
72674
  CT_LinkageSpec *_linkage;
 
72675
  
59522
72676
protected:
 
72677
  /** Constructor. */
59523
72678
  CT_Decl () : _linkage (0) {}
 
72679
  
59524
72680
public:
 
72681
  /** Set the linkage of the declared entity.
 
72682
   *  \param l The linkage specifiers. */
59525
72683
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
72684
  /** Get the linkage specifiers. */
59526
72685
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
72686
  /** Get this. */
 
72687
  virtual CT_Decl *IsDeclaration () { return this; }
59527
72688
};
59528
72689
 
 
72690
/** \class CT_Program CTree.h Puma/CTree.h
 
72691
 *  Root node of C/C++ syntax tree. */
59529
72692
 
59530
 
#line 59531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72693
#line 72694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59531
72694
} // closed Puma
 
72695
class CCExprResolve;
 
72696
class CExprResolve;
59532
72697
class WinIfExists;
59533
72698
class WinImportHandler;
59534
72699
class WinMacros;
59535
 
class CMatchSyntax;
59536
 
class ExtGnu;
 
72700
class WinAsm;
 
72701
class WinDeclSpecs;
 
72702
class WinMemberExplSpec;
 
72703
class WinTypeKeywords;
 
72704
class WinFriend;
59537
72705
class ExtAC;
59538
72706
class ExtACBuilderCoupling;
59539
72707
class ExtACSyntaxCoupling;
59540
72708
class ExtACTree;
59541
72709
class ExtACKeywords;
59542
 
class WinAsm;
59543
 
class WinDeclSpecs;
59544
 
class WinMemberExplSpec;
59545
 
class WinTypeKeywords;
 
72710
class ExtGnu;
59546
72711
class PragmaOnceUnitState;
59547
72712
class PragmaOnce;
59548
 
class CCExprResolve;
59549
 
class CExprResolve;
 
72713
class CMatchSyntax;
59550
72714
namespace Puma {
59551
72715
 
59552
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72716
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59553
72717
class CT_Program : public CT_DeclList, public CSemScope {
59554
 
#line 59555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72718
#line 72719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72719
  friend class ::CCExprResolve;
 
72720
  friend class ::CExprResolve;
59555
72721
  friend class ::WinIfExists;
59556
72722
  friend class ::WinImportHandler;
59557
72723
  friend class ::WinMacros;
59558
 
  friend class ::CMatchSyntax;
59559
 
  friend class ::ExtGnu;
 
72724
  friend class ::WinAsm;
 
72725
  friend class ::WinDeclSpecs;
 
72726
  friend class ::WinMemberExplSpec;
 
72727
  friend class ::WinTypeKeywords;
 
72728
  friend class ::WinFriend;
59560
72729
  friend class ::ExtAC;
59561
72730
  friend class ::ExtACBuilderCoupling;
59562
72731
  friend class ::ExtACSyntaxCoupling;
59563
72732
  friend class ::ExtACTree;
59564
72733
  friend class ::ExtACKeywords;
59565
 
  friend class ::WinAsm;
59566
 
  friend class ::WinDeclSpecs;
59567
 
  friend class ::WinMemberExplSpec;
59568
 
  friend class ::WinTypeKeywords;
 
72734
  friend class ::ExtGnu;
59569
72735
  friend class ::PragmaOnceUnitState;
59570
72736
  friend class ::PragmaOnce;
59571
 
  friend class ::CCExprResolve;
59572
 
  friend class ::CExprResolve;
 
72737
  friend class ::CMatchSyntax;
59573
72738
 
59574
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72739
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59575
72740
 
59576
72741
public:
 
72742
  /** Constructor.
 
72743
   *  \param size The initial number of declarations in the program.
 
72744
   *  \param incr The initial increment count. */
59577
72745
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
72746
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59578
72747
  static const char *NodeId ();
 
72748
  /** Get the name of the node. Can be compared with NodeId(). */
59579
72749
  const char *NodeName () const { return NodeId (); }
 
72750
  /** Get the semantic scope object. */
 
72751
  CSemScope *SemScope () const { return (CSemScope*)this; }
59580
72752
};
59581
72753
   
 
72754
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
72755
 *  Tree node representing an object declaration, e.g. int *i. */
59582
72756
 
59583
 
#line 59584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72757
#line 72758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59584
72758
} // closed Puma
 
72759
class CCExprResolve;
 
72760
class CExprResolve;
59585
72761
class WinIfExists;
59586
72762
class WinImportHandler;
59587
72763
class WinMacros;
59588
 
class CMatchSyntax;
59589
 
class ExtGnu;
 
72764
class WinAsm;
 
72765
class WinDeclSpecs;
 
72766
class WinMemberExplSpec;
 
72767
class WinTypeKeywords;
 
72768
class WinFriend;
59590
72769
class ExtAC;
59591
72770
class ExtACBuilderCoupling;
59592
72771
class ExtACSyntaxCoupling;
59593
72772
class ExtACTree;
59594
72773
class ExtACKeywords;
59595
 
class WinAsm;
59596
 
class WinDeclSpecs;
59597
 
class WinMemberExplSpec;
59598
 
class WinTypeKeywords;
 
72774
class ExtGnu;
59599
72775
class PragmaOnceUnitState;
59600
72776
class PragmaOnce;
59601
 
class CCExprResolve;
59602
 
class CExprResolve;
 
72777
class CMatchSyntax;
59603
72778
namespace Puma {
59604
72779
 
59605
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72780
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59606
72781
class CT_ObjDecl : public CT_Decl {
59607
 
#line 59608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72782
#line 72783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72783
  friend class ::CCExprResolve;
 
72784
  friend class ::CExprResolve;
59608
72785
  friend class ::WinIfExists;
59609
72786
  friend class ::WinImportHandler;
59610
72787
  friend class ::WinMacros;
59611
 
  friend class ::CMatchSyntax;
59612
 
  friend class ::ExtGnu;
 
72788
  friend class ::WinAsm;
 
72789
  friend class ::WinDeclSpecs;
 
72790
  friend class ::WinMemberExplSpec;
 
72791
  friend class ::WinTypeKeywords;
 
72792
  friend class ::WinFriend;
59613
72793
  friend class ::ExtAC;
59614
72794
  friend class ::ExtACBuilderCoupling;
59615
72795
  friend class ::ExtACSyntaxCoupling;
59616
72796
  friend class ::ExtACTree;
59617
72797
  friend class ::ExtACKeywords;
59618
 
  friend class ::WinAsm;
59619
 
  friend class ::WinDeclSpecs;
59620
 
  friend class ::WinMemberExplSpec;
59621
 
  friend class ::WinTypeKeywords;
 
72798
  friend class ::ExtGnu;
59622
72799
  friend class ::PragmaOnceUnitState;
59623
72800
  friend class ::PragmaOnce;
59624
 
  friend class ::CCExprResolve;
59625
 
  friend class ::CExprResolve;
 
72801
  friend class ::CMatchSyntax;
59626
72802
 
59627
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72803
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59628
72804
 
59629
72805
  CTree *sons[3]; // declspecs, declarators, colon
59630
72806
 
59631
72807
public:
 
72808
  /** Constructor.
 
72809
   *  \param dsl The declaration specifier sequence.
 
72810
   *  \param dl The declarator list.
 
72811
   *  \param c Optional colon. */
59632
72812
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
59633
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
72813
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
59634
72814
  }
 
72815
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59635
72816
  static const char *NodeId ();
 
72817
  /** Get the name of the node. Can be compared with NodeId(). */
59636
72818
  const char *NodeName () const { return NodeId (); }
 
72819
  /** Get the number of sons. */
59637
72820
  int Sons () const { return 3; }
 
72821
  /** Get the n-th son.
 
72822
   *  \param n The index of the son.
 
72823
   *  \return The n-th son or NULL. */
59638
72824
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
72825
  /** Get the declaration specifier sequence. */
59639
72826
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
72827
  /** Get the declarator list. */
59640
72828
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
72829
  /** Replace a son.
 
72830
   *  \param old_son The son to replace.
 
72831
   *  \param new_son The new son. */
59641
72832
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59642
72833
    CTree::ReplaceSon (sons, 3, old_son, new_son);
59643
72834
  }
59644
72835
};
59645
72836
 
 
72837
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
72838
 *  Tree node representing a template declaration. */
59646
72839
 
59647
 
#line 59648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72840
#line 72841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59648
72841
} // closed Puma
 
72842
class CCExprResolve;
 
72843
class CExprResolve;
59649
72844
class WinIfExists;
59650
72845
class WinImportHandler;
59651
72846
class WinMacros;
59652
 
class CMatchSyntax;
59653
 
class ExtGnu;
 
72847
class WinAsm;
 
72848
class WinDeclSpecs;
 
72849
class WinMemberExplSpec;
 
72850
class WinTypeKeywords;
 
72851
class WinFriend;
59654
72852
class ExtAC;
59655
72853
class ExtACBuilderCoupling;
59656
72854
class ExtACSyntaxCoupling;
59657
72855
class ExtACTree;
59658
72856
class ExtACKeywords;
59659
 
class WinAsm;
59660
 
class WinDeclSpecs;
59661
 
class WinMemberExplSpec;
59662
 
class WinTypeKeywords;
 
72857
class ExtGnu;
59663
72858
class PragmaOnceUnitState;
59664
72859
class PragmaOnce;
59665
 
class CCExprResolve;
59666
 
class CExprResolve;
 
72860
class CMatchSyntax;
59667
72861
namespace Puma {
59668
72862
 
59669
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72863
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59670
72864
class CT_TemplateDecl : public CT_Decl, public CSemScope {
59671
 
#line 59672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72865
#line 72866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72866
  friend class ::CCExprResolve;
 
72867
  friend class ::CExprResolve;
59672
72868
  friend class ::WinIfExists;
59673
72869
  friend class ::WinImportHandler;
59674
72870
  friend class ::WinMacros;
59675
 
  friend class ::CMatchSyntax;
59676
 
  friend class ::ExtGnu;
 
72871
  friend class ::WinAsm;
 
72872
  friend class ::WinDeclSpecs;
 
72873
  friend class ::WinMemberExplSpec;
 
72874
  friend class ::WinTypeKeywords;
 
72875
  friend class ::WinFriend;
59677
72876
  friend class ::ExtAC;
59678
72877
  friend class ::ExtACBuilderCoupling;
59679
72878
  friend class ::ExtACSyntaxCoupling;
59680
72879
  friend class ::ExtACTree;
59681
72880
  friend class ::ExtACKeywords;
59682
 
  friend class ::WinAsm;
59683
 
  friend class ::WinDeclSpecs;
59684
 
  friend class ::WinMemberExplSpec;
59685
 
  friend class ::WinTypeKeywords;
 
72881
  friend class ::ExtGnu;
59686
72882
  friend class ::PragmaOnceUnitState;
59687
72883
  friend class ::PragmaOnce;
59688
 
  friend class ::CCExprResolve;
59689
 
  friend class ::CExprResolve;
 
72884
  friend class ::CMatchSyntax;
59690
72885
 
59691
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72886
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59692
72887
 
59693
72888
  CTree *sons[3]; // export, param_list, decl
59694
72889
 
59695
72890
public:
 
72891
  /** Constructor.
 
72892
   *  \param e Optional 'export' keyword. 
 
72893
   *  \param p The template parameter list.
 
72894
   *  \param d The class or function declaration. */
59696
72895
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
59697
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
72896
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
59698
72897
  }
 
72898
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59699
72899
  static const char *NodeId ();
 
72900
  /** Get the name of the node. Can be compared with NodeId(). */
59700
72901
  const char *NodeName () const { return NodeId (); }
 
72902
  /** Get the number of sons. */
59701
72903
  int Sons () const { return CTree::Sons (sons, 3); }
 
72904
  /** Get the n-th son.
 
72905
   *  \param n The index of the son.
 
72906
   *  \return The n-th son or NULL. */
59702
72907
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
72908
  /** Replace a son.
 
72909
   *  \param old_son The son to replace.
 
72910
   *  \param new_son The new son. */
59703
72911
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59704
72912
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
59705
72913
  }
 
72914
  /** Get the 'export' keyword. */
59706
72915
  CTree *Export () const { return sons[0]; }
 
72916
  /** Get the template parameter list. */
59707
72917
  CT_TemplateParamList *Parameters () const { 
59708
72918
    return (CT_TemplateParamList*)sons[1]; 
59709
72919
  }
 
72920
  /** Get the class or function declaration. */
59710
72921
  CTree *Declaration () const { return sons[2]; }
 
72922
  /** Get the semantic scope object. */
 
72923
  CSemScope *SemScope () const { return (CSemScope*)this; }
59711
72924
};
59712
72925
 
 
72926
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
72927
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
59713
72928
 
59714
 
#line 59715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72929
#line 72930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59715
72930
} // closed Puma
 
72931
class CCExprResolve;
 
72932
class CExprResolve;
59716
72933
class WinIfExists;
59717
72934
class WinImportHandler;
59718
72935
class WinMacros;
59719
 
class CMatchSyntax;
59720
 
class ExtGnu;
 
72936
class WinAsm;
 
72937
class WinDeclSpecs;
 
72938
class WinMemberExplSpec;
 
72939
class WinTypeKeywords;
 
72940
class WinFriend;
59721
72941
class ExtAC;
59722
72942
class ExtACBuilderCoupling;
59723
72943
class ExtACSyntaxCoupling;
59724
72944
class ExtACTree;
59725
72945
class ExtACKeywords;
59726
 
class WinAsm;
59727
 
class WinDeclSpecs;
59728
 
class WinMemberExplSpec;
59729
 
class WinTypeKeywords;
 
72946
class ExtGnu;
59730
72947
class PragmaOnceUnitState;
59731
72948
class PragmaOnce;
59732
 
class CCExprResolve;
59733
 
class CExprResolve;
 
72949
class CMatchSyntax;
59734
72950
namespace Puma {
59735
72951
 
59736
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72952
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59737
72953
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
59738
 
#line 59739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72954
#line 72955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
72955
  friend class ::CCExprResolve;
 
72956
  friend class ::CExprResolve;
59739
72957
  friend class ::WinIfExists;
59740
72958
  friend class ::WinImportHandler;
59741
72959
  friend class ::WinMacros;
59742
 
  friend class ::CMatchSyntax;
59743
 
  friend class ::ExtGnu;
 
72960
  friend class ::WinAsm;
 
72961
  friend class ::WinDeclSpecs;
 
72962
  friend class ::WinMemberExplSpec;
 
72963
  friend class ::WinTypeKeywords;
 
72964
  friend class ::WinFriend;
59744
72965
  friend class ::ExtAC;
59745
72966
  friend class ::ExtACBuilderCoupling;
59746
72967
  friend class ::ExtACSyntaxCoupling;
59747
72968
  friend class ::ExtACTree;
59748
72969
  friend class ::ExtACKeywords;
59749
 
  friend class ::WinAsm;
59750
 
  friend class ::WinDeclSpecs;
59751
 
  friend class ::WinMemberExplSpec;
59752
 
  friend class ::WinTypeKeywords;
 
72970
  friend class ::ExtGnu;
59753
72971
  friend class ::PragmaOnceUnitState;
59754
72972
  friend class ::PragmaOnce;
59755
 
  friend class ::CCExprResolve;
59756
 
  friend class ::CExprResolve;
 
72973
  friend class ::CMatchSyntax;
59757
72974
 
59758
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72975
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59759
72976
 
59760
72977
protected:
 
72978
  /** Constructor. */
59761
72979
  CT_TemplateParamDecl () {}
59762
72980
  
59763
72981
public:
 
72982
  /** Get the template default argument. */
59764
72983
  virtual CT_ExprList *DefaultArgument () const = 0;
 
72984
  /** Get the semantic information object. */
59765
72985
  CSemObject *SemObject () const { return (CSemObject*)this; }
59766
72986
};
59767
72987
 
59768
72988
 
59769
 
#line 59770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
72989
#line 72990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59770
72990
} // closed Puma
 
72991
class CCExprResolve;
 
72992
class CExprResolve;
59771
72993
class WinIfExists;
59772
72994
class WinImportHandler;
59773
72995
class WinMacros;
59774
 
class CMatchSyntax;
59775
 
class ExtGnu;
 
72996
class WinAsm;
 
72997
class WinDeclSpecs;
 
72998
class WinMemberExplSpec;
 
72999
class WinTypeKeywords;
 
73000
class WinFriend;
59776
73001
class ExtAC;
59777
73002
class ExtACBuilderCoupling;
59778
73003
class ExtACSyntaxCoupling;
59779
73004
class ExtACTree;
59780
73005
class ExtACKeywords;
59781
 
class WinAsm;
59782
 
class WinDeclSpecs;
59783
 
class WinMemberExplSpec;
59784
 
class WinTypeKeywords;
 
73006
class ExtGnu;
59785
73007
class PragmaOnceUnitState;
59786
73008
class PragmaOnce;
59787
 
class CCExprResolve;
59788
 
class CExprResolve;
 
73009
class CMatchSyntax;
59789
73010
namespace Puma {
59790
73011
 
59791
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73012
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59792
73013
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
59793
 
#line 59794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73014
#line 73015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73015
  friend class ::CCExprResolve;
 
73016
  friend class ::CExprResolve;
59794
73017
  friend class ::WinIfExists;
59795
73018
  friend class ::WinImportHandler;
59796
73019
  friend class ::WinMacros;
59797
 
  friend class ::CMatchSyntax;
59798
 
  friend class ::ExtGnu;
 
73020
  friend class ::WinAsm;
 
73021
  friend class ::WinDeclSpecs;
 
73022
  friend class ::WinMemberExplSpec;
 
73023
  friend class ::WinTypeKeywords;
 
73024
  friend class ::WinFriend;
59799
73025
  friend class ::ExtAC;
59800
73026
  friend class ::ExtACBuilderCoupling;
59801
73027
  friend class ::ExtACSyntaxCoupling;
59802
73028
  friend class ::ExtACTree;
59803
73029
  friend class ::ExtACKeywords;
59804
 
  friend class ::WinAsm;
59805
 
  friend class ::WinDeclSpecs;
59806
 
  friend class ::WinMemberExplSpec;
59807
 
  friend class ::WinTypeKeywords;
 
73030
  friend class ::ExtGnu;
59808
73031
  friend class ::PragmaOnceUnitState;
59809
73032
  friend class ::PragmaOnce;
59810
 
  friend class ::CCExprResolve;
59811
 
  friend class ::CExprResolve;
 
73033
  friend class ::CMatchSyntax;
59812
73034
 
59813
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73035
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59814
73036
 
59815
73037
  CTree *sons[3]; // declspecs, declarator, init
59816
73038
 
59817
73039
public:
59818
73040
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
59819
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
73041
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
59820
73042
  }
 
73043
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59821
73044
  static const char *NodeId ();
 
73045
  /** Get the name of the node. Can be compared with NodeId(). */
59822
73046
  const char *NodeName () const { return NodeId (); }
 
73047
  /** Get the number of sons. */
59823
73048
  int Sons () const { return CTree::Sons (sons, 3); }
 
73049
  /** Get the n-th son.
 
73050
   *  \param n The index of the son.
 
73051
   *  \return The n-th son or NULL. */
59824
73052
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
59825
73053
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
59826
73054
  CTree *Declarator () const { return sons[1]; }
59827
73055
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
59828
73056
  CSemObject *SemObject () const { return (CSemObject*)this; }
59829
 
  void Initializer (CTree *i) { sons[2] = i; }
 
73057
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
73058
  /** Replace a son.
 
73059
   *  \param old_son The son to replace.
 
73060
   *  \param new_son The new son. */
59830
73061
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59831
73062
    CTree::ReplaceSon (sons, 3, old_son, new_son);
59832
73063
  }
59833
73064
};
59834
73065
 
59835
73066
 
59836
 
#line 59837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73067
#line 73068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59837
73068
} // closed Puma
 
73069
class CCExprResolve;
 
73070
class CExprResolve;
59838
73071
class WinIfExists;
59839
73072
class WinImportHandler;
59840
73073
class WinMacros;
59841
 
class CMatchSyntax;
59842
 
class ExtGnu;
 
73074
class WinAsm;
 
73075
class WinDeclSpecs;
 
73076
class WinMemberExplSpec;
 
73077
class WinTypeKeywords;
 
73078
class WinFriend;
59843
73079
class ExtAC;
59844
73080
class ExtACBuilderCoupling;
59845
73081
class ExtACSyntaxCoupling;
59846
73082
class ExtACTree;
59847
73083
class ExtACKeywords;
59848
 
class WinAsm;
59849
 
class WinDeclSpecs;
59850
 
class WinMemberExplSpec;
59851
 
class WinTypeKeywords;
 
73084
class ExtGnu;
59852
73085
class PragmaOnceUnitState;
59853
73086
class PragmaOnce;
59854
 
class CCExprResolve;
59855
 
class CExprResolve;
 
73087
class CMatchSyntax;
59856
73088
namespace Puma {
59857
73089
 
59858
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73090
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59859
73091
class CT_TypeParamDecl : public CT_TemplateParamDecl {
59860
 
#line 59861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73092
#line 73093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73093
  friend class ::CCExprResolve;
 
73094
  friend class ::CExprResolve;
59861
73095
  friend class ::WinIfExists;
59862
73096
  friend class ::WinImportHandler;
59863
73097
  friend class ::WinMacros;
59864
 
  friend class ::CMatchSyntax;
59865
 
  friend class ::ExtGnu;
 
73098
  friend class ::WinAsm;
 
73099
  friend class ::WinDeclSpecs;
 
73100
  friend class ::WinMemberExplSpec;
 
73101
  friend class ::WinTypeKeywords;
 
73102
  friend class ::WinFriend;
59866
73103
  friend class ::ExtAC;
59867
73104
  friend class ::ExtACBuilderCoupling;
59868
73105
  friend class ::ExtACSyntaxCoupling;
59869
73106
  friend class ::ExtACTree;
59870
73107
  friend class ::ExtACKeywords;
59871
 
  friend class ::WinAsm;
59872
 
  friend class ::WinDeclSpecs;
59873
 
  friend class ::WinMemberExplSpec;
59874
 
  friend class ::WinTypeKeywords;
 
73108
  friend class ::ExtGnu;
59875
73109
  friend class ::PragmaOnceUnitState;
59876
73110
  friend class ::PragmaOnce;
59877
 
  friend class ::CCExprResolve;
59878
 
  friend class ::CExprResolve;
 
73111
  friend class ::CMatchSyntax;
59879
73112
 
59880
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73113
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59881
73114
 
59882
73115
  CTree *sons[4]; // params, key, id, init
59883
73116
 
59884
73117
public:
59885
73118
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
59886
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
73119
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
73120
    AddSon (sons[2], id); AddSon (sons[3], i);
59887
73121
  }
 
73122
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59888
73123
  static const char *NodeId ();
 
73124
  /** Get the name of the node. Can be compared with NodeId(). */
59889
73125
  const char *NodeName () const { return NodeId (); }
 
73126
  /** Get the number of sons. */
59890
73127
  int Sons () const { return CTree::Sons (sons, 4); }
 
73128
  /** Get the n-th son.
 
73129
   *  \param n The index of the son.
 
73130
   *  \return The n-th son or NULL. */
59891
73131
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
59892
73132
  CT_TemplateParamList *Parameters () const { 
59893
73133
    return (CT_TemplateParamList*)sons[0]; 
59894
73134
  }
59895
73135
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
59896
73136
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
59897
 
  void Initializer (CTree *i) { sons[3] = i; }
 
73137
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
73138
  /** Replace a son.
 
73139
   *  \param old_son The son to replace.
 
73140
   *  \param new_son The new son. */
59898
73141
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59899
73142
    CTree::ReplaceSon (sons, 4, old_son, new_son);
59900
73143
  }
59901
73144
};
59902
73145
 
59903
73146
 
59904
 
#line 59905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73147
#line 73148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59905
73148
} // closed Puma
 
73149
class CCExprResolve;
 
73150
class CExprResolve;
59906
73151
class WinIfExists;
59907
73152
class WinImportHandler;
59908
73153
class WinMacros;
59909
 
class CMatchSyntax;
59910
 
class ExtGnu;
 
73154
class WinAsm;
 
73155
class WinDeclSpecs;
 
73156
class WinMemberExplSpec;
 
73157
class WinTypeKeywords;
 
73158
class WinFriend;
59911
73159
class ExtAC;
59912
73160
class ExtACBuilderCoupling;
59913
73161
class ExtACSyntaxCoupling;
59914
73162
class ExtACTree;
59915
73163
class ExtACKeywords;
59916
 
class WinAsm;
59917
 
class WinDeclSpecs;
59918
 
class WinMemberExplSpec;
59919
 
class WinTypeKeywords;
 
73164
class ExtGnu;
59920
73165
class PragmaOnceUnitState;
59921
73166
class PragmaOnce;
59922
 
class CCExprResolve;
59923
 
class CExprResolve;
 
73167
class CMatchSyntax;
59924
73168
namespace Puma {
59925
73169
 
59926
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73170
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59927
73171
class CT_EnumDef : public CT_Decl, public CSemObject {
59928
 
#line 59929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73172
#line 73173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73173
  friend class ::CCExprResolve;
 
73174
  friend class ::CExprResolve;
59929
73175
  friend class ::WinIfExists;
59930
73176
  friend class ::WinImportHandler;
59931
73177
  friend class ::WinMacros;
59932
 
  friend class ::CMatchSyntax;
59933
 
  friend class ::ExtGnu;
 
73178
  friend class ::WinAsm;
 
73179
  friend class ::WinDeclSpecs;
 
73180
  friend class ::WinMemberExplSpec;
 
73181
  friend class ::WinTypeKeywords;
 
73182
  friend class ::WinFriend;
59934
73183
  friend class ::ExtAC;
59935
73184
  friend class ::ExtACBuilderCoupling;
59936
73185
  friend class ::ExtACSyntaxCoupling;
59937
73186
  friend class ::ExtACTree;
59938
73187
  friend class ::ExtACKeywords;
59939
 
  friend class ::WinAsm;
59940
 
  friend class ::WinDeclSpecs;
59941
 
  friend class ::WinMemberExplSpec;
59942
 
  friend class ::WinTypeKeywords;
 
73188
  friend class ::ExtGnu;
59943
73189
  friend class ::PragmaOnceUnitState;
59944
73190
  friend class ::PragmaOnce;
59945
 
  friend class ::CCExprResolve;
59946
 
  friend class ::CExprResolve;
 
73191
  friend class ::CMatchSyntax;
59947
73192
 
59948
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73193
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59949
73194
 
59950
73195
  CTree *sons[3]; // key, name, enumerators
59951
73196
 
59952
73197
public:
59953
73198
  CT_EnumDef (CTree *k, CTree *n) {
59954
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
73199
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
59955
73200
  }
 
73201
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59956
73202
  static const char *NodeId ();
 
73203
  /** Get the name of the node. Can be compared with NodeId(). */
59957
73204
  const char *NodeName () const { return NodeId (); }
 
73205
  /** Get the number of sons. */
59958
73206
  int Sons () const { return CTree::Sons (sons, 3); }
 
73207
  /** Get the n-th son.
 
73208
   *  \param n The index of the son.
 
73209
   *  \return The n-th son or NULL. */
59959
73210
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
59960
73211
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
59961
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
73212
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
59962
73213
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
73214
  /** Replace a son.
 
73215
   *  \param old_son The son to replace.
 
73216
   *  \param new_son The new son. */
59963
73217
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59964
73218
    CTree::ReplaceSon (sons, 3, old_son, new_son);
59965
73219
  }
59967
73221
};
59968
73222
 
59969
73223
 
59970
 
#line 59971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73224
#line 73225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
59971
73225
} // closed Puma
 
73226
class CCExprResolve;
 
73227
class CExprResolve;
59972
73228
class WinIfExists;
59973
73229
class WinImportHandler;
59974
73230
class WinMacros;
59975
 
class CMatchSyntax;
59976
 
class ExtGnu;
 
73231
class WinAsm;
 
73232
class WinDeclSpecs;
 
73233
class WinMemberExplSpec;
 
73234
class WinTypeKeywords;
 
73235
class WinFriend;
59977
73236
class ExtAC;
59978
73237
class ExtACBuilderCoupling;
59979
73238
class ExtACSyntaxCoupling;
59980
73239
class ExtACTree;
59981
73240
class ExtACKeywords;
59982
 
class WinAsm;
59983
 
class WinDeclSpecs;
59984
 
class WinMemberExplSpec;
59985
 
class WinTypeKeywords;
 
73241
class ExtGnu;
59986
73242
class PragmaOnceUnitState;
59987
73243
class PragmaOnce;
59988
 
class CCExprResolve;
59989
 
class CExprResolve;
 
73244
class CMatchSyntax;
59990
73245
namespace Puma {
59991
73246
 
59992
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73247
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59993
73248
class CT_Enumerator : public CT_Decl, public CSemObject {
59994
 
#line 59995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73249
#line 73250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73250
  friend class ::CCExprResolve;
 
73251
  friend class ::CExprResolve;
59995
73252
  friend class ::WinIfExists;
59996
73253
  friend class ::WinImportHandler;
59997
73254
  friend class ::WinMacros;
59998
 
  friend class ::CMatchSyntax;
59999
 
  friend class ::ExtGnu;
 
73255
  friend class ::WinAsm;
 
73256
  friend class ::WinDeclSpecs;
 
73257
  friend class ::WinMemberExplSpec;
 
73258
  friend class ::WinTypeKeywords;
 
73259
  friend class ::WinFriend;
60000
73260
  friend class ::ExtAC;
60001
73261
  friend class ::ExtACBuilderCoupling;
60002
73262
  friend class ::ExtACSyntaxCoupling;
60003
73263
  friend class ::ExtACTree;
60004
73264
  friend class ::ExtACKeywords;
60005
 
  friend class ::WinAsm;
60006
 
  friend class ::WinDeclSpecs;
60007
 
  friend class ::WinMemberExplSpec;
60008
 
  friend class ::WinTypeKeywords;
 
73265
  friend class ::ExtGnu;
60009
73266
  friend class ::PragmaOnceUnitState;
60010
73267
  friend class ::PragmaOnce;
60011
 
  friend class ::CCExprResolve;
60012
 
  friend class ::CExprResolve;
 
73268
  friend class ::CMatchSyntax;
60013
73269
 
60014
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73270
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60015
73271
 
60016
73272
  CTree *sons[2]; // name, init
60017
73273
 
60018
73274
public:
60019
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
73275
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
73276
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60020
73277
  static const char *NodeId ();
 
73278
  /** Get the name of the node. Can be compared with NodeId(). */
60021
73279
  const char *NodeName () const { return NodeId (); }
 
73280
  /** Get the number of sons. */
60022
73281
  int Sons () const { return CTree::Sons (sons, 2); }
 
73282
  /** Get the n-th son.
 
73283
   *  \param n The index of the son.
 
73284
   *  \return The n-th son or NULL. */
60023
73285
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
60024
73286
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
60025
 
  void Initializer (CTree *i) { sons[1] = i; }
 
73287
  void Initializer (CTree *i) { AddSon (sons[1], i); }
60026
73288
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
73289
  /** Replace a son.
 
73290
   *  \param old_son The son to replace.
 
73291
   *  \param new_son The new son. */
60027
73292
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60028
73293
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
60029
73294
  }
60031
73296
};
60032
73297
 
60033
73298
 
60034
 
#line 60035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73299
#line 73300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60035
73300
} // closed Puma
 
73301
class CCExprResolve;
 
73302
class CExprResolve;
60036
73303
class WinIfExists;
60037
73304
class WinImportHandler;
60038
73305
class WinMacros;
60039
 
class CMatchSyntax;
60040
 
class ExtGnu;
 
73306
class WinAsm;
 
73307
class WinDeclSpecs;
 
73308
class WinMemberExplSpec;
 
73309
class WinTypeKeywords;
 
73310
class WinFriend;
60041
73311
class ExtAC;
60042
73312
class ExtACBuilderCoupling;
60043
73313
class ExtACSyntaxCoupling;
60044
73314
class ExtACTree;
60045
73315
class ExtACKeywords;
60046
 
class WinAsm;
60047
 
class WinDeclSpecs;
60048
 
class WinMemberExplSpec;
60049
 
class WinTypeKeywords;
 
73316
class ExtGnu;
60050
73317
class PragmaOnceUnitState;
60051
73318
class PragmaOnce;
60052
 
class CCExprResolve;
60053
 
class CExprResolve;
 
73319
class CMatchSyntax;
60054
73320
namespace Puma {
60055
73321
 
60056
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73322
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60057
73323
class CT_FctDef : public CT_Decl, public CSemObject {
60058
 
#line 60059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73324
#line 73325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73325
  friend class ::CCExprResolve;
 
73326
  friend class ::CExprResolve;
60059
73327
  friend class ::WinIfExists;
60060
73328
  friend class ::WinImportHandler;
60061
73329
  friend class ::WinMacros;
60062
 
  friend class ::CMatchSyntax;
60063
 
  friend class ::ExtGnu;
 
73330
  friend class ::WinAsm;
 
73331
  friend class ::WinDeclSpecs;
 
73332
  friend class ::WinMemberExplSpec;
 
73333
  friend class ::WinTypeKeywords;
 
73334
  friend class ::WinFriend;
60064
73335
  friend class ::ExtAC;
60065
73336
  friend class ::ExtACBuilderCoupling;
60066
73337
  friend class ::ExtACSyntaxCoupling;
60067
73338
  friend class ::ExtACTree;
60068
73339
  friend class ::ExtACKeywords;
60069
 
  friend class ::WinAsm;
60070
 
  friend class ::WinDeclSpecs;
60071
 
  friend class ::WinMemberExplSpec;
60072
 
  friend class ::WinTypeKeywords;
 
73340
  friend class ::ExtGnu;
60073
73341
  friend class ::PragmaOnceUnitState;
60074
73342
  friend class ::PragmaOnce;
60075
 
  friend class ::CCExprResolve;
60076
 
  friend class ::CExprResolve;
 
73343
  friend class ::CMatchSyntax;
60077
73344
 
60078
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73345
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60079
73346
 
60080
73347
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
60081
73348
 
60082
73349
public:
60083
73350
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
60084
73351
             CTree *b, CTree *hs) {
60085
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
60086
 
    sons[5] = b; sons[6] = hs; 
 
73352
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
73353
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
73354
    AddSon (sons[6], hs); 
60087
73355
  }
 
73356
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60088
73357
  static const char *NodeId ();
 
73358
  /** Get the name of the node. Can be compared with NodeId(). */
60089
73359
  const char *NodeName () const { return NodeId (); }
 
73360
  /** Get the number of sons. */
60090
73361
  int Sons () const { return CTree::Sons (sons, 7); }
 
73362
  /** Get the n-th son.
 
73363
   *  \param n The index of the son.
 
73364
   *  \return The n-th son or NULL. */
60091
73365
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
60092
73366
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
60093
73367
  CTree *Declarator () const { return sons[1]; }
60097
73371
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
60098
73372
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
60099
73373
  CSemObject *SemObject () const { return (CSemObject*)this; }
60100
 
  void CtorInit (CTree *i) { sons[3] = i; }
60101
 
  void Body (CTree *b) { sons[5] = b; }
 
73374
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
73375
  void Body (CTree *b) { AddSon (sons[5], b); }
60102
73376
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
60103
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
73377
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
73378
    AddSon (sons[5], b); AddSon (sons[6], h);
60104
73379
  }
 
73380
  /** Replace a son.
 
73381
   *  \param old_son The son to replace.
 
73382
   *  \param new_son The new son. */
60105
73383
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60106
73384
    CTree::ReplaceSon (sons, 7, old_son, new_son);
60107
73385
  }
60108
73386
};
60109
73387
 
60110
73388
 
60111
 
#line 60112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73389
#line 73390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60112
73390
} // closed Puma
 
73391
class CCExprResolve;
 
73392
class CExprResolve;
60113
73393
class WinIfExists;
60114
73394
class WinImportHandler;
60115
73395
class WinMacros;
60116
 
class CMatchSyntax;
60117
 
class ExtGnu;
 
73396
class WinAsm;
 
73397
class WinDeclSpecs;
 
73398
class WinMemberExplSpec;
 
73399
class WinTypeKeywords;
 
73400
class WinFriend;
60118
73401
class ExtAC;
60119
73402
class ExtACBuilderCoupling;
60120
73403
class ExtACSyntaxCoupling;
60121
73404
class ExtACTree;
60122
73405
class ExtACKeywords;
60123
 
class WinAsm;
60124
 
class WinDeclSpecs;
60125
 
class WinMemberExplSpec;
60126
 
class WinTypeKeywords;
 
73406
class ExtGnu;
60127
73407
class PragmaOnceUnitState;
60128
73408
class PragmaOnce;
60129
 
class CCExprResolve;
60130
 
class CExprResolve;
 
73409
class CMatchSyntax;
60131
73410
namespace Puma {
60132
73411
 
60133
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73412
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60134
73413
class CT_AsmDef : public CT_Decl {
60135
 
#line 60136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73414
#line 73415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73415
  friend class ::CCExprResolve;
 
73416
  friend class ::CExprResolve;
60136
73417
  friend class ::WinIfExists;
60137
73418
  friend class ::WinImportHandler;
60138
73419
  friend class ::WinMacros;
60139
 
  friend class ::CMatchSyntax;
60140
 
  friend class ::ExtGnu;
 
73420
  friend class ::WinAsm;
 
73421
  friend class ::WinDeclSpecs;
 
73422
  friend class ::WinMemberExplSpec;
 
73423
  friend class ::WinTypeKeywords;
 
73424
  friend class ::WinFriend;
60141
73425
  friend class ::ExtAC;
60142
73426
  friend class ::ExtACBuilderCoupling;
60143
73427
  friend class ::ExtACSyntaxCoupling;
60144
73428
  friend class ::ExtACTree;
60145
73429
  friend class ::ExtACKeywords;
60146
 
  friend class ::WinAsm;
60147
 
  friend class ::WinDeclSpecs;
60148
 
  friend class ::WinMemberExplSpec;
60149
 
  friend class ::WinTypeKeywords;
 
73430
  friend class ::ExtGnu;
60150
73431
  friend class ::PragmaOnceUnitState;
60151
73432
  friend class ::PragmaOnce;
60152
 
  friend class ::CCExprResolve;
60153
 
  friend class ::CExprResolve;
 
73433
  friend class ::CMatchSyntax;
60154
73434
 
60155
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73435
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60156
73436
 
60157
73437
  CTree *sons[5]; // asm, open, str, close, semi_colon
60158
73438
 
60159
73439
public:
60160
73440
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
60161
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
73441
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
73442
    AddSon (sons[3], c); AddSon (sons[4], sc); 
60162
73443
  }
 
73444
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60163
73445
  static const char *NodeId ();
 
73446
  /** Get the name of the node. Can be compared with NodeId(). */
60164
73447
  const char *NodeName () const { return NodeId (); }
 
73448
  /** Get the number of sons. */
60165
73449
  int Sons () const { return 5; }
 
73450
  /** Get the n-th son.
 
73451
   *  \param n The index of the son.
 
73452
   *  \return The n-th son or NULL. */
60166
73453
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
60167
73454
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
73455
  /** Replace a son.
 
73456
   *  \param old_son The son to replace.
 
73457
   *  \param new_son The new son. */
60168
73458
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60169
73459
    CTree::ReplaceSon (sons, 5, old_son, new_son);
60170
73460
  }
60171
73461
};
60172
73462
 
60173
73463
 
60174
 
#line 60175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73464
#line 73465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60175
73465
} // closed Puma
 
73466
class CCExprResolve;
 
73467
class CExprResolve;
60176
73468
class WinIfExists;
60177
73469
class WinImportHandler;
60178
73470
class WinMacros;
60179
 
class CMatchSyntax;
60180
 
class ExtGnu;
 
73471
class WinAsm;
 
73472
class WinDeclSpecs;
 
73473
class WinMemberExplSpec;
 
73474
class WinTypeKeywords;
 
73475
class WinFriend;
60181
73476
class ExtAC;
60182
73477
class ExtACBuilderCoupling;
60183
73478
class ExtACSyntaxCoupling;
60184
73479
class ExtACTree;
60185
73480
class ExtACKeywords;
60186
 
class WinAsm;
60187
 
class WinDeclSpecs;
60188
 
class WinMemberExplSpec;
60189
 
class WinTypeKeywords;
 
73481
class ExtGnu;
60190
73482
class PragmaOnceUnitState;
60191
73483
class PragmaOnce;
60192
 
class CCExprResolve;
60193
 
class CExprResolve;
 
73484
class CMatchSyntax;
60194
73485
namespace Puma {
60195
73486
 
60196
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73487
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60197
73488
class CT_Handler : public CT_Decl, public CSemScope {
60198
 
#line 60199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73489
#line 73490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73490
  friend class ::CCExprResolve;
 
73491
  friend class ::CExprResolve;
60199
73492
  friend class ::WinIfExists;
60200
73493
  friend class ::WinImportHandler;
60201
73494
  friend class ::WinMacros;
60202
 
  friend class ::CMatchSyntax;
60203
 
  friend class ::ExtGnu;
 
73495
  friend class ::WinAsm;
 
73496
  friend class ::WinDeclSpecs;
 
73497
  friend class ::WinMemberExplSpec;
 
73498
  friend class ::WinTypeKeywords;
 
73499
  friend class ::WinFriend;
60204
73500
  friend class ::ExtAC;
60205
73501
  friend class ::ExtACBuilderCoupling;
60206
73502
  friend class ::ExtACSyntaxCoupling;
60207
73503
  friend class ::ExtACTree;
60208
73504
  friend class ::ExtACKeywords;
60209
 
  friend class ::WinAsm;
60210
 
  friend class ::WinDeclSpecs;
60211
 
  friend class ::WinMemberExplSpec;
60212
 
  friend class ::WinTypeKeywords;
 
73505
  friend class ::ExtGnu;
60213
73506
  friend class ::PragmaOnceUnitState;
60214
73507
  friend class ::PragmaOnce;
60215
 
  friend class ::CCExprResolve;
60216
 
  friend class ::CExprResolve;
 
73508
  friend class ::CMatchSyntax;
60217
73509
 
60218
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73510
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60219
73511
 
60220
73512
  CTree *sons[3]; // catch, exception_decl, stmt
60221
73513
 
60222
73514
public:
60223
73515
  CT_Handler (CTree *c, CTree *e, CTree *s) {
60224
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
73516
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
60225
73517
  }
 
73518
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60226
73519
  static const char *NodeId ();
 
73520
  /** Get the name of the node. Can be compared with NodeId(). */
60227
73521
  const char *NodeName () const { return NodeId (); }
 
73522
  /** Get the number of sons. */
60228
73523
  int Sons () const { return 3; }
 
73524
  /** Get the n-th son.
 
73525
   *  \param n The index of the son.
 
73526
   *  \return The n-th son or NULL. */
60229
73527
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60230
73528
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
60231
73529
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
73530
  /** Replace a son.
 
73531
   *  \param old_son The son to replace.
 
73532
   *  \param new_son The new son. */
60232
73533
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60233
73534
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60234
73535
  }
 
73536
  CSemScope *SemScope () const { return (CSemScope*)this; }
60235
73537
};
60236
73538
 
60237
73539
 
60238
 
#line 60239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73540
#line 73541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60239
73541
} // closed Puma
 
73542
class CCExprResolve;
 
73543
class CExprResolve;
60240
73544
class WinIfExists;
60241
73545
class WinImportHandler;
60242
73546
class WinMacros;
60243
 
class CMatchSyntax;
60244
 
class ExtGnu;
 
73547
class WinAsm;
 
73548
class WinDeclSpecs;
 
73549
class WinMemberExplSpec;
 
73550
class WinTypeKeywords;
 
73551
class WinFriend;
60245
73552
class ExtAC;
60246
73553
class ExtACBuilderCoupling;
60247
73554
class ExtACSyntaxCoupling;
60248
73555
class ExtACTree;
60249
73556
class ExtACKeywords;
60250
 
class WinAsm;
60251
 
class WinDeclSpecs;
60252
 
class WinMemberExplSpec;
60253
 
class WinTypeKeywords;
 
73557
class ExtGnu;
60254
73558
class PragmaOnceUnitState;
60255
73559
class PragmaOnce;
60256
 
class CCExprResolve;
60257
 
class CExprResolve;
 
73560
class CMatchSyntax;
60258
73561
namespace Puma {
60259
73562
 
60260
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73563
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60261
73564
class CT_LinkageSpec : public CT_Decl {
60262
 
#line 60263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73565
#line 73566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73566
  friend class ::CCExprResolve;
 
73567
  friend class ::CExprResolve;
60263
73568
  friend class ::WinIfExists;
60264
73569
  friend class ::WinImportHandler;
60265
73570
  friend class ::WinMacros;
60266
 
  friend class ::CMatchSyntax;
60267
 
  friend class ::ExtGnu;
 
73571
  friend class ::WinAsm;
 
73572
  friend class ::WinDeclSpecs;
 
73573
  friend class ::WinMemberExplSpec;
 
73574
  friend class ::WinTypeKeywords;
 
73575
  friend class ::WinFriend;
60268
73576
  friend class ::ExtAC;
60269
73577
  friend class ::ExtACBuilderCoupling;
60270
73578
  friend class ::ExtACSyntaxCoupling;
60271
73579
  friend class ::ExtACTree;
60272
73580
  friend class ::ExtACKeywords;
60273
 
  friend class ::WinAsm;
60274
 
  friend class ::WinDeclSpecs;
60275
 
  friend class ::WinMemberExplSpec;
60276
 
  friend class ::WinTypeKeywords;
 
73581
  friend class ::ExtGnu;
60277
73582
  friend class ::PragmaOnceUnitState;
60278
73583
  friend class ::PragmaOnce;
60279
 
  friend class ::CCExprResolve;
60280
 
  friend class ::CExprResolve;
 
73584
  friend class ::CMatchSyntax;
60281
73585
 
60282
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73586
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60283
73587
 
60284
73588
  CTree *sons[5]; // extern, str, open, decls, close
60285
73589
 
60286
73590
public:
60287
73591
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
60288
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
73592
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
73593
    AddSon (sons[3], d); AddSon (sons[4], c);
60289
73594
    if (isList ())
60290
73595
      ((CT_DeclList*)Decls ())->Linkage (this);
60291
73596
    else
60292
73597
      ((CT_Decl*)Decls ())->Linkage (this);
60293
73598
  }
 
73599
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60294
73600
  static const char *NodeId ();
 
73601
  /** Get the name of the node. Can be compared with NodeId(). */
60295
73602
  const char *NodeName () const { return NodeId (); }
 
73603
  /** Get the number of sons. */
60296
73604
  int Sons () const { return CTree::Sons (sons, 5); }
 
73605
  /** Get the n-th son.
 
73606
   *  \param n The index of the son.
 
73607
   *  \return The n-th son or NULL. */
60297
73608
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
60298
73609
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
60299
73610
  CTree *Decls () const { return sons[3]; }
60300
73611
  bool isList () const {
60301
73612
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
60302
73613
  }
 
73614
  /** Replace a son.
 
73615
   *  \param old_son The son to replace.
 
73616
   *  \param new_son The new son. */
60303
73617
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60304
73618
    CTree::ReplaceSon (sons, 5, old_son, new_son);
60305
73619
  }
60306
73620
};
60307
73621
 
60308
73622
 
60309
 
#line 60310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73623
#line 73624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60310
73624
} // closed Puma
 
73625
class CCExprResolve;
 
73626
class CExprResolve;
60311
73627
class WinIfExists;
60312
73628
class WinImportHandler;
60313
73629
class WinMacros;
60314
 
class CMatchSyntax;
60315
 
class ExtGnu;
 
73630
class WinAsm;
 
73631
class WinDeclSpecs;
 
73632
class WinMemberExplSpec;
 
73633
class WinTypeKeywords;
 
73634
class WinFriend;
60316
73635
class ExtAC;
60317
73636
class ExtACBuilderCoupling;
60318
73637
class ExtACSyntaxCoupling;
60319
73638
class ExtACTree;
60320
73639
class ExtACKeywords;
60321
 
class WinAsm;
60322
 
class WinDeclSpecs;
60323
 
class WinMemberExplSpec;
60324
 
class WinTypeKeywords;
 
73640
class ExtGnu;
60325
73641
class PragmaOnceUnitState;
60326
73642
class PragmaOnce;
60327
 
class CCExprResolve;
60328
 
class CExprResolve;
 
73643
class CMatchSyntax;
60329
73644
namespace Puma {
60330
73645
 
60331
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73646
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60332
73647
class CT_ArgDecl : public CT_Decl, public CSemObject {
60333
 
#line 60334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73648
#line 73649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73649
  friend class ::CCExprResolve;
 
73650
  friend class ::CExprResolve;
60334
73651
  friend class ::WinIfExists;
60335
73652
  friend class ::WinImportHandler;
60336
73653
  friend class ::WinMacros;
60337
 
  friend class ::CMatchSyntax;
60338
 
  friend class ::ExtGnu;
 
73654
  friend class ::WinAsm;
 
73655
  friend class ::WinDeclSpecs;
 
73656
  friend class ::WinMemberExplSpec;
 
73657
  friend class ::WinTypeKeywords;
 
73658
  friend class ::WinFriend;
60339
73659
  friend class ::ExtAC;
60340
73660
  friend class ::ExtACBuilderCoupling;
60341
73661
  friend class ::ExtACSyntaxCoupling;
60342
73662
  friend class ::ExtACTree;
60343
73663
  friend class ::ExtACKeywords;
60344
 
  friend class ::WinAsm;
60345
 
  friend class ::WinDeclSpecs;
60346
 
  friend class ::WinMemberExplSpec;
60347
 
  friend class ::WinTypeKeywords;
 
73664
  friend class ::ExtGnu;
60348
73665
  friend class ::PragmaOnceUnitState;
60349
73666
  friend class ::PragmaOnce;
60350
 
  friend class ::CCExprResolve;
60351
 
  friend class ::CExprResolve;
 
73667
  friend class ::CMatchSyntax;
60352
73668
 
60353
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73669
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60354
73670
 
60355
73671
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
60356
73672
 
60357
73673
public:
60358
73674
  CT_ArgDecl (CTree *dsl, CTree *d) {
60359
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
73675
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
73676
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
60360
73677
  }
60361
73678
  CT_ArgDecl (CTree *ellipsis) {
60362
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
73679
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
73680
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
60363
73681
  }
 
73682
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60364
73683
  static const char *NodeId ();
 
73684
  /** Get the name of the node. Can be compared with NodeId(). */
60365
73685
  const char *NodeName () const { return NodeId (); }
 
73686
  /** Get the number of sons. */
60366
73687
  int Sons () const { return CTree::Sons (sons, 4); }
 
73688
  /** Get the n-th son.
 
73689
   *  \param n The index of the son.
 
73690
   *  \return The n-th son or NULL. */
60367
73691
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60368
73692
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
60369
73693
  CTree *Declarator () const { return sons[1]; }
60370
73694
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
60371
73695
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
60372
73696
  CSemObject *SemObject () const { return (CSemObject*)this; }
60373
 
  void Initializer (CTree *i) { sons[2] = i; }
 
73697
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
73698
  /** Replace a son.
 
73699
   *  \param old_son The son to replace.
 
73700
   *  \param new_son The new son. */
60374
73701
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60375
73702
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60376
73703
  }
60377
73704
};
60378
73705
 
60379
73706
 
60380
 
#line 60381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73707
#line 73708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60381
73708
} // closed Puma
 
73709
class CCExprResolve;
 
73710
class CExprResolve;
60382
73711
class WinIfExists;
60383
73712
class WinImportHandler;
60384
73713
class WinMacros;
60385
 
class CMatchSyntax;
60386
 
class ExtGnu;
 
73714
class WinAsm;
 
73715
class WinDeclSpecs;
 
73716
class WinMemberExplSpec;
 
73717
class WinTypeKeywords;
 
73718
class WinFriend;
60387
73719
class ExtAC;
60388
73720
class ExtACBuilderCoupling;
60389
73721
class ExtACSyntaxCoupling;
60390
73722
class ExtACTree;
60391
73723
class ExtACKeywords;
60392
 
class WinAsm;
60393
 
class WinDeclSpecs;
60394
 
class WinMemberExplSpec;
60395
 
class WinTypeKeywords;
 
73724
class ExtGnu;
60396
73725
class PragmaOnceUnitState;
60397
73726
class PragmaOnce;
60398
 
class CCExprResolve;
60399
 
class CExprResolve;
 
73727
class CMatchSyntax;
60400
73728
namespace Puma {
60401
73729
 
60402
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73730
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60403
73731
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
60404
 
#line 60405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73732
#line 73733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73733
  friend class ::CCExprResolve;
 
73734
  friend class ::CExprResolve;
60405
73735
  friend class ::WinIfExists;
60406
73736
  friend class ::WinImportHandler;
60407
73737
  friend class ::WinMacros;
60408
 
  friend class ::CMatchSyntax;
60409
 
  friend class ::ExtGnu;
 
73738
  friend class ::WinAsm;
 
73739
  friend class ::WinDeclSpecs;
 
73740
  friend class ::WinMemberExplSpec;
 
73741
  friend class ::WinTypeKeywords;
 
73742
  friend class ::WinFriend;
60410
73743
  friend class ::ExtAC;
60411
73744
  friend class ::ExtACBuilderCoupling;
60412
73745
  friend class ::ExtACSyntaxCoupling;
60413
73746
  friend class ::ExtACTree;
60414
73747
  friend class ::ExtACKeywords;
60415
 
  friend class ::WinAsm;
60416
 
  friend class ::WinDeclSpecs;
60417
 
  friend class ::WinMemberExplSpec;
60418
 
  friend class ::WinTypeKeywords;
 
73748
  friend class ::ExtGnu;
60419
73749
  friend class ::PragmaOnceUnitState;
60420
73750
  friend class ::PragmaOnce;
60421
 
  friend class ::CCExprResolve;
60422
 
  friend class ::CExprResolve;
 
73751
  friend class ::CMatchSyntax;
60423
73752
 
60424
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73753
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60425
73754
 
60426
73755
public:
60427
73756
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
60428
73757
   CT_DeclList (size, 2) { AddProperties (props); }
 
73758
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60429
73759
  static const char *NodeId ();
 
73760
  /** Get the name of the node. Can be compared with NodeId(). */
60430
73761
  const char *NodeName () const { return NodeId (); }
 
73762
  CSemScope *SemScope () const { return (CSemScope*)this; }
60431
73763
};
60432
73764
 
60433
73765
 
60434
 
#line 60435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73766
#line 73767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60435
73767
} // closed Puma
 
73768
class CCExprResolve;
 
73769
class CExprResolve;
60436
73770
class WinIfExists;
60437
73771
class WinImportHandler;
60438
73772
class WinMacros;
60439
 
class CMatchSyntax;
60440
 
class ExtGnu;
 
73773
class WinAsm;
 
73774
class WinDeclSpecs;
 
73775
class WinMemberExplSpec;
 
73776
class WinTypeKeywords;
 
73777
class WinFriend;
60441
73778
class ExtAC;
60442
73779
class ExtACBuilderCoupling;
60443
73780
class ExtACSyntaxCoupling;
60444
73781
class ExtACTree;
60445
73782
class ExtACKeywords;
60446
 
class WinAsm;
60447
 
class WinDeclSpecs;
60448
 
class WinMemberExplSpec;
60449
 
class WinTypeKeywords;
 
73783
class ExtGnu;
60450
73784
class PragmaOnceUnitState;
60451
73785
class PragmaOnce;
60452
 
class CCExprResolve;
60453
 
class CExprResolve;
 
73786
class CMatchSyntax;
60454
73787
namespace Puma {
60455
73788
 
60456
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73789
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60457
73790
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
60458
 
#line 60459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73791
#line 73792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73792
  friend class ::CCExprResolve;
 
73793
  friend class ::CExprResolve;
60459
73794
  friend class ::WinIfExists;
60460
73795
  friend class ::WinImportHandler;
60461
73796
  friend class ::WinMacros;
60462
 
  friend class ::CMatchSyntax;
60463
 
  friend class ::ExtGnu;
 
73797
  friend class ::WinAsm;
 
73798
  friend class ::WinDeclSpecs;
 
73799
  friend class ::WinMemberExplSpec;
 
73800
  friend class ::WinTypeKeywords;
 
73801
  friend class ::WinFriend;
60464
73802
  friend class ::ExtAC;
60465
73803
  friend class ::ExtACBuilderCoupling;
60466
73804
  friend class ::ExtACSyntaxCoupling;
60467
73805
  friend class ::ExtACTree;
60468
73806
  friend class ::ExtACKeywords;
60469
 
  friend class ::WinAsm;
60470
 
  friend class ::WinDeclSpecs;
60471
 
  friend class ::WinMemberExplSpec;
60472
 
  friend class ::WinTypeKeywords;
 
73807
  friend class ::ExtGnu;
60473
73808
  friend class ::PragmaOnceUnitState;
60474
73809
  friend class ::PragmaOnce;
60475
 
  friend class ::CCExprResolve;
60476
 
  friend class ::CExprResolve;
 
73810
  friend class ::CMatchSyntax;
60477
73811
 
60478
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73812
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60479
73813
 
60480
73814
public:
60481
73815
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
73816
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60482
73817
  static const char *NodeId ();
 
73818
  /** Get the name of the node. Can be compared with NodeId(). */
60483
73819
  const char *NodeName () const { return NodeId (); }
 
73820
  CSemScope *SemScope () const { return (CSemScope*)this; }
60484
73821
};
60485
73822
 
60486
73823
 
60487
 
#line 60488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73824
#line 73825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60488
73825
} // closed Puma
 
73826
class CCExprResolve;
 
73827
class CExprResolve;
60489
73828
class WinIfExists;
60490
73829
class WinImportHandler;
60491
73830
class WinMacros;
60492
 
class CMatchSyntax;
60493
 
class ExtGnu;
 
73831
class WinAsm;
 
73832
class WinDeclSpecs;
 
73833
class WinMemberExplSpec;
 
73834
class WinTypeKeywords;
 
73835
class WinFriend;
60494
73836
class ExtAC;
60495
73837
class ExtACBuilderCoupling;
60496
73838
class ExtACSyntaxCoupling;
60497
73839
class ExtACTree;
60498
73840
class ExtACKeywords;
60499
 
class WinAsm;
60500
 
class WinDeclSpecs;
60501
 
class WinMemberExplSpec;
60502
 
class WinTypeKeywords;
 
73841
class ExtGnu;
60503
73842
class PragmaOnceUnitState;
60504
73843
class PragmaOnce;
60505
 
class CCExprResolve;
60506
 
class CExprResolve;
 
73844
class CMatchSyntax;
60507
73845
namespace Puma {
60508
73846
 
60509
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73847
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60510
73848
class CT_ArgNameList : public CT_ArgDeclList {
60511
 
#line 60512 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73849
#line 73850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73850
  friend class ::CCExprResolve;
 
73851
  friend class ::CExprResolve;
60512
73852
  friend class ::WinIfExists;
60513
73853
  friend class ::WinImportHandler;
60514
73854
  friend class ::WinMacros;
60515
 
  friend class ::CMatchSyntax;
60516
 
  friend class ::ExtGnu;
 
73855
  friend class ::WinAsm;
 
73856
  friend class ::WinDeclSpecs;
 
73857
  friend class ::WinMemberExplSpec;
 
73858
  friend class ::WinTypeKeywords;
 
73859
  friend class ::WinFriend;
60517
73860
  friend class ::ExtAC;
60518
73861
  friend class ::ExtACBuilderCoupling;
60519
73862
  friend class ::ExtACSyntaxCoupling;
60520
73863
  friend class ::ExtACTree;
60521
73864
  friend class ::ExtACKeywords;
60522
 
  friend class ::WinAsm;
60523
 
  friend class ::WinDeclSpecs;
60524
 
  friend class ::WinMemberExplSpec;
60525
 
  friend class ::WinTypeKeywords;
 
73865
  friend class ::ExtGnu;
60526
73866
  friend class ::PragmaOnceUnitState;
60527
73867
  friend class ::PragmaOnce;
60528
 
  friend class ::CCExprResolve;
60529
 
  friend class ::CExprResolve;
 
73868
  friend class ::CMatchSyntax;
60530
73869
 
60531
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73870
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60532
73871
 
60533
73872
public:
60534
73873
  CT_ArgNameList () : CT_ArgDeclList () {}
 
73874
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60535
73875
  static const char *NodeId ();
 
73876
  /** Get the name of the node. Can be compared with NodeId(). */
60536
73877
  const char *NodeName () const { return NodeId (); }
60537
73878
};
60538
73879
 
60539
73880
 
60540
 
#line 60541 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73881
#line 73882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60541
73882
} // closed Puma
 
73883
class CCExprResolve;
 
73884
class CExprResolve;
60542
73885
class WinIfExists;
60543
73886
class WinImportHandler;
60544
73887
class WinMacros;
60545
 
class CMatchSyntax;
60546
 
class ExtGnu;
 
73888
class WinAsm;
 
73889
class WinDeclSpecs;
 
73890
class WinMemberExplSpec;
 
73891
class WinTypeKeywords;
 
73892
class WinFriend;
60547
73893
class ExtAC;
60548
73894
class ExtACBuilderCoupling;
60549
73895
class ExtACSyntaxCoupling;
60550
73896
class ExtACTree;
60551
73897
class ExtACKeywords;
60552
 
class WinAsm;
60553
 
class WinDeclSpecs;
60554
 
class WinMemberExplSpec;
60555
 
class WinTypeKeywords;
 
73898
class ExtGnu;
60556
73899
class PragmaOnceUnitState;
60557
73900
class PragmaOnce;
60558
 
class CCExprResolve;
60559
 
class CExprResolve;
 
73901
class CMatchSyntax;
60560
73902
namespace Puma {
60561
73903
 
60562
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73904
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60563
73905
class CT_NamespaceDef : public CT_Decl, public CSemObject {
60564
 
#line 60565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73906
#line 73907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73907
  friend class ::CCExprResolve;
 
73908
  friend class ::CExprResolve;
60565
73909
  friend class ::WinIfExists;
60566
73910
  friend class ::WinImportHandler;
60567
73911
  friend class ::WinMacros;
60568
 
  friend class ::CMatchSyntax;
60569
 
  friend class ::ExtGnu;
 
73912
  friend class ::WinAsm;
 
73913
  friend class ::WinDeclSpecs;
 
73914
  friend class ::WinMemberExplSpec;
 
73915
  friend class ::WinTypeKeywords;
 
73916
  friend class ::WinFriend;
60570
73917
  friend class ::ExtAC;
60571
73918
  friend class ::ExtACBuilderCoupling;
60572
73919
  friend class ::ExtACSyntaxCoupling;
60573
73920
  friend class ::ExtACTree;
60574
73921
  friend class ::ExtACKeywords;
60575
 
  friend class ::WinAsm;
60576
 
  friend class ::WinDeclSpecs;
60577
 
  friend class ::WinMemberExplSpec;
60578
 
  friend class ::WinTypeKeywords;
 
73922
  friend class ::ExtGnu;
60579
73923
  friend class ::PragmaOnceUnitState;
60580
73924
  friend class ::PragmaOnce;
60581
 
  friend class ::CCExprResolve;
60582
 
  friend class ::CExprResolve;
 
73925
  friend class ::CMatchSyntax;
60583
73926
 
60584
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73927
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60585
73928
 
60586
73929
  CTree *sons[3]; // ns, name, members
60587
73930
 
60588
73931
public:
60589
73932
  CT_NamespaceDef (CTree *n, CTree *nm) {
60590
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
73933
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
60591
73934
  }
60592
73935
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
60593
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
73936
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
60594
73937
  }
 
73938
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60595
73939
  static const char *NodeId ();
 
73940
  /** Get the name of the node. Can be compared with NodeId(). */
60596
73941
  const char *NodeName () const { return NodeId (); }
 
73942
  /** Get the number of sons. */
60597
73943
  int Sons () const { return CTree::Sons (sons, 3); }
 
73944
  /** Get the n-th son.
 
73945
   *  \param n The index of the son.
 
73946
   *  \return The n-th son or NULL. */
60598
73947
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60599
 
  void Members (CTree *m) { sons[2] = m; }
 
73948
  void Members (CTree *m) { AddSon (sons[2], m); }
60600
73949
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
60601
73950
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
60602
73951
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
73952
  /** Replace a son.
 
73953
   *  \param old_son The son to replace.
 
73954
   *  \param new_son The new son. */
60603
73955
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60604
73956
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60605
73957
  }
60606
73958
};
60607
73959
 
60608
73960
 
60609
 
#line 60610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73961
#line 73962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60610
73962
} // closed Puma
 
73963
class CCExprResolve;
 
73964
class CExprResolve;
60611
73965
class WinIfExists;
60612
73966
class WinImportHandler;
60613
73967
class WinMacros;
60614
 
class CMatchSyntax;
60615
 
class ExtGnu;
 
73968
class WinAsm;
 
73969
class WinDeclSpecs;
 
73970
class WinMemberExplSpec;
 
73971
class WinTypeKeywords;
 
73972
class WinFriend;
60616
73973
class ExtAC;
60617
73974
class ExtACBuilderCoupling;
60618
73975
class ExtACSyntaxCoupling;
60619
73976
class ExtACTree;
60620
73977
class ExtACKeywords;
60621
 
class WinAsm;
60622
 
class WinDeclSpecs;
60623
 
class WinMemberExplSpec;
60624
 
class WinTypeKeywords;
 
73978
class ExtGnu;
60625
73979
class PragmaOnceUnitState;
60626
73980
class PragmaOnce;
60627
 
class CCExprResolve;
60628
 
class CExprResolve;
 
73981
class CMatchSyntax;
60629
73982
namespace Puma {
60630
73983
 
60631
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73984
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60632
73985
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
60633
 
#line 60634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
73986
#line 73987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
73987
  friend class ::CCExprResolve;
 
73988
  friend class ::CExprResolve;
60634
73989
  friend class ::WinIfExists;
60635
73990
  friend class ::WinImportHandler;
60636
73991
  friend class ::WinMacros;
60637
 
  friend class ::CMatchSyntax;
60638
 
  friend class ::ExtGnu;
 
73992
  friend class ::WinAsm;
 
73993
  friend class ::WinDeclSpecs;
 
73994
  friend class ::WinMemberExplSpec;
 
73995
  friend class ::WinTypeKeywords;
 
73996
  friend class ::WinFriend;
60639
73997
  friend class ::ExtAC;
60640
73998
  friend class ::ExtACBuilderCoupling;
60641
73999
  friend class ::ExtACSyntaxCoupling;
60642
74000
  friend class ::ExtACTree;
60643
74001
  friend class ::ExtACKeywords;
60644
 
  friend class ::WinAsm;
60645
 
  friend class ::WinDeclSpecs;
60646
 
  friend class ::WinMemberExplSpec;
60647
 
  friend class ::WinTypeKeywords;
 
74002
  friend class ::ExtGnu;
60648
74003
  friend class ::PragmaOnceUnitState;
60649
74004
  friend class ::PragmaOnce;
60650
 
  friend class ::CCExprResolve;
60651
 
  friend class ::CExprResolve;
 
74005
  friend class ::CMatchSyntax;
60652
74006
 
60653
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74007
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60654
74008
 
60655
74009
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
60656
74010
 
60657
74011
public:
60658
74012
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
60659
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
74013
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
74014
    AddSon (sons[3], nm); AddSon (sons[4], s); 
60660
74015
  }
 
74016
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60661
74017
  static const char *NodeId ();
 
74018
  /** Get the name of the node. Can be compared with NodeId(). */
60662
74019
  const char *NodeName () const { return NodeId (); }
 
74020
  /** Get the number of sons. */
60663
74021
  int Sons () const { return 5; }
 
74022
  /** Get the n-th son.
 
74023
   *  \param n The index of the son.
 
74024
   *  \return The n-th son or NULL. */
60664
74025
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
60665
74026
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
60666
74027
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
60667
74028
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
74029
  /** Replace a son.
 
74030
   *  \param old_son The son to replace.
 
74031
   *  \param new_son The new son. */
60668
74032
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60669
74033
    CTree::ReplaceSon (sons, 5, old_son, new_son);
60670
74034
  }
60671
74035
};
60672
74036
 
60673
74037
 
60674
 
#line 60675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74038
#line 74039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60675
74039
} // closed Puma
 
74040
class CCExprResolve;
 
74041
class CExprResolve;
60676
74042
class WinIfExists;
60677
74043
class WinImportHandler;
60678
74044
class WinMacros;
60679
 
class CMatchSyntax;
60680
 
class ExtGnu;
 
74045
class WinAsm;
 
74046
class WinDeclSpecs;
 
74047
class WinMemberExplSpec;
 
74048
class WinTypeKeywords;
 
74049
class WinFriend;
60681
74050
class ExtAC;
60682
74051
class ExtACBuilderCoupling;
60683
74052
class ExtACSyntaxCoupling;
60684
74053
class ExtACTree;
60685
74054
class ExtACKeywords;
60686
 
class WinAsm;
60687
 
class WinDeclSpecs;
60688
 
class WinMemberExplSpec;
60689
 
class WinTypeKeywords;
 
74055
class ExtGnu;
60690
74056
class PragmaOnceUnitState;
60691
74057
class PragmaOnce;
60692
 
class CCExprResolve;
60693
 
class CExprResolve;
 
74058
class CMatchSyntax;
60694
74059
namespace Puma {
60695
74060
 
60696
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74061
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60697
74062
class CT_UsingDirective : public CT_Decl {
60698
 
#line 60699 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74063
#line 74064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74064
  friend class ::CCExprResolve;
 
74065
  friend class ::CExprResolve;
60699
74066
  friend class ::WinIfExists;
60700
74067
  friend class ::WinImportHandler;
60701
74068
  friend class ::WinMacros;
60702
 
  friend class ::CMatchSyntax;
60703
 
  friend class ::ExtGnu;
 
74069
  friend class ::WinAsm;
 
74070
  friend class ::WinDeclSpecs;
 
74071
  friend class ::WinMemberExplSpec;
 
74072
  friend class ::WinTypeKeywords;
 
74073
  friend class ::WinFriend;
60704
74074
  friend class ::ExtAC;
60705
74075
  friend class ::ExtACBuilderCoupling;
60706
74076
  friend class ::ExtACSyntaxCoupling;
60707
74077
  friend class ::ExtACTree;
60708
74078
  friend class ::ExtACKeywords;
60709
 
  friend class ::WinAsm;
60710
 
  friend class ::WinDeclSpecs;
60711
 
  friend class ::WinMemberExplSpec;
60712
 
  friend class ::WinTypeKeywords;
 
74079
  friend class ::ExtGnu;
60713
74080
  friend class ::PragmaOnceUnitState;
60714
74081
  friend class ::PragmaOnce;
60715
 
  friend class ::CCExprResolve;
60716
 
  friend class ::CExprResolve;
 
74082
  friend class ::CMatchSyntax;
60717
74083
 
60718
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74084
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60719
74085
 
60720
74086
  CTree *sons[4]; // using, ns, name, semi_colon
60721
74087
 
60722
74088
public:
60723
74089
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
60724
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
74090
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
74091
    AddSon (sons[3], s); 
60725
74092
  }
 
74093
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60726
74094
  static const char *NodeId ();
 
74095
  /** Get the name of the node. Can be compared with NodeId(). */
60727
74096
  const char *NodeName () const { return NodeId (); }
 
74097
  /** Get the number of sons. */
60728
74098
  int Sons () const { return 4; }
 
74099
  /** Get the n-th son.
 
74100
   *  \param n The index of the son.
 
74101
   *  \return The n-th son or NULL. */
60729
74102
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60730
74103
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
74104
  /** Replace a son.
 
74105
   *  \param old_son The son to replace.
 
74106
   *  \param new_son The new son. */
60731
74107
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60732
74108
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60733
74109
  }
60740
74116
/*****************************************************************************/
60741
74117
 
60742
74118
 
60743
 
#line 60744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74119
#line 74120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60744
74120
} // closed Puma
 
74121
class CCExprResolve;
 
74122
class CExprResolve;
60745
74123
class WinIfExists;
60746
74124
class WinImportHandler;
60747
74125
class WinMacros;
60748
 
class CMatchSyntax;
60749
 
class ExtGnu;
 
74126
class WinAsm;
 
74127
class WinDeclSpecs;
 
74128
class WinMemberExplSpec;
 
74129
class WinTypeKeywords;
 
74130
class WinFriend;
60750
74131
class ExtAC;
60751
74132
class ExtACBuilderCoupling;
60752
74133
class ExtACSyntaxCoupling;
60753
74134
class ExtACTree;
60754
74135
class ExtACKeywords;
60755
 
class WinAsm;
60756
 
class WinDeclSpecs;
60757
 
class WinMemberExplSpec;
60758
 
class WinTypeKeywords;
 
74136
class ExtGnu;
60759
74137
class PragmaOnceUnitState;
60760
74138
class PragmaOnce;
60761
 
class CCExprResolve;
60762
 
class CExprResolve;
 
74139
class CMatchSyntax;
60763
74140
namespace Puma {
60764
74141
 
60765
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74142
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60766
74143
class CT_Declarator : public CTree {
60767
 
#line 60768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74144
#line 74145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74145
  friend class ::CCExprResolve;
 
74146
  friend class ::CExprResolve;
60768
74147
  friend class ::WinIfExists;
60769
74148
  friend class ::WinImportHandler;
60770
74149
  friend class ::WinMacros;
60771
 
  friend class ::CMatchSyntax;
60772
 
  friend class ::ExtGnu;
 
74150
  friend class ::WinAsm;
 
74151
  friend class ::WinDeclSpecs;
 
74152
  friend class ::WinMemberExplSpec;
 
74153
  friend class ::WinTypeKeywords;
 
74154
  friend class ::WinFriend;
60773
74155
  friend class ::ExtAC;
60774
74156
  friend class ::ExtACBuilderCoupling;
60775
74157
  friend class ::ExtACSyntaxCoupling;
60776
74158
  friend class ::ExtACTree;
60777
74159
  friend class ::ExtACKeywords;
60778
 
  friend class ::WinAsm;
60779
 
  friend class ::WinDeclSpecs;
60780
 
  friend class ::WinMemberExplSpec;
60781
 
  friend class ::WinTypeKeywords;
 
74160
  friend class ::ExtGnu;
60782
74161
  friend class ::PragmaOnceUnitState;
60783
74162
  friend class ::PragmaOnce;
60784
 
  friend class ::CCExprResolve;
60785
 
  friend class ::CExprResolve;
 
74163
  friend class ::CMatchSyntax;
60786
74164
 
60787
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74165
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60788
74166
 
60789
74167
protected:
60790
74168
  CT_Declarator () {}
60799
74177
};
60800
74178
 
60801
74179
 
60802
 
#line 60803 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74180
#line 74181 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60803
74181
} // closed Puma
 
74182
class CCExprResolve;
 
74183
class CExprResolve;
60804
74184
class WinIfExists;
60805
74185
class WinImportHandler;
60806
74186
class WinMacros;
60807
 
class CMatchSyntax;
60808
 
class ExtGnu;
 
74187
class WinAsm;
 
74188
class WinDeclSpecs;
 
74189
class WinMemberExplSpec;
 
74190
class WinTypeKeywords;
 
74191
class WinFriend;
60809
74192
class ExtAC;
60810
74193
class ExtACBuilderCoupling;
60811
74194
class ExtACSyntaxCoupling;
60812
74195
class ExtACTree;
60813
74196
class ExtACKeywords;
60814
 
class WinAsm;
60815
 
class WinDeclSpecs;
60816
 
class WinMemberExplSpec;
60817
 
class WinTypeKeywords;
 
74197
class ExtGnu;
60818
74198
class PragmaOnceUnitState;
60819
74199
class PragmaOnce;
60820
 
class CCExprResolve;
60821
 
class CExprResolve;
 
74200
class CMatchSyntax;
60822
74201
namespace Puma {
60823
74202
 
60824
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74203
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60825
74204
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
60826
 
#line 60827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74205
#line 74206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74206
  friend class ::CCExprResolve;
 
74207
  friend class ::CExprResolve;
60827
74208
  friend class ::WinIfExists;
60828
74209
  friend class ::WinImportHandler;
60829
74210
  friend class ::WinMacros;
60830
 
  friend class ::CMatchSyntax;
60831
 
  friend class ::ExtGnu;
 
74211
  friend class ::WinAsm;
 
74212
  friend class ::WinDeclSpecs;
 
74213
  friend class ::WinMemberExplSpec;
 
74214
  friend class ::WinTypeKeywords;
 
74215
  friend class ::WinFriend;
60832
74216
  friend class ::ExtAC;
60833
74217
  friend class ::ExtACBuilderCoupling;
60834
74218
  friend class ::ExtACSyntaxCoupling;
60835
74219
  friend class ::ExtACTree;
60836
74220
  friend class ::ExtACKeywords;
60837
 
  friend class ::WinAsm;
60838
 
  friend class ::WinDeclSpecs;
60839
 
  friend class ::WinMemberExplSpec;
60840
 
  friend class ::WinTypeKeywords;
 
74221
  friend class ::ExtGnu;
60841
74222
  friend class ::PragmaOnceUnitState;
60842
74223
  friend class ::PragmaOnce;
60843
 
  friend class ::CCExprResolve;
60844
 
  friend class ::CExprResolve;
60845
 
 
60846
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60847
 
 
60848
 
  CTree *sons[2]; // declarator, init
 
74224
  friend class ::CMatchSyntax;
 
74225
 
 
74226
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74227
 
 
74228
  CTree *sons[3]; // declarator, ext, init
60849
74229
  CTree *obj_decl;
60850
74230
 
60851
74231
public:
60852
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
60853
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
74232
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
74233
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
74234
    AddSon (obj_decl, 0); 
60854
74235
  }
 
74236
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60855
74237
  static const char *NodeId ();
 
74238
  /** Get the name of the node. Can be compared with NodeId(). */
60856
74239
  const char *NodeName () const { return NodeId (); }
60857
 
  int Sons () const { return CTree::Sons (sons, 2); }
60858
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
74240
  /** Get the number of sons. */
 
74241
  int Sons () const { return CTree::Sons (sons, 3); }
 
74242
  /** Get the n-th son.
 
74243
   *  \param n The index of the son.
 
74244
   *  \return The n-th son or NULL. */
 
74245
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60859
74246
  CTree *Declarator () const { return sons[0]; }
60860
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
74247
  CTree *Extension () const { return sons[1]; }
 
74248
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
60861
74249
  CSemObject *SemObject () const { return (CSemObject*)this; }
60862
74250
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
60863
 
  void Initializer (CTree* i) { sons[1] = i; }
60864
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
74251
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
74252
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
74253
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
74254
  /** Replace a son.
 
74255
   *  \param old_son The son to replace.
 
74256
   *  \param new_son The new son. */
60865
74257
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60866
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
74258
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60867
74259
  }
60868
74260
};
60869
74261
 
60870
74262
 
60871
 
#line 60872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74263
#line 74264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60872
74264
} // closed Puma
 
74265
class CCExprResolve;
 
74266
class CExprResolve;
60873
74267
class WinIfExists;
60874
74268
class WinImportHandler;
60875
74269
class WinMacros;
60876
 
class CMatchSyntax;
60877
 
class ExtGnu;
 
74270
class WinAsm;
 
74271
class WinDeclSpecs;
 
74272
class WinMemberExplSpec;
 
74273
class WinTypeKeywords;
 
74274
class WinFriend;
60878
74275
class ExtAC;
60879
74276
class ExtACBuilderCoupling;
60880
74277
class ExtACSyntaxCoupling;
60881
74278
class ExtACTree;
60882
74279
class ExtACKeywords;
60883
 
class WinAsm;
60884
 
class WinDeclSpecs;
60885
 
class WinMemberExplSpec;
60886
 
class WinTypeKeywords;
 
74280
class ExtGnu;
60887
74281
class PragmaOnceUnitState;
60888
74282
class PragmaOnce;
60889
 
class CCExprResolve;
60890
 
class CExprResolve;
 
74283
class CMatchSyntax;
60891
74284
namespace Puma {
60892
74285
 
60893
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74286
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60894
74287
class CT_BracedDeclarator : public CT_Declarator {
60895
 
#line 60896 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74288
#line 74289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74289
  friend class ::CCExprResolve;
 
74290
  friend class ::CExprResolve;
60896
74291
  friend class ::WinIfExists;
60897
74292
  friend class ::WinImportHandler;
60898
74293
  friend class ::WinMacros;
60899
 
  friend class ::CMatchSyntax;
60900
 
  friend class ::ExtGnu;
 
74294
  friend class ::WinAsm;
 
74295
  friend class ::WinDeclSpecs;
 
74296
  friend class ::WinMemberExplSpec;
 
74297
  friend class ::WinTypeKeywords;
 
74298
  friend class ::WinFriend;
60901
74299
  friend class ::ExtAC;
60902
74300
  friend class ::ExtACBuilderCoupling;
60903
74301
  friend class ::ExtACSyntaxCoupling;
60904
74302
  friend class ::ExtACTree;
60905
74303
  friend class ::ExtACKeywords;
60906
 
  friend class ::WinAsm;
60907
 
  friend class ::WinDeclSpecs;
60908
 
  friend class ::WinMemberExplSpec;
60909
 
  friend class ::WinTypeKeywords;
 
74304
  friend class ::ExtGnu;
60910
74305
  friend class ::PragmaOnceUnitState;
60911
74306
  friend class ::PragmaOnce;
60912
 
  friend class ::CCExprResolve;
60913
 
  friend class ::CExprResolve;
 
74307
  friend class ::CMatchSyntax;
60914
74308
 
60915
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74309
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60916
74310
 
60917
74311
  CTree *sons[4]; // open, win_specs, declarator, close
60918
74312
 
60919
74313
public:
60920
74314
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
60921
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
74315
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
74316
    AddSon (sons[2], d); AddSon (sons[3], c); 
60922
74317
  }
60923
74318
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
60924
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
74319
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
74320
    AddSon (sons[2], d); AddSon (sons[3], c); 
60925
74321
  }
 
74322
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60926
74323
  static const char *NodeId ();
 
74324
  /** Get the name of the node. Can be compared with NodeId(). */
60927
74325
  const char *NodeName () const { return NodeId (); }
 
74326
  /** Get the number of sons. */
60928
74327
  int Sons () const { return CTree::Sons (sons, 4); }
 
74328
  /** Get the n-th son.
 
74329
   *  \param n The index of the son.
 
74330
   *  \return The n-th son or NULL. */
60929
74331
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60930
74332
  CTree *Declarator () const { return sons[2]; }
 
74333
  /** Replace a son.
 
74334
   *  \param old_son The son to replace.
 
74335
   *  \param new_son The new son. */
60931
74336
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60932
74337
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60933
74338
  }
60934
74339
};
60935
74340
 
60936
74341
 
60937
 
#line 60938 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74342
#line 74343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
60938
74343
} // closed Puma
 
74344
class CCExprResolve;
 
74345
class CExprResolve;
60939
74346
class WinIfExists;
60940
74347
class WinImportHandler;
60941
74348
class WinMacros;
60942
 
class CMatchSyntax;
60943
 
class ExtGnu;
 
74349
class WinAsm;
 
74350
class WinDeclSpecs;
 
74351
class WinMemberExplSpec;
 
74352
class WinTypeKeywords;
 
74353
class WinFriend;
60944
74354
class ExtAC;
60945
74355
class ExtACBuilderCoupling;
60946
74356
class ExtACSyntaxCoupling;
60947
74357
class ExtACTree;
60948
74358
class ExtACKeywords;
60949
 
class WinAsm;
60950
 
class WinDeclSpecs;
60951
 
class WinMemberExplSpec;
60952
 
class WinTypeKeywords;
 
74359
class ExtGnu;
60953
74360
class PragmaOnceUnitState;
60954
74361
class PragmaOnce;
60955
 
class CCExprResolve;
60956
 
class CExprResolve;
 
74362
class CMatchSyntax;
60957
74363
namespace Puma {
60958
74364
 
60959
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74365
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60960
74366
class CT_ArrayDelimiter : public CTree {
60961
 
#line 60962 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74367
#line 74368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74368
  friend class ::CCExprResolve;
 
74369
  friend class ::CExprResolve;
60962
74370
  friend class ::WinIfExists;
60963
74371
  friend class ::WinImportHandler;
60964
74372
  friend class ::WinMacros;
60965
 
  friend class ::CMatchSyntax;
60966
 
  friend class ::ExtGnu;
 
74373
  friend class ::WinAsm;
 
74374
  friend class ::WinDeclSpecs;
 
74375
  friend class ::WinMemberExplSpec;
 
74376
  friend class ::WinTypeKeywords;
 
74377
  friend class ::WinFriend;
60967
74378
  friend class ::ExtAC;
60968
74379
  friend class ::ExtACBuilderCoupling;
60969
74380
  friend class ::ExtACSyntaxCoupling;
60970
74381
  friend class ::ExtACTree;
60971
74382
  friend class ::ExtACKeywords;
60972
 
  friend class ::WinAsm;
60973
 
  friend class ::WinDeclSpecs;
60974
 
  friend class ::WinMemberExplSpec;
60975
 
  friend class ::WinTypeKeywords;
 
74383
  friend class ::ExtGnu;
60976
74384
  friend class ::PragmaOnceUnitState;
60977
74385
  friend class ::PragmaOnce;
60978
 
  friend class ::CCExprResolve;
60979
 
  friend class ::CExprResolve;
 
74386
  friend class ::CMatchSyntax;
60980
74387
 
60981
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74388
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60982
74389
 
60983
74390
  CTree *sons[4]; // star, static, quals, expr
60984
74391
  bool pos0;
60985
74392
 
60986
74393
public:
60987
74394
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
60988
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
74395
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
74396
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
60989
74397
  }
 
74398
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60990
74399
  static const char *NodeId ();
 
74400
  /** Get the name of the node. Can be compared with NodeId(). */
60991
74401
  const char *NodeName () const { return NodeId (); }
 
74402
  /** Get the number of sons. */
60992
74403
  int Sons () const { return CTree::Sons (sons, 4); }
 
74404
  /** Get the n-th son.
 
74405
   *  \param n The index of the son.
 
74406
   *  \return The n-th son or NULL. */
60993
74407
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60994
74408
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
60995
74409
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
60996
74410
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
60997
74411
  CTree *Expr () const { return sons[3]; }
 
74412
  /** Replace a son.
 
74413
   *  \param old_son The son to replace.
 
74414
   *  \param new_son The new son. */
60998
74415
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60999
74416
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61000
74417
  }
61001
74418
};
61002
74419
 
61003
74420
 
61004
 
#line 61005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74421
#line 74422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61005
74422
} // closed Puma
 
74423
class CCExprResolve;
 
74424
class CExprResolve;
61006
74425
class WinIfExists;
61007
74426
class WinImportHandler;
61008
74427
class WinMacros;
61009
 
class CMatchSyntax;
61010
 
class ExtGnu;
 
74428
class WinAsm;
 
74429
class WinDeclSpecs;
 
74430
class WinMemberExplSpec;
 
74431
class WinTypeKeywords;
 
74432
class WinFriend;
61011
74433
class ExtAC;
61012
74434
class ExtACBuilderCoupling;
61013
74435
class ExtACSyntaxCoupling;
61014
74436
class ExtACTree;
61015
74437
class ExtACKeywords;
61016
 
class WinAsm;
61017
 
class WinDeclSpecs;
61018
 
class WinMemberExplSpec;
61019
 
class WinTypeKeywords;
 
74438
class ExtGnu;
61020
74439
class PragmaOnceUnitState;
61021
74440
class PragmaOnce;
61022
 
class CCExprResolve;
61023
 
class CExprResolve;
 
74441
class CMatchSyntax;
61024
74442
namespace Puma {
61025
74443
 
61026
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74444
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61027
74445
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
61028
 
#line 61029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74446
#line 74447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74447
  friend class ::CCExprResolve;
 
74448
  friend class ::CExprResolve;
61029
74449
  friend class ::WinIfExists;
61030
74450
  friend class ::WinImportHandler;
61031
74451
  friend class ::WinMacros;
61032
 
  friend class ::CMatchSyntax;
61033
 
  friend class ::ExtGnu;
 
74452
  friend class ::WinAsm;
 
74453
  friend class ::WinDeclSpecs;
 
74454
  friend class ::WinMemberExplSpec;
 
74455
  friend class ::WinTypeKeywords;
 
74456
  friend class ::WinFriend;
61034
74457
  friend class ::ExtAC;
61035
74458
  friend class ::ExtACBuilderCoupling;
61036
74459
  friend class ::ExtACSyntaxCoupling;
61037
74460
  friend class ::ExtACTree;
61038
74461
  friend class ::ExtACKeywords;
61039
 
  friend class ::WinAsm;
61040
 
  friend class ::WinDeclSpecs;
61041
 
  friend class ::WinMemberExplSpec;
61042
 
  friend class ::WinTypeKeywords;
 
74462
  friend class ::ExtGnu;
61043
74463
  friend class ::PragmaOnceUnitState;
61044
74464
  friend class ::PragmaOnce;
61045
 
  friend class ::CCExprResolve;
61046
 
  friend class ::CExprResolve;
 
74465
  friend class ::CMatchSyntax;
61047
74466
 
61048
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74467
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61049
74468
 
61050
74469
  CTree *sons[4]; // declarator, open, delim, close
61051
74470
 
61052
74471
public:
61053
74472
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
61054
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
74473
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
74474
    AddSon (sons[2], ad); AddSon (sons[3], c); 
61055
74475
  }
 
74476
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61056
74477
  static const char *NodeId ();
 
74478
  /** Get the name of the node. Can be compared with NodeId(). */
61057
74479
  const char *NodeName () const { return NodeId (); }
 
74480
  /** Get the number of sons. */
61058
74481
  int Sons () const { return 4; }
 
74482
  /** Get the n-th son.
 
74483
   *  \param n The index of the son.
 
74484
   *  \return The n-th son or NULL. */
61059
74485
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61060
74486
  CTree *Declarator () const { return sons[0]; }
61061
74487
  CT_ArrayDelimiter *Delimiter () const 
61062
74488
   { return (CT_ArrayDelimiter*)sons[2]; }
 
74489
  /** Replace a son.
 
74490
   *  \param old_son The son to replace.
 
74491
   *  \param new_son The new son. */
61063
74492
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61064
74493
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61065
74494
  }
61069
74498
};
61070
74499
 
61071
74500
 
61072
 
#line 61073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74501
#line 74502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61073
74502
} // closed Puma
 
74503
class CCExprResolve;
 
74504
class CExprResolve;
61074
74505
class WinIfExists;
61075
74506
class WinImportHandler;
61076
74507
class WinMacros;
61077
 
class CMatchSyntax;
61078
 
class ExtGnu;
 
74508
class WinAsm;
 
74509
class WinDeclSpecs;
 
74510
class WinMemberExplSpec;
 
74511
class WinTypeKeywords;
 
74512
class WinFriend;
61079
74513
class ExtAC;
61080
74514
class ExtACBuilderCoupling;
61081
74515
class ExtACSyntaxCoupling;
61082
74516
class ExtACTree;
61083
74517
class ExtACKeywords;
61084
 
class WinAsm;
61085
 
class WinDeclSpecs;
61086
 
class WinMemberExplSpec;
61087
 
class WinTypeKeywords;
 
74518
class ExtGnu;
61088
74519
class PragmaOnceUnitState;
61089
74520
class PragmaOnce;
61090
 
class CCExprResolve;
61091
 
class CExprResolve;
 
74521
class CMatchSyntax;
61092
74522
namespace Puma {
61093
74523
 
61094
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74524
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61095
74525
class CT_FctDeclarator : public CT_Declarator {
61096
 
#line 61097 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74526
#line 74527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74527
  friend class ::CCExprResolve;
 
74528
  friend class ::CExprResolve;
61097
74529
  friend class ::WinIfExists;
61098
74530
  friend class ::WinImportHandler;
61099
74531
  friend class ::WinMacros;
61100
 
  friend class ::CMatchSyntax;
61101
 
  friend class ::ExtGnu;
 
74532
  friend class ::WinAsm;
 
74533
  friend class ::WinDeclSpecs;
 
74534
  friend class ::WinMemberExplSpec;
 
74535
  friend class ::WinTypeKeywords;
 
74536
  friend class ::WinFriend;
61102
74537
  friend class ::ExtAC;
61103
74538
  friend class ::ExtACBuilderCoupling;
61104
74539
  friend class ::ExtACSyntaxCoupling;
61105
74540
  friend class ::ExtACTree;
61106
74541
  friend class ::ExtACKeywords;
61107
 
  friend class ::WinAsm;
61108
 
  friend class ::WinDeclSpecs;
61109
 
  friend class ::WinMemberExplSpec;
61110
 
  friend class ::WinTypeKeywords;
 
74542
  friend class ::ExtGnu;
61111
74543
  friend class ::PragmaOnceUnitState;
61112
74544
  friend class ::PragmaOnce;
61113
 
  friend class ::CCExprResolve;
61114
 
  friend class ::CExprResolve;
 
74545
  friend class ::CMatchSyntax;
61115
74546
 
61116
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74547
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61117
74548
 
61118
74549
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
61119
74550
 
61120
74551
public:
61121
74552
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
61122
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
74553
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
74554
    AddSon (sons[2], cv); AddSon (sons[3], es); 
61123
74555
  }
 
74556
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61124
74557
  static const char *NodeId ();
 
74558
  /** Get the name of the node. Can be compared with NodeId(). */
61125
74559
  const char *NodeName () const { return NodeId (); }
 
74560
  /** Get the number of sons. */
61126
74561
  int Sons () const { return CTree::Sons (sons, 4); }
 
74562
  /** Get the n-th son.
 
74563
   *  \param n The index of the son.
 
74564
   *  \return The n-th son or NULL. */
61127
74565
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61128
74566
  CTree *Declarator () const { return sons[0]; }
61129
74567
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
61130
74568
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
61131
74569
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
74570
  /** Replace a son.
 
74571
   *  \param old_son The son to replace.
 
74572
   *  \param new_son The new son. */
61132
74573
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61133
74574
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61134
74575
  }
61135
74576
};
61136
74577
 
61137
74578
 
61138
 
#line 61139 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74579
#line 74580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61139
74580
} // closed Puma
 
74581
class CCExprResolve;
 
74582
class CExprResolve;
61140
74583
class WinIfExists;
61141
74584
class WinImportHandler;
61142
74585
class WinMacros;
61143
 
class CMatchSyntax;
61144
 
class ExtGnu;
 
74586
class WinAsm;
 
74587
class WinDeclSpecs;
 
74588
class WinMemberExplSpec;
 
74589
class WinTypeKeywords;
 
74590
class WinFriend;
61145
74591
class ExtAC;
61146
74592
class ExtACBuilderCoupling;
61147
74593
class ExtACSyntaxCoupling;
61148
74594
class ExtACTree;
61149
74595
class ExtACKeywords;
61150
 
class WinAsm;
61151
 
class WinDeclSpecs;
61152
 
class WinMemberExplSpec;
61153
 
class WinTypeKeywords;
 
74596
class ExtGnu;
61154
74597
class PragmaOnceUnitState;
61155
74598
class PragmaOnce;
61156
 
class CCExprResolve;
61157
 
class CExprResolve;
 
74599
class CMatchSyntax;
61158
74600
namespace Puma {
61159
74601
 
61160
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74602
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61161
74603
class CT_RefDeclarator : public CT_Declarator {
61162
 
#line 61163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74604
#line 74605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74605
  friend class ::CCExprResolve;
 
74606
  friend class ::CExprResolve;
61163
74607
  friend class ::WinIfExists;
61164
74608
  friend class ::WinImportHandler;
61165
74609
  friend class ::WinMacros;
61166
 
  friend class ::CMatchSyntax;
61167
 
  friend class ::ExtGnu;
 
74610
  friend class ::WinAsm;
 
74611
  friend class ::WinDeclSpecs;
 
74612
  friend class ::WinMemberExplSpec;
 
74613
  friend class ::WinTypeKeywords;
 
74614
  friend class ::WinFriend;
61168
74615
  friend class ::ExtAC;
61169
74616
  friend class ::ExtACBuilderCoupling;
61170
74617
  friend class ::ExtACSyntaxCoupling;
61171
74618
  friend class ::ExtACTree;
61172
74619
  friend class ::ExtACKeywords;
61173
 
  friend class ::WinAsm;
61174
 
  friend class ::WinDeclSpecs;
61175
 
  friend class ::WinMemberExplSpec;
61176
 
  friend class ::WinTypeKeywords;
 
74620
  friend class ::ExtGnu;
61177
74621
  friend class ::PragmaOnceUnitState;
61178
74622
  friend class ::PragmaOnce;
61179
 
  friend class ::CCExprResolve;
61180
 
  friend class ::CExprResolve;
 
74623
  friend class ::CMatchSyntax;
61181
74624
 
61182
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74625
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61183
74626
 
61184
74627
  CTree *sons[2]; // ref, declarator
61185
74628
 
61186
74629
public:
61187
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
74630
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
74631
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61188
74632
  static const char *NodeId ();
 
74633
  /** Get the name of the node. Can be compared with NodeId(). */
61189
74634
  const char *NodeName () const { return NodeId (); }
 
74635
  /** Get the number of sons. */
61190
74636
  int Sons () const { return 2; }
 
74637
  /** Get the n-th son.
 
74638
   *  \param n The index of the son.
 
74639
   *  \return The n-th son or NULL. */
61191
74640
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
61192
74641
  CTree *Declarator () const { return sons[1]; }
 
74642
  /** Replace a son.
 
74643
   *  \param old_son The son to replace.
 
74644
   *  \param new_son The new son. */
61193
74645
  void ReplaceSon (CTree *old_son, CTree *new_son) {
61194
74646
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61195
74647
  }
61196
74648
};
61197
74649
 
61198
74650
 
61199
 
#line 61200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74651
#line 74652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61200
74652
} // closed Puma
 
74653
class CCExprResolve;
 
74654
class CExprResolve;
61201
74655
class WinIfExists;
61202
74656
class WinImportHandler;
61203
74657
class WinMacros;
61204
 
class CMatchSyntax;
61205
 
class ExtGnu;
 
74658
class WinAsm;
 
74659
class WinDeclSpecs;
 
74660
class WinMemberExplSpec;
 
74661
class WinTypeKeywords;
 
74662
class WinFriend;
61206
74663
class ExtAC;
61207
74664
class ExtACBuilderCoupling;
61208
74665
class ExtACSyntaxCoupling;
61209
74666
class ExtACTree;
61210
74667
class ExtACKeywords;
61211
 
class WinAsm;
61212
 
class WinDeclSpecs;
61213
 
class WinMemberExplSpec;
61214
 
class WinTypeKeywords;
 
74668
class ExtGnu;
61215
74669
class PragmaOnceUnitState;
61216
74670
class PragmaOnce;
61217
 
class CCExprResolve;
61218
 
class CExprResolve;
 
74671
class CMatchSyntax;
61219
74672
namespace Puma {
61220
74673
 
61221
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74674
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61222
74675
class CT_PtrDeclarator : public CT_Declarator {
61223
 
#line 61224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74676
#line 74677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74677
  friend class ::CCExprResolve;
 
74678
  friend class ::CExprResolve;
61224
74679
  friend class ::WinIfExists;
61225
74680
  friend class ::WinImportHandler;
61226
74681
  friend class ::WinMacros;
61227
 
  friend class ::CMatchSyntax;
61228
 
  friend class ::ExtGnu;
 
74682
  friend class ::WinAsm;
 
74683
  friend class ::WinDeclSpecs;
 
74684
  friend class ::WinMemberExplSpec;
 
74685
  friend class ::WinTypeKeywords;
 
74686
  friend class ::WinFriend;
61229
74687
  friend class ::ExtAC;
61230
74688
  friend class ::ExtACBuilderCoupling;
61231
74689
  friend class ::ExtACSyntaxCoupling;
61232
74690
  friend class ::ExtACTree;
61233
74691
  friend class ::ExtACKeywords;
61234
 
  friend class ::WinAsm;
61235
 
  friend class ::WinDeclSpecs;
61236
 
  friend class ::WinMemberExplSpec;
61237
 
  friend class ::WinTypeKeywords;
 
74692
  friend class ::ExtGnu;
61238
74693
  friend class ::PragmaOnceUnitState;
61239
74694
  friend class ::PragmaOnce;
61240
 
  friend class ::CCExprResolve;
61241
 
  friend class ::CExprResolve;
 
74695
  friend class ::CMatchSyntax;
61242
74696
 
61243
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74697
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61244
74698
 
61245
74699
  CTree *sons[3]; // ptr, cv_quals, declarator
61246
74700
 
61247
74701
public:
61248
74702
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
61249
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
74703
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
61250
74704
  }
 
74705
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61251
74706
  static const char *NodeId ();
 
74707
  /** Get the name of the node. Can be compared with NodeId(). */
61252
74708
  const char *NodeName () const { return NodeId (); }
 
74709
  /** Get the number of sons. */
61253
74710
  int Sons () const { return CTree::Sons (sons, 3); }
 
74711
  /** Get the n-th son.
 
74712
   *  \param n The index of the son.
 
74713
   *  \return The n-th son or NULL. */
61254
74714
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61255
74715
  CTree *Declarator () const { return sons[2]; }
61256
74716
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
74717
  /** Replace a son.
 
74718
   *  \param old_son The son to replace.
 
74719
   *  \param new_son The new son. */
61257
74720
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61258
74721
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61259
74722
  }
61260
74723
};
61261
74724
 
61262
74725
 
61263
 
#line 61264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74726
#line 74727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61264
74727
} // closed Puma
 
74728
class CCExprResolve;
 
74729
class CExprResolve;
61265
74730
class WinIfExists;
61266
74731
class WinImportHandler;
61267
74732
class WinMacros;
61268
 
class CMatchSyntax;
61269
 
class ExtGnu;
 
74733
class WinAsm;
 
74734
class WinDeclSpecs;
 
74735
class WinMemberExplSpec;
 
74736
class WinTypeKeywords;
 
74737
class WinFriend;
61270
74738
class ExtAC;
61271
74739
class ExtACBuilderCoupling;
61272
74740
class ExtACSyntaxCoupling;
61273
74741
class ExtACTree;
61274
74742
class ExtACKeywords;
61275
 
class WinAsm;
61276
 
class WinDeclSpecs;
61277
 
class WinMemberExplSpec;
61278
 
class WinTypeKeywords;
 
74743
class ExtGnu;
61279
74744
class PragmaOnceUnitState;
61280
74745
class PragmaOnce;
61281
 
class CCExprResolve;
61282
 
class CExprResolve;
 
74746
class CMatchSyntax;
61283
74747
namespace Puma {
61284
74748
 
61285
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74749
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61286
74750
class CT_MembPtrDeclarator : public CT_Declarator {
61287
 
#line 61288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74751
#line 74752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74752
  friend class ::CCExprResolve;
 
74753
  friend class ::CExprResolve;
61288
74754
  friend class ::WinIfExists;
61289
74755
  friend class ::WinImportHandler;
61290
74756
  friend class ::WinMacros;
61291
 
  friend class ::CMatchSyntax;
61292
 
  friend class ::ExtGnu;
 
74757
  friend class ::WinAsm;
 
74758
  friend class ::WinDeclSpecs;
 
74759
  friend class ::WinMemberExplSpec;
 
74760
  friend class ::WinTypeKeywords;
 
74761
  friend class ::WinFriend;
61293
74762
  friend class ::ExtAC;
61294
74763
  friend class ::ExtACBuilderCoupling;
61295
74764
  friend class ::ExtACSyntaxCoupling;
61296
74765
  friend class ::ExtACTree;
61297
74766
  friend class ::ExtACKeywords;
61298
 
  friend class ::WinAsm;
61299
 
  friend class ::WinDeclSpecs;
61300
 
  friend class ::WinMemberExplSpec;
61301
 
  friend class ::WinTypeKeywords;
 
74767
  friend class ::ExtGnu;
61302
74768
  friend class ::PragmaOnceUnitState;
61303
74769
  friend class ::PragmaOnce;
61304
 
  friend class ::CCExprResolve;
61305
 
  friend class ::CExprResolve;
 
74770
  friend class ::CMatchSyntax;
61306
74771
 
61307
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74772
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61308
74773
 
61309
74774
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
61310
74775
 
61311
74776
public:
61312
74777
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
61313
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
74778
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
74779
    AddSon (sons[3], q); AddSon (sons[4], d); 
61314
74780
  }
 
74781
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61315
74782
  static const char *NodeId ();
 
74783
  /** Get the name of the node. Can be compared with NodeId(). */
61316
74784
  const char *NodeName () const { return NodeId (); }
 
74785
  /** Get the number of sons. */
61317
74786
  int Sons () const { return CTree::Sons (sons, 5); }
 
74787
  /** Get the n-th son.
 
74788
   *  \param n The index of the son.
 
74789
   *  \return The n-th son or NULL. */
61318
74790
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
61319
74791
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
61320
74792
  CTree *Declarator () const { return sons[4]; }
61321
74793
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
74794
  /** Replace a son.
 
74795
   *  \param old_son The son to replace.
 
74796
   *  \param new_son The new son. */
61322
74797
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61323
74798
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61324
74799
  }
61325
74800
};
61326
74801
 
61327
74802
 
61328
 
#line 61329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74803
#line 74804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61329
74804
} // closed Puma
 
74805
class CCExprResolve;
 
74806
class CExprResolve;
61330
74807
class WinIfExists;
61331
74808
class WinImportHandler;
61332
74809
class WinMacros;
61333
 
class CMatchSyntax;
61334
 
class ExtGnu;
 
74810
class WinAsm;
 
74811
class WinDeclSpecs;
 
74812
class WinMemberExplSpec;
 
74813
class WinTypeKeywords;
 
74814
class WinFriend;
61335
74815
class ExtAC;
61336
74816
class ExtACBuilderCoupling;
61337
74817
class ExtACSyntaxCoupling;
61338
74818
class ExtACTree;
61339
74819
class ExtACKeywords;
61340
 
class WinAsm;
61341
 
class WinDeclSpecs;
61342
 
class WinMemberExplSpec;
61343
 
class WinTypeKeywords;
 
74820
class ExtGnu;
61344
74821
class PragmaOnceUnitState;
61345
74822
class PragmaOnce;
61346
 
class CCExprResolve;
61347
 
class CExprResolve;
 
74823
class CMatchSyntax;
61348
74824
namespace Puma {
61349
74825
 
61350
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74826
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61351
74827
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
61352
 
#line 61353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74828
#line 74829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74829
  friend class ::CCExprResolve;
 
74830
  friend class ::CExprResolve;
61353
74831
  friend class ::WinIfExists;
61354
74832
  friend class ::WinImportHandler;
61355
74833
  friend class ::WinMacros;
61356
 
  friend class ::CMatchSyntax;
61357
 
  friend class ::ExtGnu;
 
74834
  friend class ::WinAsm;
 
74835
  friend class ::WinDeclSpecs;
 
74836
  friend class ::WinMemberExplSpec;
 
74837
  friend class ::WinTypeKeywords;
 
74838
  friend class ::WinFriend;
61358
74839
  friend class ::ExtAC;
61359
74840
  friend class ::ExtACBuilderCoupling;
61360
74841
  friend class ::ExtACSyntaxCoupling;
61361
74842
  friend class ::ExtACTree;
61362
74843
  friend class ::ExtACKeywords;
61363
 
  friend class ::WinAsm;
61364
 
  friend class ::WinDeclSpecs;
61365
 
  friend class ::WinMemberExplSpec;
61366
 
  friend class ::WinTypeKeywords;
 
74844
  friend class ::ExtGnu;
61367
74845
  friend class ::PragmaOnceUnitState;
61368
74846
  friend class ::PragmaOnce;
61369
 
  friend class ::CCExprResolve;
61370
 
  friend class ::CExprResolve;
 
74847
  friend class ::CMatchSyntax;
61371
74848
 
61372
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74849
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61373
74850
 
61374
74851
  CTree *sons[3]; // declarator, colon, expr
61375
74852
 
61376
74853
public:
61377
74854
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
61378
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
74855
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
61379
74856
  }
 
74857
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61380
74858
  static const char *NodeId ();
 
74859
  /** Get the name of the node. Can be compared with NodeId(). */
61381
74860
  const char *NodeName () const { return NodeId (); }
 
74861
  /** Get the number of sons. */
61382
74862
  int Sons () const { return CTree::Sons (sons, 3); }
 
74863
  /** Get the n-th son.
 
74864
   *  \param n The index of the son.
 
74865
   *  \return The n-th son or NULL. */
61383
74866
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61384
74867
  CTree *Declarator () const { return sons[0]; }
61385
74868
  CTree *Expr () const { return sons[2]; }
61386
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
74869
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
61387
74870
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
74871
  /** Replace a son.
 
74872
   *  \param old_son The son to replace.
 
74873
   *  \param new_son The new son. */
61388
74874
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61389
74875
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61390
74876
  }
61397
74883
/*****************************************************************************/
61398
74884
 
61399
74885
 
61400
 
#line 61401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74886
#line 74887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61401
74887
} // closed Puma
 
74888
class CCExprResolve;
 
74889
class CExprResolve;
61402
74890
class WinIfExists;
61403
74891
class WinImportHandler;
61404
74892
class WinMacros;
61405
 
class CMatchSyntax;
61406
 
class ExtGnu;
 
74893
class WinAsm;
 
74894
class WinDeclSpecs;
 
74895
class WinMemberExplSpec;
 
74896
class WinTypeKeywords;
 
74897
class WinFriend;
61407
74898
class ExtAC;
61408
74899
class ExtACBuilderCoupling;
61409
74900
class ExtACSyntaxCoupling;
61410
74901
class ExtACTree;
61411
74902
class ExtACKeywords;
61412
 
class WinAsm;
61413
 
class WinDeclSpecs;
61414
 
class WinMemberExplSpec;
61415
 
class WinTypeKeywords;
 
74903
class ExtGnu;
61416
74904
class PragmaOnceUnitState;
61417
74905
class PragmaOnce;
61418
 
class CCExprResolve;
61419
 
class CExprResolve;
 
74906
class CMatchSyntax;
61420
74907
namespace Puma {
61421
74908
 
61422
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74909
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61423
74910
class CT_Statement : public CTree {
61424
 
#line 61425 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74911
#line 74912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74912
  friend class ::CCExprResolve;
 
74913
  friend class ::CExprResolve;
61425
74914
  friend class ::WinIfExists;
61426
74915
  friend class ::WinImportHandler;
61427
74916
  friend class ::WinMacros;
61428
 
  friend class ::CMatchSyntax;
61429
 
  friend class ::ExtGnu;
 
74917
  friend class ::WinAsm;
 
74918
  friend class ::WinDeclSpecs;
 
74919
  friend class ::WinMemberExplSpec;
 
74920
  friend class ::WinTypeKeywords;
 
74921
  friend class ::WinFriend;
61430
74922
  friend class ::ExtAC;
61431
74923
  friend class ::ExtACBuilderCoupling;
61432
74924
  friend class ::ExtACSyntaxCoupling;
61433
74925
  friend class ::ExtACTree;
61434
74926
  friend class ::ExtACKeywords;
61435
 
  friend class ::WinAsm;
61436
 
  friend class ::WinDeclSpecs;
61437
 
  friend class ::WinMemberExplSpec;
61438
 
  friend class ::WinTypeKeywords;
 
74927
  friend class ::ExtGnu;
61439
74928
  friend class ::PragmaOnceUnitState;
61440
74929
  friend class ::PragmaOnce;
61441
 
  friend class ::CCExprResolve;
61442
 
  friend class ::CExprResolve;
 
74930
  friend class ::CMatchSyntax;
61443
74931
 
61444
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74932
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61445
74933
 
61446
74934
protected:
61447
74935
  CT_Statement () {}
 
74936
  virtual CT_Statement *IsStatement () { return this; }
61448
74937
};
61449
74938
 
61450
74939
 
61451
 
#line 61452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74940
#line 74941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61452
74941
} // closed Puma
 
74942
class CCExprResolve;
 
74943
class CExprResolve;
61453
74944
class WinIfExists;
61454
74945
class WinImportHandler;
61455
74946
class WinMacros;
61456
 
class CMatchSyntax;
61457
 
class ExtGnu;
 
74947
class WinAsm;
 
74948
class WinDeclSpecs;
 
74949
class WinMemberExplSpec;
 
74950
class WinTypeKeywords;
 
74951
class WinFriend;
61458
74952
class ExtAC;
61459
74953
class ExtACBuilderCoupling;
61460
74954
class ExtACSyntaxCoupling;
61461
74955
class ExtACTree;
61462
74956
class ExtACKeywords;
61463
 
class WinAsm;
61464
 
class WinDeclSpecs;
61465
 
class WinMemberExplSpec;
61466
 
class WinTypeKeywords;
 
74957
class ExtGnu;
61467
74958
class PragmaOnceUnitState;
61468
74959
class PragmaOnce;
61469
 
class CCExprResolve;
61470
 
class CExprResolve;
 
74960
class CMatchSyntax;
61471
74961
namespace Puma {
61472
74962
 
61473
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74963
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61474
74964
class CT_LabelStmt : public CT_Statement {
61475
 
#line 61476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
74965
#line 74966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
74966
  friend class ::CCExprResolve;
 
74967
  friend class ::CExprResolve;
61476
74968
  friend class ::WinIfExists;
61477
74969
  friend class ::WinImportHandler;
61478
74970
  friend class ::WinMacros;
61479
 
  friend class ::CMatchSyntax;
61480
 
  friend class ::ExtGnu;
 
74971
  friend class ::WinAsm;
 
74972
  friend class ::WinDeclSpecs;
 
74973
  friend class ::WinMemberExplSpec;
 
74974
  friend class ::WinTypeKeywords;
 
74975
  friend class ::WinFriend;
61481
74976
  friend class ::ExtAC;
61482
74977
  friend class ::ExtACBuilderCoupling;
61483
74978
  friend class ::ExtACSyntaxCoupling;
61484
74979
  friend class ::ExtACTree;
61485
74980
  friend class ::ExtACKeywords;
61486
 
  friend class ::WinAsm;
61487
 
  friend class ::WinDeclSpecs;
61488
 
  friend class ::WinMemberExplSpec;
61489
 
  friend class ::WinTypeKeywords;
 
74981
  friend class ::ExtGnu;
61490
74982
  friend class ::PragmaOnceUnitState;
61491
74983
  friend class ::PragmaOnce;
61492
 
  friend class ::CCExprResolve;
61493
 
  friend class ::CExprResolve;
 
74984
  friend class ::CMatchSyntax;
61494
74985
 
61495
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74986
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61496
74987
 
61497
74988
  CTree *sons[3]; // id, colon, stmt
61498
74989
 
61499
74990
public:
61500
74991
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
61501
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
74992
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
61502
74993
  }
 
74994
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61503
74995
  static const char *NodeId ();
 
74996
  /** Get the name of the node. Can be compared with NodeId(). */
61504
74997
  const char *NodeName () const { return NodeId (); }
 
74998
  /** Get the number of sons. */
61505
74999
  int Sons () const { return 3; }
 
75000
  /** Get the n-th son.
 
75001
   *  \param n The index of the son.
 
75002
   *  \return The n-th son or NULL. */
61506
75003
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61507
75004
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
61508
75005
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
75006
  /** Replace a son.
 
75007
   *  \param old_son The son to replace.
 
75008
   *  \param new_son The new son. */
61509
75009
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61510
75010
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61511
75011
  }
61512
75012
};
61513
75013
 
61514
75014
 
61515
 
#line 61516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75015
#line 75016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61516
75016
} // closed Puma
 
75017
class CCExprResolve;
 
75018
class CExprResolve;
61517
75019
class WinIfExists;
61518
75020
class WinImportHandler;
61519
75021
class WinMacros;
61520
 
class CMatchSyntax;
61521
 
class ExtGnu;
 
75022
class WinAsm;
 
75023
class WinDeclSpecs;
 
75024
class WinMemberExplSpec;
 
75025
class WinTypeKeywords;
 
75026
class WinFriend;
61522
75027
class ExtAC;
61523
75028
class ExtACBuilderCoupling;
61524
75029
class ExtACSyntaxCoupling;
61525
75030
class ExtACTree;
61526
75031
class ExtACKeywords;
61527
 
class WinAsm;
61528
 
class WinDeclSpecs;
61529
 
class WinMemberExplSpec;
61530
 
class WinTypeKeywords;
 
75032
class ExtGnu;
61531
75033
class PragmaOnceUnitState;
61532
75034
class PragmaOnce;
61533
 
class CCExprResolve;
61534
 
class CExprResolve;
 
75035
class CMatchSyntax;
61535
75036
namespace Puma {
61536
75037
 
61537
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75038
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61538
75039
class CT_DefaultStmt : public CT_Statement {
61539
 
#line 61540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75040
#line 75041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75041
  friend class ::CCExprResolve;
 
75042
  friend class ::CExprResolve;
61540
75043
  friend class ::WinIfExists;
61541
75044
  friend class ::WinImportHandler;
61542
75045
  friend class ::WinMacros;
61543
 
  friend class ::CMatchSyntax;
61544
 
  friend class ::ExtGnu;
 
75046
  friend class ::WinAsm;
 
75047
  friend class ::WinDeclSpecs;
 
75048
  friend class ::WinMemberExplSpec;
 
75049
  friend class ::WinTypeKeywords;
 
75050
  friend class ::WinFriend;
61545
75051
  friend class ::ExtAC;
61546
75052
  friend class ::ExtACBuilderCoupling;
61547
75053
  friend class ::ExtACSyntaxCoupling;
61548
75054
  friend class ::ExtACTree;
61549
75055
  friend class ::ExtACKeywords;
61550
 
  friend class ::WinAsm;
61551
 
  friend class ::WinDeclSpecs;
61552
 
  friend class ::WinMemberExplSpec;
61553
 
  friend class ::WinTypeKeywords;
 
75056
  friend class ::ExtGnu;
61554
75057
  friend class ::PragmaOnceUnitState;
61555
75058
  friend class ::PragmaOnce;
61556
 
  friend class ::CCExprResolve;
61557
 
  friend class ::CExprResolve;
 
75059
  friend class ::CMatchSyntax;
61558
75060
 
61559
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75061
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61560
75062
 
61561
75063
  CTree *sons[3]; // keyword, colon, stmt
61562
75064
 
61563
75065
public:
61564
75066
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
61565
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
75067
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
61566
75068
  }
 
75069
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61567
75070
  static const char *NodeId ();
 
75071
  /** Get the name of the node. Can be compared with NodeId(). */
61568
75072
  const char *NodeName () const { return NodeId (); }
 
75073
  /** Get the number of sons. */
61569
75074
  int Sons () const { return 3; }
 
75075
  /** Get the n-th son.
 
75076
   *  \param n The index of the son.
 
75077
   *  \return The n-th son or NULL. */
61570
75078
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61571
75079
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
75080
  /** Replace a son.
 
75081
   *  \param old_son The son to replace.
 
75082
   *  \param new_son The new son. */
61572
75083
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61573
75084
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61574
75085
  }
61575
75086
};
61576
75087
 
61577
75088
 
61578
 
#line 61579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75089
#line 75090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61579
75090
} // closed Puma
 
75091
class CCExprResolve;
 
75092
class CExprResolve;
61580
75093
class WinIfExists;
61581
75094
class WinImportHandler;
61582
75095
class WinMacros;
61583
 
class CMatchSyntax;
61584
 
class ExtGnu;
 
75096
class WinAsm;
 
75097
class WinDeclSpecs;
 
75098
class WinMemberExplSpec;
 
75099
class WinTypeKeywords;
 
75100
class WinFriend;
61585
75101
class ExtAC;
61586
75102
class ExtACBuilderCoupling;
61587
75103
class ExtACSyntaxCoupling;
61588
75104
class ExtACTree;
61589
75105
class ExtACKeywords;
61590
 
class WinAsm;
61591
 
class WinDeclSpecs;
61592
 
class WinMemberExplSpec;
61593
 
class WinTypeKeywords;
 
75106
class ExtGnu;
61594
75107
class PragmaOnceUnitState;
61595
75108
class PragmaOnce;
61596
 
class CCExprResolve;
61597
 
class CExprResolve;
 
75109
class CMatchSyntax;
61598
75110
namespace Puma {
61599
75111
 
61600
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75112
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61601
75113
class CT_TryStmt : public CT_Statement {
61602
 
#line 61603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75114
#line 75115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75115
  friend class ::CCExprResolve;
 
75116
  friend class ::CExprResolve;
61603
75117
  friend class ::WinIfExists;
61604
75118
  friend class ::WinImportHandler;
61605
75119
  friend class ::WinMacros;
61606
 
  friend class ::CMatchSyntax;
61607
 
  friend class ::ExtGnu;
 
75120
  friend class ::WinAsm;
 
75121
  friend class ::WinDeclSpecs;
 
75122
  friend class ::WinMemberExplSpec;
 
75123
  friend class ::WinTypeKeywords;
 
75124
  friend class ::WinFriend;
61608
75125
  friend class ::ExtAC;
61609
75126
  friend class ::ExtACBuilderCoupling;
61610
75127
  friend class ::ExtACSyntaxCoupling;
61611
75128
  friend class ::ExtACTree;
61612
75129
  friend class ::ExtACKeywords;
61613
 
  friend class ::WinAsm;
61614
 
  friend class ::WinDeclSpecs;
61615
 
  friend class ::WinMemberExplSpec;
61616
 
  friend class ::WinTypeKeywords;
 
75130
  friend class ::ExtGnu;
61617
75131
  friend class ::PragmaOnceUnitState;
61618
75132
  friend class ::PragmaOnce;
61619
 
  friend class ::CCExprResolve;
61620
 
  friend class ::CExprResolve;
 
75133
  friend class ::CMatchSyntax;
61621
75134
 
61622
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75135
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61623
75136
 
61624
75137
  CTree *sons[3]; // try, stmt, handlers
61625
75138
 
61626
75139
public:
61627
75140
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
61628
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
75141
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
61629
75142
  }
 
75143
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61630
75144
  static const char *NodeId ();
 
75145
  /** Get the name of the node. Can be compared with NodeId(). */
61631
75146
  const char *NodeName () const { return NodeId (); }
 
75147
  /** Get the number of sons. */
61632
75148
  int Sons () const { return 3; }
 
75149
  /** Get the n-th son.
 
75150
   *  \param n The index of the son.
 
75151
   *  \return The n-th son or NULL. */
61633
75152
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61634
75153
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
61635
75154
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
75155
  /** Replace a son.
 
75156
   *  \param old_son The son to replace.
 
75157
   *  \param new_son The new son. */
61636
75158
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61637
75159
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61638
75160
  }
61639
75161
};
61640
75162
 
61641
75163
 
61642
 
#line 61643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75164
#line 75165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61643
75165
} // closed Puma
 
75166
class CCExprResolve;
 
75167
class CExprResolve;
61644
75168
class WinIfExists;
61645
75169
class WinImportHandler;
61646
75170
class WinMacros;
61647
 
class CMatchSyntax;
61648
 
class ExtGnu;
 
75171
class WinAsm;
 
75172
class WinDeclSpecs;
 
75173
class WinMemberExplSpec;
 
75174
class WinTypeKeywords;
 
75175
class WinFriend;
61649
75176
class ExtAC;
61650
75177
class ExtACBuilderCoupling;
61651
75178
class ExtACSyntaxCoupling;
61652
75179
class ExtACTree;
61653
75180
class ExtACKeywords;
61654
 
class WinAsm;
61655
 
class WinDeclSpecs;
61656
 
class WinMemberExplSpec;
61657
 
class WinTypeKeywords;
 
75181
class ExtGnu;
61658
75182
class PragmaOnceUnitState;
61659
75183
class PragmaOnce;
61660
 
class CCExprResolve;
61661
 
class CExprResolve;
 
75184
class CMatchSyntax;
61662
75185
namespace Puma {
61663
75186
 
61664
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75187
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61665
75188
class CT_CaseStmt : public CT_Statement {
61666
 
#line 61667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75189
#line 75190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75190
  friend class ::CCExprResolve;
 
75191
  friend class ::CExprResolve;
61667
75192
  friend class ::WinIfExists;
61668
75193
  friend class ::WinImportHandler;
61669
75194
  friend class ::WinMacros;
61670
 
  friend class ::CMatchSyntax;
61671
 
  friend class ::ExtGnu;
 
75195
  friend class ::WinAsm;
 
75196
  friend class ::WinDeclSpecs;
 
75197
  friend class ::WinMemberExplSpec;
 
75198
  friend class ::WinTypeKeywords;
 
75199
  friend class ::WinFriend;
61672
75200
  friend class ::ExtAC;
61673
75201
  friend class ::ExtACBuilderCoupling;
61674
75202
  friend class ::ExtACSyntaxCoupling;
61675
75203
  friend class ::ExtACTree;
61676
75204
  friend class ::ExtACKeywords;
61677
 
  friend class ::WinAsm;
61678
 
  friend class ::WinDeclSpecs;
61679
 
  friend class ::WinMemberExplSpec;
61680
 
  friend class ::WinTypeKeywords;
 
75205
  friend class ::ExtGnu;
61681
75206
  friend class ::PragmaOnceUnitState;
61682
75207
  friend class ::PragmaOnce;
61683
 
  friend class ::CCExprResolve;
61684
 
  friend class ::CExprResolve;
 
75208
  friend class ::CMatchSyntax;
61685
75209
 
61686
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75210
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61687
75211
 
61688
75212
  CTree *sons[4]; // keyword, expr, colon, stmt
61689
75213
 
61690
75214
public:
61691
75215
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
61692
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
75216
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
75217
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
61693
75218
  }
 
75219
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61694
75220
  static const char *NodeId ();
 
75221
  /** Get the name of the node. Can be compared with NodeId(). */
61695
75222
  const char *NodeName () const { return NodeId (); }
 
75223
  /** Get the number of sons. */
61696
75224
  int Sons () const { return 4; }
 
75225
  /** Get the n-th son.
 
75226
   *  \param n The index of the son.
 
75227
   *  \return The n-th son or NULL. */
61697
75228
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61698
75229
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
61699
75230
  CTree *Expr () const { return sons[1]; }
 
75231
  /** Replace a son.
 
75232
   *  \param old_son The son to replace.
 
75233
   *  \param new_son The new son. */
61700
75234
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61701
75235
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61702
75236
  }
61703
75237
};
61704
75238
 
61705
75239
 
61706
 
#line 61707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75240
#line 75241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61707
75241
} // closed Puma
 
75242
class CCExprResolve;
 
75243
class CExprResolve;
61708
75244
class WinIfExists;
61709
75245
class WinImportHandler;
61710
75246
class WinMacros;
61711
 
class CMatchSyntax;
61712
 
class ExtGnu;
 
75247
class WinAsm;
 
75248
class WinDeclSpecs;
 
75249
class WinMemberExplSpec;
 
75250
class WinTypeKeywords;
 
75251
class WinFriend;
61713
75252
class ExtAC;
61714
75253
class ExtACBuilderCoupling;
61715
75254
class ExtACSyntaxCoupling;
61716
75255
class ExtACTree;
61717
75256
class ExtACKeywords;
61718
 
class WinAsm;
61719
 
class WinDeclSpecs;
61720
 
class WinMemberExplSpec;
61721
 
class WinTypeKeywords;
 
75257
class ExtGnu;
61722
75258
class PragmaOnceUnitState;
61723
75259
class PragmaOnce;
61724
 
class CCExprResolve;
61725
 
class CExprResolve;
 
75260
class CMatchSyntax;
61726
75261
namespace Puma {
61727
75262
 
61728
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75263
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61729
75264
class CT_ExprStmt : public CT_Statement {
61730
 
#line 61731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75265
#line 75266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75266
  friend class ::CCExprResolve;
 
75267
  friend class ::CExprResolve;
61731
75268
  friend class ::WinIfExists;
61732
75269
  friend class ::WinImportHandler;
61733
75270
  friend class ::WinMacros;
61734
 
  friend class ::CMatchSyntax;
61735
 
  friend class ::ExtGnu;
 
75271
  friend class ::WinAsm;
 
75272
  friend class ::WinDeclSpecs;
 
75273
  friend class ::WinMemberExplSpec;
 
75274
  friend class ::WinTypeKeywords;
 
75275
  friend class ::WinFriend;
61736
75276
  friend class ::ExtAC;
61737
75277
  friend class ::ExtACBuilderCoupling;
61738
75278
  friend class ::ExtACSyntaxCoupling;
61739
75279
  friend class ::ExtACTree;
61740
75280
  friend class ::ExtACKeywords;
61741
 
  friend class ::WinAsm;
61742
 
  friend class ::WinDeclSpecs;
61743
 
  friend class ::WinMemberExplSpec;
61744
 
  friend class ::WinTypeKeywords;
 
75281
  friend class ::ExtGnu;
61745
75282
  friend class ::PragmaOnceUnitState;
61746
75283
  friend class ::PragmaOnce;
61747
 
  friend class ::CCExprResolve;
61748
 
  friend class ::CExprResolve;
 
75284
  friend class ::CMatchSyntax;
61749
75285
 
61750
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75286
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61751
75287
 
61752
75288
  CTree *sons[2]; // expr, semi_colon
61753
75289
 
61754
75290
public:
61755
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
75291
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
75292
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61756
75293
  static const char *NodeId ();
 
75294
  /** Get the name of the node. Can be compared with NodeId(). */
61757
75295
  const char *NodeName () const { return NodeId (); }
 
75296
  /** Get the number of sons. */
61758
75297
  int Sons () const { return CTree::Sons (sons, 2); }
 
75298
  /** Get the n-th son.
 
75299
   *  \param n The index of the son.
 
75300
   *  \return The n-th son or NULL. */
61759
75301
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
61760
75302
  CTree *Expr () const { return sons[0]; }
 
75303
  /** Replace a son.
 
75304
   *  \param old_son The son to replace.
 
75305
   *  \param new_son The new son. */
61761
75306
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61762
75307
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61763
75308
  }
61764
75309
};
61765
75310
 
61766
75311
 
61767
 
#line 61768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75312
#line 75313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61768
75313
} // closed Puma
 
75314
class CCExprResolve;
 
75315
class CExprResolve;
61769
75316
class WinIfExists;
61770
75317
class WinImportHandler;
61771
75318
class WinMacros;
61772
 
class CMatchSyntax;
61773
 
class ExtGnu;
 
75319
class WinAsm;
 
75320
class WinDeclSpecs;
 
75321
class WinMemberExplSpec;
 
75322
class WinTypeKeywords;
 
75323
class WinFriend;
61774
75324
class ExtAC;
61775
75325
class ExtACBuilderCoupling;
61776
75326
class ExtACSyntaxCoupling;
61777
75327
class ExtACTree;
61778
75328
class ExtACKeywords;
61779
 
class WinAsm;
61780
 
class WinDeclSpecs;
61781
 
class WinMemberExplSpec;
61782
 
class WinTypeKeywords;
 
75329
class ExtGnu;
61783
75330
class PragmaOnceUnitState;
61784
75331
class PragmaOnce;
61785
 
class CCExprResolve;
61786
 
class CExprResolve;
 
75332
class CMatchSyntax;
61787
75333
namespace Puma {
61788
75334
 
61789
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75335
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61790
75336
class CT_DeclStmt : public CT_Statement {
61791
 
#line 61792 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75337
#line 75338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75338
  friend class ::CCExprResolve;
 
75339
  friend class ::CExprResolve;
61792
75340
  friend class ::WinIfExists;
61793
75341
  friend class ::WinImportHandler;
61794
75342
  friend class ::WinMacros;
61795
 
  friend class ::CMatchSyntax;
61796
 
  friend class ::ExtGnu;
 
75343
  friend class ::WinAsm;
 
75344
  friend class ::WinDeclSpecs;
 
75345
  friend class ::WinMemberExplSpec;
 
75346
  friend class ::WinTypeKeywords;
 
75347
  friend class ::WinFriend;
61797
75348
  friend class ::ExtAC;
61798
75349
  friend class ::ExtACBuilderCoupling;
61799
75350
  friend class ::ExtACSyntaxCoupling;
61800
75351
  friend class ::ExtACTree;
61801
75352
  friend class ::ExtACKeywords;
61802
 
  friend class ::WinAsm;
61803
 
  friend class ::WinDeclSpecs;
61804
 
  friend class ::WinMemberExplSpec;
61805
 
  friend class ::WinTypeKeywords;
 
75353
  friend class ::ExtGnu;
61806
75354
  friend class ::PragmaOnceUnitState;
61807
75355
  friend class ::PragmaOnce;
61808
 
  friend class ::CCExprResolve;
61809
 
  friend class ::CExprResolve;
 
75356
  friend class ::CMatchSyntax;
61810
75357
 
61811
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75358
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61812
75359
 
61813
75360
  CTree *_decl;
61814
75361
 
61815
75362
public:
61816
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
75363
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
75364
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61817
75365
  static const char *NodeId ();
 
75366
  /** Get the name of the node. Can be compared with NodeId(). */
61818
75367
  const char *NodeName () const { return NodeId (); }
 
75368
  /** Get the number of sons. */
61819
75369
  int Sons () const { return 1; }
 
75370
  /** Get the n-th son.
 
75371
   *  \param n The index of the son.
 
75372
   *  \return The n-th son or NULL. */
61820
75373
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
75374
  /** Replace a son.
 
75375
   *  \param old_son The son to replace.
 
75376
   *  \param new_son The new son. */
61821
75377
  void ReplaceSon (CTree *old_son, CTree *new_son) 
61822
 
   { if (old_son == _decl) _decl = new_son; }
 
75378
   { CTree::ReplaceSon (_decl, old_son, new_son); }
61823
75379
};
61824
75380
 
61825
75381
 
61826
 
#line 61827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75382
#line 75383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61827
75383
} // closed Puma
 
75384
class CCExprResolve;
 
75385
class CExprResolve;
61828
75386
class WinIfExists;
61829
75387
class WinImportHandler;
61830
75388
class WinMacros;
61831
 
class CMatchSyntax;
61832
 
class ExtGnu;
 
75389
class WinAsm;
 
75390
class WinDeclSpecs;
 
75391
class WinMemberExplSpec;
 
75392
class WinTypeKeywords;
 
75393
class WinFriend;
61833
75394
class ExtAC;
61834
75395
class ExtACBuilderCoupling;
61835
75396
class ExtACSyntaxCoupling;
61836
75397
class ExtACTree;
61837
75398
class ExtACKeywords;
61838
 
class WinAsm;
61839
 
class WinDeclSpecs;
61840
 
class WinMemberExplSpec;
61841
 
class WinTypeKeywords;
 
75399
class ExtGnu;
61842
75400
class PragmaOnceUnitState;
61843
75401
class PragmaOnce;
61844
 
class CCExprResolve;
61845
 
class CExprResolve;
 
75402
class CMatchSyntax;
61846
75403
namespace Puma {
61847
75404
 
61848
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75405
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61849
75406
class CT_SwitchStmt : public CT_Statement, public CSemScope {
61850
 
#line 61851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75407
#line 75408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75408
  friend class ::CCExprResolve;
 
75409
  friend class ::CExprResolve;
61851
75410
  friend class ::WinIfExists;
61852
75411
  friend class ::WinImportHandler;
61853
75412
  friend class ::WinMacros;
61854
 
  friend class ::CMatchSyntax;
61855
 
  friend class ::ExtGnu;
 
75413
  friend class ::WinAsm;
 
75414
  friend class ::WinDeclSpecs;
 
75415
  friend class ::WinMemberExplSpec;
 
75416
  friend class ::WinTypeKeywords;
 
75417
  friend class ::WinFriend;
61856
75418
  friend class ::ExtAC;
61857
75419
  friend class ::ExtACBuilderCoupling;
61858
75420
  friend class ::ExtACSyntaxCoupling;
61859
75421
  friend class ::ExtACTree;
61860
75422
  friend class ::ExtACKeywords;
61861
 
  friend class ::WinAsm;
61862
 
  friend class ::WinDeclSpecs;
61863
 
  friend class ::WinMemberExplSpec;
61864
 
  friend class ::WinTypeKeywords;
 
75423
  friend class ::ExtGnu;
61865
75424
  friend class ::PragmaOnceUnitState;
61866
75425
  friend class ::PragmaOnce;
61867
 
  friend class ::CCExprResolve;
61868
 
  friend class ::CExprResolve;
 
75426
  friend class ::CMatchSyntax;
61869
75427
 
61870
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75428
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61871
75429
 
61872
75430
  CTree *sons[5]; // keyword, open, cond, close, stmt
61873
75431
 
61874
75432
public:
61875
75433
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
61876
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
75434
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
75435
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
61877
75436
  }
 
75437
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61878
75438
  static const char *NodeId ();
 
75439
  /** Get the name of the node. Can be compared with NodeId(). */
61879
75440
  const char *NodeName () const { return NodeId (); }
 
75441
  /** Get the number of sons. */
61880
75442
  int Sons () const { return 5; }
 
75443
  /** Get the n-th son.
 
75444
   *  \param n The index of the son.
 
75445
   *  \return The n-th son or NULL. */
61881
75446
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
61882
75447
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
61883
75448
  CTree *Condition () const { return sons[2]; }
 
75449
  /** Replace a son.
 
75450
   *  \param old_son The son to replace.
 
75451
   *  \param new_son The new son. */
61884
75452
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61885
75453
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61886
75454
  }
 
75455
  CSemScope *SemScope () const { return (CSemScope*)this; }
61887
75456
};
61888
75457
 
61889
75458
 
61890
 
#line 61891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75459
#line 75460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61891
75460
} // closed Puma
 
75461
class CCExprResolve;
 
75462
class CExprResolve;
61892
75463
class WinIfExists;
61893
75464
class WinImportHandler;
61894
75465
class WinMacros;
61895
 
class CMatchSyntax;
61896
 
class ExtGnu;
 
75466
class WinAsm;
 
75467
class WinDeclSpecs;
 
75468
class WinMemberExplSpec;
 
75469
class WinTypeKeywords;
 
75470
class WinFriend;
61897
75471
class ExtAC;
61898
75472
class ExtACBuilderCoupling;
61899
75473
class ExtACSyntaxCoupling;
61900
75474
class ExtACTree;
61901
75475
class ExtACKeywords;
61902
 
class WinAsm;
61903
 
class WinDeclSpecs;
61904
 
class WinMemberExplSpec;
61905
 
class WinTypeKeywords;
 
75476
class ExtGnu;
61906
75477
class PragmaOnceUnitState;
61907
75478
class PragmaOnce;
61908
 
class CCExprResolve;
61909
 
class CExprResolve;
 
75479
class CMatchSyntax;
61910
75480
namespace Puma {
61911
75481
 
61912
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75482
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61913
75483
class CT_IfStmt : public CT_Statement, public CSemScope {
61914
 
#line 61915 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75484
#line 75485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75485
  friend class ::CCExprResolve;
 
75486
  friend class ::CExprResolve;
61915
75487
  friend class ::WinIfExists;
61916
75488
  friend class ::WinImportHandler;
61917
75489
  friend class ::WinMacros;
61918
 
  friend class ::CMatchSyntax;
61919
 
  friend class ::ExtGnu;
 
75490
  friend class ::WinAsm;
 
75491
  friend class ::WinDeclSpecs;
 
75492
  friend class ::WinMemberExplSpec;
 
75493
  friend class ::WinTypeKeywords;
 
75494
  friend class ::WinFriend;
61920
75495
  friend class ::ExtAC;
61921
75496
  friend class ::ExtACBuilderCoupling;
61922
75497
  friend class ::ExtACSyntaxCoupling;
61923
75498
  friend class ::ExtACTree;
61924
75499
  friend class ::ExtACKeywords;
61925
 
  friend class ::WinAsm;
61926
 
  friend class ::WinDeclSpecs;
61927
 
  friend class ::WinMemberExplSpec;
61928
 
  friend class ::WinTypeKeywords;
 
75500
  friend class ::ExtGnu;
61929
75501
  friend class ::PragmaOnceUnitState;
61930
75502
  friend class ::PragmaOnce;
61931
 
  friend class ::CCExprResolve;
61932
 
  friend class ::CExprResolve;
 
75503
  friend class ::CMatchSyntax;
61933
75504
 
61934
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75505
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61935
75506
 
61936
75507
  CTree *sons[5]; // keyword, open, cond, close, stmt
61937
75508
 
61938
75509
public:
61939
75510
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
61940
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
75511
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
75512
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
61941
75513
  }
 
75514
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61942
75515
  static const char *NodeId ();
 
75516
  /** Get the name of the node. Can be compared with NodeId(). */
61943
75517
  const char *NodeName () const { return NodeId (); }
 
75518
  /** Get the number of sons. */
61944
75519
  int Sons () const { return 5; }
 
75520
  /** Get the n-th son.
 
75521
   *  \param n The index of the son.
 
75522
   *  \return The n-th son or NULL. */
61945
75523
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
61946
75524
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
61947
75525
  CTree *Condition () const { return sons[2]; }
 
75526
  /** Replace a son.
 
75527
   *  \param old_son The son to replace.
 
75528
   *  \param new_son The new son. */
61948
75529
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61949
75530
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61950
75531
  }
 
75532
  CSemScope *SemScope () const { return (CSemScope*)this; }
61951
75533
};
61952
75534
 
61953
75535
 
61954
 
#line 61955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75536
#line 75537 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
61955
75537
} // closed Puma
 
75538
class CCExprResolve;
 
75539
class CExprResolve;
61956
75540
class WinIfExists;
61957
75541
class WinImportHandler;
61958
75542
class WinMacros;
61959
 
class CMatchSyntax;
61960
 
class ExtGnu;
 
75543
class WinAsm;
 
75544
class WinDeclSpecs;
 
75545
class WinMemberExplSpec;
 
75546
class WinTypeKeywords;
 
75547
class WinFriend;
61961
75548
class ExtAC;
61962
75549
class ExtACBuilderCoupling;
61963
75550
class ExtACSyntaxCoupling;
61964
75551
class ExtACTree;
61965
75552
class ExtACKeywords;
61966
 
class WinAsm;
61967
 
class WinDeclSpecs;
61968
 
class WinMemberExplSpec;
61969
 
class WinTypeKeywords;
 
75553
class ExtGnu;
61970
75554
class PragmaOnceUnitState;
61971
75555
class PragmaOnce;
61972
 
class CCExprResolve;
61973
 
class CExprResolve;
 
75556
class CMatchSyntax;
61974
75557
namespace Puma {
61975
75558
 
61976
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75559
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61977
75560
class CT_IfElseStmt : public CT_Statement, public CSemScope {
61978
 
#line 61979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75561
#line 75562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75562
  friend class ::CCExprResolve;
 
75563
  friend class ::CExprResolve;
61979
75564
  friend class ::WinIfExists;
61980
75565
  friend class ::WinImportHandler;
61981
75566
  friend class ::WinMacros;
61982
 
  friend class ::CMatchSyntax;
61983
 
  friend class ::ExtGnu;
 
75567
  friend class ::WinAsm;
 
75568
  friend class ::WinDeclSpecs;
 
75569
  friend class ::WinMemberExplSpec;
 
75570
  friend class ::WinTypeKeywords;
 
75571
  friend class ::WinFriend;
61984
75572
  friend class ::ExtAC;
61985
75573
  friend class ::ExtACBuilderCoupling;
61986
75574
  friend class ::ExtACSyntaxCoupling;
61987
75575
  friend class ::ExtACTree;
61988
75576
  friend class ::ExtACKeywords;
61989
 
  friend class ::WinAsm;
61990
 
  friend class ::WinDeclSpecs;
61991
 
  friend class ::WinMemberExplSpec;
61992
 
  friend class ::WinTypeKeywords;
 
75577
  friend class ::ExtGnu;
61993
75578
  friend class ::PragmaOnceUnitState;
61994
75579
  friend class ::PragmaOnce;
61995
 
  friend class ::CCExprResolve;
61996
 
  friend class ::CExprResolve;
 
75580
  friend class ::CMatchSyntax;
61997
75581
 
61998
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75582
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61999
75583
 
62000
75584
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
62001
75585
 
62002
75586
public:
62003
75587
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
62004
75588
                 CTree *is, CTree *e, CTree *es) {
62005
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
62006
 
    sons[5] = e; sons[6] = es; 
 
75589
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
75590
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
75591
    AddSon (sons[6], es); 
62007
75592
  }
 
75593
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62008
75594
  static const char *NodeId ();
 
75595
  /** Get the name of the node. Can be compared with NodeId(). */
62009
75596
  const char *NodeName () const { return NodeId (); }
 
75597
  /** Get the number of sons. */
62010
75598
  int Sons () const { return 7; }
 
75599
  /** Get the n-th son.
 
75600
   *  \param n The index of the son.
 
75601
   *  \return The n-th son or NULL. */
62011
75602
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
62012
75603
  CTree *Condition () const { return sons[2]; }
62013
75604
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
62014
75605
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
75606
  /** Replace a son.
 
75607
   *  \param old_son The son to replace.
 
75608
   *  \param new_son The new son. */
62015
75609
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62016
75610
    CTree::ReplaceSon (sons, 7, old_son, new_son);
62017
75611
  }
 
75612
  CSemScope *SemScope () const { return (CSemScope*)this; }
62018
75613
};
62019
75614
 
62020
75615
 
62021
 
#line 62022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75616
#line 75617 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62022
75617
} // closed Puma
 
75618
class CCExprResolve;
 
75619
class CExprResolve;
62023
75620
class WinIfExists;
62024
75621
class WinImportHandler;
62025
75622
class WinMacros;
62026
 
class CMatchSyntax;
62027
 
class ExtGnu;
 
75623
class WinAsm;
 
75624
class WinDeclSpecs;
 
75625
class WinMemberExplSpec;
 
75626
class WinTypeKeywords;
 
75627
class WinFriend;
62028
75628
class ExtAC;
62029
75629
class ExtACBuilderCoupling;
62030
75630
class ExtACSyntaxCoupling;
62031
75631
class ExtACTree;
62032
75632
class ExtACKeywords;
62033
 
class WinAsm;
62034
 
class WinDeclSpecs;
62035
 
class WinMemberExplSpec;
62036
 
class WinTypeKeywords;
 
75633
class ExtGnu;
62037
75634
class PragmaOnceUnitState;
62038
75635
class PragmaOnce;
62039
 
class CCExprResolve;
62040
 
class CExprResolve;
 
75636
class CMatchSyntax;
62041
75637
namespace Puma {
62042
75638
 
62043
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75639
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62044
75640
class CT_BreakStmt : public CT_Statement {
62045
 
#line 62046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75641
#line 75642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75642
  friend class ::CCExprResolve;
 
75643
  friend class ::CExprResolve;
62046
75644
  friend class ::WinIfExists;
62047
75645
  friend class ::WinImportHandler;
62048
75646
  friend class ::WinMacros;
62049
 
  friend class ::CMatchSyntax;
62050
 
  friend class ::ExtGnu;
 
75647
  friend class ::WinAsm;
 
75648
  friend class ::WinDeclSpecs;
 
75649
  friend class ::WinMemberExplSpec;
 
75650
  friend class ::WinTypeKeywords;
 
75651
  friend class ::WinFriend;
62051
75652
  friend class ::ExtAC;
62052
75653
  friend class ::ExtACBuilderCoupling;
62053
75654
  friend class ::ExtACSyntaxCoupling;
62054
75655
  friend class ::ExtACTree;
62055
75656
  friend class ::ExtACKeywords;
62056
 
  friend class ::WinAsm;
62057
 
  friend class ::WinDeclSpecs;
62058
 
  friend class ::WinMemberExplSpec;
62059
 
  friend class ::WinTypeKeywords;
 
75657
  friend class ::ExtGnu;
62060
75658
  friend class ::PragmaOnceUnitState;
62061
75659
  friend class ::PragmaOnce;
62062
 
  friend class ::CCExprResolve;
62063
 
  friend class ::CExprResolve;
 
75660
  friend class ::CMatchSyntax;
62064
75661
 
62065
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75662
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62066
75663
 
62067
75664
  CTree *sons[2]; // key, semi_colon
62068
75665
 
62069
75666
public:
62070
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
75667
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
75668
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62071
75669
  static const char *NodeId ();
 
75670
  /** Get the name of the node. Can be compared with NodeId(). */
62072
75671
  const char *NodeName () const { return NodeId (); }
 
75672
  /** Get the number of sons. */
62073
75673
  int Sons () const { return 2; }
 
75674
  /** Get the n-th son.
 
75675
   *  \param n The index of the son.
 
75676
   *  \return The n-th son or NULL. */
62074
75677
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
75678
  /** Replace a son.
 
75679
   *  \param old_son The son to replace.
 
75680
   *  \param new_son The new son. */
62075
75681
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62076
75682
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62077
75683
  }
62078
75684
};
62079
75685
 
62080
75686
 
62081
 
#line 62082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75687
#line 75688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62082
75688
} // closed Puma
 
75689
class CCExprResolve;
 
75690
class CExprResolve;
62083
75691
class WinIfExists;
62084
75692
class WinImportHandler;
62085
75693
class WinMacros;
62086
 
class CMatchSyntax;
62087
 
class ExtGnu;
 
75694
class WinAsm;
 
75695
class WinDeclSpecs;
 
75696
class WinMemberExplSpec;
 
75697
class WinTypeKeywords;
 
75698
class WinFriend;
62088
75699
class ExtAC;
62089
75700
class ExtACBuilderCoupling;
62090
75701
class ExtACSyntaxCoupling;
62091
75702
class ExtACTree;
62092
75703
class ExtACKeywords;
62093
 
class WinAsm;
62094
 
class WinDeclSpecs;
62095
 
class WinMemberExplSpec;
62096
 
class WinTypeKeywords;
 
75704
class ExtGnu;
62097
75705
class PragmaOnceUnitState;
62098
75706
class PragmaOnce;
62099
 
class CCExprResolve;
62100
 
class CExprResolve;
 
75707
class CMatchSyntax;
62101
75708
namespace Puma {
62102
75709
 
62103
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75710
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62104
75711
class CT_ContinueStmt : public CT_Statement {
62105
 
#line 62106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75712
#line 75713 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75713
  friend class ::CCExprResolve;
 
75714
  friend class ::CExprResolve;
62106
75715
  friend class ::WinIfExists;
62107
75716
  friend class ::WinImportHandler;
62108
75717
  friend class ::WinMacros;
62109
 
  friend class ::CMatchSyntax;
62110
 
  friend class ::ExtGnu;
 
75718
  friend class ::WinAsm;
 
75719
  friend class ::WinDeclSpecs;
 
75720
  friend class ::WinMemberExplSpec;
 
75721
  friend class ::WinTypeKeywords;
 
75722
  friend class ::WinFriend;
62111
75723
  friend class ::ExtAC;
62112
75724
  friend class ::ExtACBuilderCoupling;
62113
75725
  friend class ::ExtACSyntaxCoupling;
62114
75726
  friend class ::ExtACTree;
62115
75727
  friend class ::ExtACKeywords;
62116
 
  friend class ::WinAsm;
62117
 
  friend class ::WinDeclSpecs;
62118
 
  friend class ::WinMemberExplSpec;
62119
 
  friend class ::WinTypeKeywords;
 
75728
  friend class ::ExtGnu;
62120
75729
  friend class ::PragmaOnceUnitState;
62121
75730
  friend class ::PragmaOnce;
62122
 
  friend class ::CCExprResolve;
62123
 
  friend class ::CExprResolve;
 
75731
  friend class ::CMatchSyntax;
62124
75732
 
62125
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75733
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62126
75734
 
62127
75735
  CTree *sons[2]; // key, semi_colon
62128
75736
 
62129
75737
public:
62130
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
75738
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
75739
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62131
75740
  static const char *NodeId ();
 
75741
  /** Get the name of the node. Can be compared with NodeId(). */
62132
75742
  const char *NodeName () const { return NodeId (); }
 
75743
  /** Get the number of sons. */
62133
75744
  int Sons () const { return 2; }
 
75745
  /** Get the n-th son.
 
75746
   *  \param n The index of the son.
 
75747
   *  \return The n-th son or NULL. */
62134
75748
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
75749
  /** Replace a son.
 
75750
   *  \param old_son The son to replace.
 
75751
   *  \param new_son The new son. */
62135
75752
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62136
75753
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62137
75754
  }
62138
75755
};
62139
75756
 
62140
75757
 
62141
 
#line 62142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75758
#line 75759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62142
75759
} // closed Puma
 
75760
class CCExprResolve;
 
75761
class CExprResolve;
62143
75762
class WinIfExists;
62144
75763
class WinImportHandler;
62145
75764
class WinMacros;
62146
 
class CMatchSyntax;
62147
 
class ExtGnu;
 
75765
class WinAsm;
 
75766
class WinDeclSpecs;
 
75767
class WinMemberExplSpec;
 
75768
class WinTypeKeywords;
 
75769
class WinFriend;
62148
75770
class ExtAC;
62149
75771
class ExtACBuilderCoupling;
62150
75772
class ExtACSyntaxCoupling;
62151
75773
class ExtACTree;
62152
75774
class ExtACKeywords;
62153
 
class WinAsm;
62154
 
class WinDeclSpecs;
62155
 
class WinMemberExplSpec;
62156
 
class WinTypeKeywords;
 
75775
class ExtGnu;
62157
75776
class PragmaOnceUnitState;
62158
75777
class PragmaOnce;
62159
 
class CCExprResolve;
62160
 
class CExprResolve;
 
75778
class CMatchSyntax;
62161
75779
namespace Puma {
62162
75780
 
62163
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75781
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62164
75782
class CT_GotoStmt : public CT_Statement {
62165
 
#line 62166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75783
#line 75784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75784
  friend class ::CCExprResolve;
 
75785
  friend class ::CExprResolve;
62166
75786
  friend class ::WinIfExists;
62167
75787
  friend class ::WinImportHandler;
62168
75788
  friend class ::WinMacros;
62169
 
  friend class ::CMatchSyntax;
62170
 
  friend class ::ExtGnu;
 
75789
  friend class ::WinAsm;
 
75790
  friend class ::WinDeclSpecs;
 
75791
  friend class ::WinMemberExplSpec;
 
75792
  friend class ::WinTypeKeywords;
 
75793
  friend class ::WinFriend;
62171
75794
  friend class ::ExtAC;
62172
75795
  friend class ::ExtACBuilderCoupling;
62173
75796
  friend class ::ExtACSyntaxCoupling;
62174
75797
  friend class ::ExtACTree;
62175
75798
  friend class ::ExtACKeywords;
62176
 
  friend class ::WinAsm;
62177
 
  friend class ::WinDeclSpecs;
62178
 
  friend class ::WinMemberExplSpec;
62179
 
  friend class ::WinTypeKeywords;
 
75799
  friend class ::ExtGnu;
62180
75800
  friend class ::PragmaOnceUnitState;
62181
75801
  friend class ::PragmaOnce;
62182
 
  friend class ::CCExprResolve;
62183
 
  friend class ::CExprResolve;
 
75802
  friend class ::CMatchSyntax;
62184
75803
 
62185
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75804
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62186
75805
 
62187
75806
  CTree *sons[3]; // key, label, semi_colon
62188
75807
 
62189
75808
public:
62190
75809
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
62191
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
75810
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
62192
75811
  }
 
75812
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62193
75813
  static const char *NodeId ();
 
75814
  /** Get the name of the node. Can be compared with NodeId(). */
62194
75815
  const char *NodeName () const { return NodeId (); }
 
75816
  /** Get the number of sons. */
62195
75817
  int Sons () const { return 3; }
 
75818
  /** Get the n-th son.
 
75819
   *  \param n The index of the son.
 
75820
   *  \return The n-th son or NULL. */
62196
75821
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62197
75822
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
75823
  /** Replace a son.
 
75824
   *  \param old_son The son to replace.
 
75825
   *  \param new_son The new son. */
62198
75826
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62199
75827
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62200
75828
  }
62201
75829
};
62202
75830
 
62203
75831
 
62204
 
#line 62205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75832
#line 75833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62205
75833
} // closed Puma
 
75834
class CCExprResolve;
 
75835
class CExprResolve;
62206
75836
class WinIfExists;
62207
75837
class WinImportHandler;
62208
75838
class WinMacros;
62209
 
class CMatchSyntax;
62210
 
class ExtGnu;
 
75839
class WinAsm;
 
75840
class WinDeclSpecs;
 
75841
class WinMemberExplSpec;
 
75842
class WinTypeKeywords;
 
75843
class WinFriend;
62211
75844
class ExtAC;
62212
75845
class ExtACBuilderCoupling;
62213
75846
class ExtACSyntaxCoupling;
62214
75847
class ExtACTree;
62215
75848
class ExtACKeywords;
62216
 
class WinAsm;
62217
 
class WinDeclSpecs;
62218
 
class WinMemberExplSpec;
62219
 
class WinTypeKeywords;
 
75849
class ExtGnu;
62220
75850
class PragmaOnceUnitState;
62221
75851
class PragmaOnce;
62222
 
class CCExprResolve;
62223
 
class CExprResolve;
 
75852
class CMatchSyntax;
62224
75853
namespace Puma {
62225
75854
 
62226
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75855
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62227
75856
class CT_ReturnStmt : public CT_Statement {
62228
 
#line 62229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75857
#line 75858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75858
  friend class ::CCExprResolve;
 
75859
  friend class ::CExprResolve;
62229
75860
  friend class ::WinIfExists;
62230
75861
  friend class ::WinImportHandler;
62231
75862
  friend class ::WinMacros;
62232
 
  friend class ::CMatchSyntax;
62233
 
  friend class ::ExtGnu;
 
75863
  friend class ::WinAsm;
 
75864
  friend class ::WinDeclSpecs;
 
75865
  friend class ::WinMemberExplSpec;
 
75866
  friend class ::WinTypeKeywords;
 
75867
  friend class ::WinFriend;
62234
75868
  friend class ::ExtAC;
62235
75869
  friend class ::ExtACBuilderCoupling;
62236
75870
  friend class ::ExtACSyntaxCoupling;
62237
75871
  friend class ::ExtACTree;
62238
75872
  friend class ::ExtACKeywords;
62239
 
  friend class ::WinAsm;
62240
 
  friend class ::WinDeclSpecs;
62241
 
  friend class ::WinMemberExplSpec;
62242
 
  friend class ::WinTypeKeywords;
 
75873
  friend class ::ExtGnu;
62243
75874
  friend class ::PragmaOnceUnitState;
62244
75875
  friend class ::PragmaOnce;
62245
 
  friend class ::CCExprResolve;
62246
 
  friend class ::CExprResolve;
 
75876
  friend class ::CMatchSyntax;
62247
75877
 
62248
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75878
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62249
75879
 
62250
75880
  CTree *sons[3]; // key, expr, semi_colon
62251
75881
 
62252
75882
public:
62253
75883
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
62254
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
75884
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
62255
75885
  }
 
75886
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62256
75887
  static const char *NodeId ();
 
75888
  /** Get the name of the node. Can be compared with NodeId(). */
62257
75889
  const char *NodeName () const { return NodeId (); }
 
75890
  /** Get the number of sons. */
62258
75891
  int Sons () const { return CTree::Sons (sons, 3); }
 
75892
  /** Get the n-th son.
 
75893
   *  \param n The index of the son.
 
75894
   *  \return The n-th son or NULL. */
62259
75895
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62260
75896
  CTree *Expr () const { return sons[1]; }
 
75897
  /** Replace a son.
 
75898
   *  \param old_son The son to replace.
 
75899
   *  \param new_son The new son. */
62261
75900
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62262
75901
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62263
75902
  }
62264
75903
};
62265
75904
 
62266
75905
 
62267
 
#line 62268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75906
#line 75907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62268
75907
} // closed Puma
 
75908
class CCExprResolve;
 
75909
class CExprResolve;
62269
75910
class WinIfExists;
62270
75911
class WinImportHandler;
62271
75912
class WinMacros;
62272
 
class CMatchSyntax;
62273
 
class ExtGnu;
 
75913
class WinAsm;
 
75914
class WinDeclSpecs;
 
75915
class WinMemberExplSpec;
 
75916
class WinTypeKeywords;
 
75917
class WinFriend;
62274
75918
class ExtAC;
62275
75919
class ExtACBuilderCoupling;
62276
75920
class ExtACSyntaxCoupling;
62277
75921
class ExtACTree;
62278
75922
class ExtACKeywords;
62279
 
class WinAsm;
62280
 
class WinDeclSpecs;
62281
 
class WinMemberExplSpec;
62282
 
class WinTypeKeywords;
 
75923
class ExtGnu;
62283
75924
class PragmaOnceUnitState;
62284
75925
class PragmaOnce;
62285
 
class CCExprResolve;
62286
 
class CExprResolve;
 
75926
class CMatchSyntax;
62287
75927
namespace Puma {
62288
75928
 
62289
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75929
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62290
75930
class CT_WhileStmt : public CT_Statement, public CSemScope {
62291
 
#line 62292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75931
#line 75932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
75932
  friend class ::CCExprResolve;
 
75933
  friend class ::CExprResolve;
62292
75934
  friend class ::WinIfExists;
62293
75935
  friend class ::WinImportHandler;
62294
75936
  friend class ::WinMacros;
62295
 
  friend class ::CMatchSyntax;
62296
 
  friend class ::ExtGnu;
 
75937
  friend class ::WinAsm;
 
75938
  friend class ::WinDeclSpecs;
 
75939
  friend class ::WinMemberExplSpec;
 
75940
  friend class ::WinTypeKeywords;
 
75941
  friend class ::WinFriend;
62297
75942
  friend class ::ExtAC;
62298
75943
  friend class ::ExtACBuilderCoupling;
62299
75944
  friend class ::ExtACSyntaxCoupling;
62300
75945
  friend class ::ExtACTree;
62301
75946
  friend class ::ExtACKeywords;
62302
 
  friend class ::WinAsm;
62303
 
  friend class ::WinDeclSpecs;
62304
 
  friend class ::WinMemberExplSpec;
62305
 
  friend class ::WinTypeKeywords;
 
75947
  friend class ::ExtGnu;
62306
75948
  friend class ::PragmaOnceUnitState;
62307
75949
  friend class ::PragmaOnce;
62308
 
  friend class ::CCExprResolve;
62309
 
  friend class ::CExprResolve;
 
75950
  friend class ::CMatchSyntax;
62310
75951
 
62311
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75952
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62312
75953
 
62313
75954
  CTree *sons[5]; // key, open, cond, close, stmt
62314
75955
 
62315
75956
public:
62316
75957
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
62317
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
75958
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
75959
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
62318
75960
  }
 
75961
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62319
75962
  static const char *NodeId ();
 
75963
  /** Get the name of the node. Can be compared with NodeId(). */
62320
75964
  const char *NodeName () const { return NodeId (); }
 
75965
  /** Get the number of sons. */
62321
75966
  int Sons () const { return 5; }
 
75967
  /** Get the n-th son.
 
75968
   *  \param n The index of the son.
 
75969
   *  \return The n-th son or NULL. */
62322
75970
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
62323
75971
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
62324
75972
  CTree *Condition () const { return sons[2]; }
 
75973
  /** Replace a son.
 
75974
   *  \param old_son The son to replace.
 
75975
   *  \param new_son The new son. */
62325
75976
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62326
75977
    CTree::ReplaceSon (sons, 5, old_son, new_son);
62327
75978
  }
 
75979
  CSemScope *SemScope () const { return (CSemScope*)this; }
62328
75980
};
62329
75981
 
62330
75982
 
62331
 
#line 62332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
75983
#line 75984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62332
75984
} // closed Puma
 
75985
class CCExprResolve;
 
75986
class CExprResolve;
62333
75987
class WinIfExists;
62334
75988
class WinImportHandler;
62335
75989
class WinMacros;
62336
 
class CMatchSyntax;
62337
 
class ExtGnu;
 
75990
class WinAsm;
 
75991
class WinDeclSpecs;
 
75992
class WinMemberExplSpec;
 
75993
class WinTypeKeywords;
 
75994
class WinFriend;
62338
75995
class ExtAC;
62339
75996
class ExtACBuilderCoupling;
62340
75997
class ExtACSyntaxCoupling;
62341
75998
class ExtACTree;
62342
75999
class ExtACKeywords;
62343
 
class WinAsm;
62344
 
class WinDeclSpecs;
62345
 
class WinMemberExplSpec;
62346
 
class WinTypeKeywords;
 
76000
class ExtGnu;
62347
76001
class PragmaOnceUnitState;
62348
76002
class PragmaOnce;
62349
 
class CCExprResolve;
62350
 
class CExprResolve;
 
76003
class CMatchSyntax;
62351
76004
namespace Puma {
62352
76005
 
62353
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76006
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62354
76007
class CT_DoStmt : public CT_Statement {
62355
 
#line 62356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76008
#line 76009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76009
  friend class ::CCExprResolve;
 
76010
  friend class ::CExprResolve;
62356
76011
  friend class ::WinIfExists;
62357
76012
  friend class ::WinImportHandler;
62358
76013
  friend class ::WinMacros;
62359
 
  friend class ::CMatchSyntax;
62360
 
  friend class ::ExtGnu;
 
76014
  friend class ::WinAsm;
 
76015
  friend class ::WinDeclSpecs;
 
76016
  friend class ::WinMemberExplSpec;
 
76017
  friend class ::WinTypeKeywords;
 
76018
  friend class ::WinFriend;
62361
76019
  friend class ::ExtAC;
62362
76020
  friend class ::ExtACBuilderCoupling;
62363
76021
  friend class ::ExtACSyntaxCoupling;
62364
76022
  friend class ::ExtACTree;
62365
76023
  friend class ::ExtACKeywords;
62366
 
  friend class ::WinAsm;
62367
 
  friend class ::WinDeclSpecs;
62368
 
  friend class ::WinMemberExplSpec;
62369
 
  friend class ::WinTypeKeywords;
 
76024
  friend class ::ExtGnu;
62370
76025
  friend class ::PragmaOnceUnitState;
62371
76026
  friend class ::PragmaOnce;
62372
 
  friend class ::CCExprResolve;
62373
 
  friend class ::CExprResolve;
 
76027
  friend class ::CMatchSyntax;
62374
76028
 
62375
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76029
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62376
76030
 
62377
76031
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
62378
76032
 
62379
76033
public:
62380
76034
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
62381
76035
             CTree *c, CTree *sc) {
62382
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
62383
 
    sons[5] = c; sons[6] = sc; 
 
76036
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
76037
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
76038
    AddSon (sons[6], sc); 
62384
76039
  }
 
76040
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62385
76041
  static const char *NodeId ();
 
76042
  /** Get the name of the node. Can be compared with NodeId(). */
62386
76043
  const char *NodeName () const { return NodeId (); }
 
76044
  /** Get the number of sons. */
62387
76045
  int Sons () const { return 7; }
 
76046
  /** Get the n-th son.
 
76047
   *  \param n The index of the son.
 
76048
   *  \return The n-th son or NULL. */
62388
76049
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
62389
76050
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
62390
76051
  CTree *Expr () const { return sons[4]; }
 
76052
  /** Replace a son.
 
76053
   *  \param old_son The son to replace.
 
76054
   *  \param new_son The new son. */
62391
76055
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62392
76056
    CTree::ReplaceSon (sons, 7, old_son, new_son);
62393
76057
  }
62394
76058
};
62395
76059
 
62396
76060
 
62397
 
#line 62398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76061
#line 76062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62398
76062
} // closed Puma
 
76063
class CCExprResolve;
 
76064
class CExprResolve;
62399
76065
class WinIfExists;
62400
76066
class WinImportHandler;
62401
76067
class WinMacros;
62402
 
class CMatchSyntax;
62403
 
class ExtGnu;
 
76068
class WinAsm;
 
76069
class WinDeclSpecs;
 
76070
class WinMemberExplSpec;
 
76071
class WinTypeKeywords;
 
76072
class WinFriend;
62404
76073
class ExtAC;
62405
76074
class ExtACBuilderCoupling;
62406
76075
class ExtACSyntaxCoupling;
62407
76076
class ExtACTree;
62408
76077
class ExtACKeywords;
62409
 
class WinAsm;
62410
 
class WinDeclSpecs;
62411
 
class WinMemberExplSpec;
62412
 
class WinTypeKeywords;
 
76078
class ExtGnu;
62413
76079
class PragmaOnceUnitState;
62414
76080
class PragmaOnce;
62415
 
class CCExprResolve;
62416
 
class CExprResolve;
 
76081
class CMatchSyntax;
62417
76082
namespace Puma {
62418
76083
 
62419
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76084
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62420
76085
class CT_ForStmt : public CT_Statement, public CSemScope {
62421
 
#line 62422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76086
#line 76087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76087
  friend class ::CCExprResolve;
 
76088
  friend class ::CExprResolve;
62422
76089
  friend class ::WinIfExists;
62423
76090
  friend class ::WinImportHandler;
62424
76091
  friend class ::WinMacros;
62425
 
  friend class ::CMatchSyntax;
62426
 
  friend class ::ExtGnu;
 
76092
  friend class ::WinAsm;
 
76093
  friend class ::WinDeclSpecs;
 
76094
  friend class ::WinMemberExplSpec;
 
76095
  friend class ::WinTypeKeywords;
 
76096
  friend class ::WinFriend;
62427
76097
  friend class ::ExtAC;
62428
76098
  friend class ::ExtACBuilderCoupling;
62429
76099
  friend class ::ExtACSyntaxCoupling;
62430
76100
  friend class ::ExtACTree;
62431
76101
  friend class ::ExtACKeywords;
62432
 
  friend class ::WinAsm;
62433
 
  friend class ::WinDeclSpecs;
62434
 
  friend class ::WinMemberExplSpec;
62435
 
  friend class ::WinTypeKeywords;
 
76102
  friend class ::ExtGnu;
62436
76103
  friend class ::PragmaOnceUnitState;
62437
76104
  friend class ::PragmaOnce;
62438
 
  friend class ::CCExprResolve;
62439
 
  friend class ::CExprResolve;
 
76105
  friend class ::CMatchSyntax;
62440
76106
 
62441
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76107
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62442
76108
 
62443
76109
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
62444
76110
 
62445
76111
public:
62446
76112
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
62447
76113
              CTree *e, CTree *c, CTree *stmt) {
62448
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
62449
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
76114
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
76115
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
76116
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
62450
76117
  }
 
76118
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62451
76119
  static const char *NodeId ();
 
76120
  /** Get the name of the node. Can be compared with NodeId(). */
62452
76121
  const char *NodeName () const { return NodeId (); }
 
76122
  /** Get the number of sons. */
62453
76123
  int Sons () const { return CTree::Sons (sons, 8); }
 
76124
  /** Get the n-th son.
 
76125
   *  \param n The index of the son.
 
76126
   *  \return The n-th son or NULL. */
62454
76127
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
62455
76128
  CTree *InitStmt () const { return sons[2]; }
62456
76129
  CTree *Condition () const { return sons[3]; }
62457
76130
  CTree *Expr () const { return sons[5]; }
62458
76131
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
76132
  /** Replace a son.
 
76133
   *  \param old_son The son to replace.
 
76134
   *  \param new_son The new son. */
62459
76135
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62460
76136
    CTree::ReplaceSon (sons, 8, old_son, new_son);
62461
76137
  }
 
76138
  CSemScope *SemScope () const { return (CSemScope*)this; }
62462
76139
};
62463
76140
 
62464
76141
 
62465
 
#line 62466 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76142
#line 76143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62466
76143
} // closed Puma
 
76144
class CCExprResolve;
 
76145
class CExprResolve;
62467
76146
class WinIfExists;
62468
76147
class WinImportHandler;
62469
76148
class WinMacros;
62470
 
class CMatchSyntax;
62471
 
class ExtGnu;
 
76149
class WinAsm;
 
76150
class WinDeclSpecs;
 
76151
class WinMemberExplSpec;
 
76152
class WinTypeKeywords;
 
76153
class WinFriend;
62472
76154
class ExtAC;
62473
76155
class ExtACBuilderCoupling;
62474
76156
class ExtACSyntaxCoupling;
62475
76157
class ExtACTree;
62476
76158
class ExtACKeywords;
62477
 
class WinAsm;
62478
 
class WinDeclSpecs;
62479
 
class WinMemberExplSpec;
62480
 
class WinTypeKeywords;
 
76159
class ExtGnu;
62481
76160
class PragmaOnceUnitState;
62482
76161
class PragmaOnce;
62483
 
class CCExprResolve;
62484
 
class CExprResolve;
 
76162
class CMatchSyntax;
62485
76163
namespace Puma {
62486
76164
 
62487
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76165
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62488
76166
class CT_Condition : public CT_Decl, public CSemObject {
62489
 
#line 62490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76167
#line 76168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76168
  friend class ::CCExprResolve;
 
76169
  friend class ::CExprResolve;
62490
76170
  friend class ::WinIfExists;
62491
76171
  friend class ::WinImportHandler;
62492
76172
  friend class ::WinMacros;
62493
 
  friend class ::CMatchSyntax;
62494
 
  friend class ::ExtGnu;
 
76173
  friend class ::WinAsm;
 
76174
  friend class ::WinDeclSpecs;
 
76175
  friend class ::WinMemberExplSpec;
 
76176
  friend class ::WinTypeKeywords;
 
76177
  friend class ::WinFriend;
62495
76178
  friend class ::ExtAC;
62496
76179
  friend class ::ExtACBuilderCoupling;
62497
76180
  friend class ::ExtACSyntaxCoupling;
62498
76181
  friend class ::ExtACTree;
62499
76182
  friend class ::ExtACKeywords;
62500
 
  friend class ::WinAsm;
62501
 
  friend class ::WinDeclSpecs;
62502
 
  friend class ::WinMemberExplSpec;
62503
 
  friend class ::WinTypeKeywords;
 
76183
  friend class ::ExtGnu;
62504
76184
  friend class ::PragmaOnceUnitState;
62505
76185
  friend class ::PragmaOnce;
62506
 
  friend class ::CCExprResolve;
62507
 
  friend class ::CExprResolve;
 
76186
  friend class ::CMatchSyntax;
62508
76187
 
62509
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76188
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62510
76189
 
62511
76190
  CTree *sons[3]; // declspecs, declarator, init
62512
76191
 
62513
76192
public:
62514
76193
  CT_Condition (CTree *dsl, CTree *d) {
62515
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
76194
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
62516
76195
  }
 
76196
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62517
76197
  static const char *NodeId ();
 
76198
  /** Get the name of the node. Can be compared with NodeId(). */
62518
76199
  const char *NodeName () const { return NodeId (); }
 
76200
  /** Get the number of sons. */
62519
76201
  int Sons () const { return CTree::Sons (sons, 3); }
 
76202
  /** Get the n-th son.
 
76203
   *  \param n The index of the son.
 
76204
   *  \return The n-th son or NULL. */
62520
76205
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62521
76206
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
62522
76207
  CTree *Declarator () const { return sons[1]; }
62523
76208
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
62524
76209
  CSemObject *SemObject () const { return (CSemObject*)this; }
62525
 
  void Initializer (CTree *i) { sons[2] = i; }
 
76210
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
76211
  /** Replace a son.
 
76212
   *  \param old_son The son to replace.
 
76213
   *  \param new_son The new son. */
62526
76214
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62527
76215
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62528
76216
  }
62535
76223
/*****************************************************************************/
62536
76224
 
62537
76225
 
62538
 
#line 62539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76226
#line 76227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62539
76227
} // closed Puma
 
76228
class CCExprResolve;
 
76229
class CExprResolve;
62540
76230
class WinIfExists;
62541
76231
class WinImportHandler;
62542
76232
class WinMacros;
62543
 
class CMatchSyntax;
62544
 
class ExtGnu;
 
76233
class WinAsm;
 
76234
class WinDeclSpecs;
 
76235
class WinMemberExplSpec;
 
76236
class WinTypeKeywords;
 
76237
class WinFriend;
62545
76238
class ExtAC;
62546
76239
class ExtACBuilderCoupling;
62547
76240
class ExtACSyntaxCoupling;
62548
76241
class ExtACTree;
62549
76242
class ExtACKeywords;
62550
 
class WinAsm;
62551
 
class WinDeclSpecs;
62552
 
class WinMemberExplSpec;
62553
 
class WinTypeKeywords;
 
76243
class ExtGnu;
62554
76244
class PragmaOnceUnitState;
62555
76245
class PragmaOnce;
62556
 
class CCExprResolve;
62557
 
class CExprResolve;
62558
 
namespace Puma {
62559
 
 
62560
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76246
class CMatchSyntax;
 
76247
namespace Puma {
 
76248
 
 
76249
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76250
 
 
76251
#line 76252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76252
} // closed Puma
 
76253
 
 
76254
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
76255
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
76256
#include "ExtACTree.ah"
 
76257
#endif
 
76258
namespace Puma {
 
76259
 
 
76260
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62561
76261
class CT_ClassDef : public CT_Decl, public CSemObject {
62562
 
#line 62563 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76262
#line 76263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76263
  friend class ::CCExprResolve;
 
76264
  friend class ::CExprResolve;
62563
76265
  friend class ::WinIfExists;
62564
76266
  friend class ::WinImportHandler;
62565
76267
  friend class ::WinMacros;
62566
 
  friend class ::CMatchSyntax;
62567
 
  friend class ::ExtGnu;
 
76268
  friend class ::WinAsm;
 
76269
  friend class ::WinDeclSpecs;
 
76270
  friend class ::WinMemberExplSpec;
 
76271
  friend class ::WinTypeKeywords;
 
76272
  friend class ::WinFriend;
62568
76273
  friend class ::ExtAC;
62569
76274
  friend class ::ExtACBuilderCoupling;
62570
76275
  friend class ::ExtACSyntaxCoupling;
62571
76276
  friend class ::ExtACTree;
62572
76277
  friend class ::ExtACKeywords;
62573
 
  friend class ::WinAsm;
62574
 
  friend class ::WinDeclSpecs;
62575
 
  friend class ::WinMemberExplSpec;
62576
 
  friend class ::WinTypeKeywords;
 
76278
  friend class ::ExtGnu;
62577
76279
  friend class ::PragmaOnceUnitState;
62578
76280
  friend class ::PragmaOnce;
62579
 
  friend class ::CCExprResolve;
62580
 
  friend class ::CExprResolve;
 
76281
  friend class ::CMatchSyntax;
62581
76282
 
62582
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76283
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62583
76284
 
62584
76285
   
62585
 
#line 62586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76286
#line 76287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62586
76287
 
62587
76288
  struct __ac_wrapper_sons {
62588
76289
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
62597
76298
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
62598
76299
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
62599
76300
  } sons
62600
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76301
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62601
76302
 
62602
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76303
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62603
76304
; // key, name, bases, members
62604
76305
  CTree *obj_decl;
62605
76306
 
62606
76307
public:
62607
76308
  
62608
 
#line 62609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
62609
 
 
62610
 
 
62611
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
62612
 
  typedef void Result;
62613
 
  typedef ::Puma::CT_ClassDef That;
62614
 
  typedef ::Puma::CT_ClassDef Target;
62615
 
  static const int JPID = 4;
 
76309
#line 76310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76310
 
 
76311
 
 
76312
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
76313
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
76314
  typedef TResult Result;
 
76315
  typedef TThat   That;
 
76316
  typedef TTarget Target;
 
76317
  enum { ARGS = TArgs::ARGS };
 
76318
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
76319
  static const int JPID = 55;
62616
76320
  static const AC::JPType JPTYPE = (AC::JPType)16;
62617
76321
  struct Res {
62618
76322
    typedef void Type;
62619
76323
    typedef void ReferredType;
62620
76324
  };
62621
 
  enum { ARGS = 3 };
62622
 
  template <int I, int DUMMY = 0> struct Arg {
62623
 
    typedef void Type;
62624
 
    typedef void ReferredType;
62625
 
  };
62626
 
  template <int DUMMY> struct Arg<0, DUMMY> {
62627
 
    typedef ::Puma::CTree * Type;
62628
 
    typedef ::Puma::CTree * ReferredType;
62629
 
  };
62630
 
  template <int DUMMY> struct Arg<1, DUMMY> {
62631
 
    typedef ::Puma::CTree * Type;
62632
 
    typedef ::Puma::CTree * ReferredType;
62633
 
  };
62634
 
  template <int DUMMY> struct Arg<2, DUMMY> {
62635
 
    typedef ::Puma::CTree * Type;
62636
 
    typedef ::Puma::CTree * ReferredType;
62637
 
  };
62638
76325
 
62639
76326
  That *_that;
62640
76327
 
62643
76330
};
62644
76331
 
62645
76332
 
62646
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76333
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62647
76334
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
62648
 
#line 62649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76335
#line 76336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62649
76336
{
62650
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
62651
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
62652
 
this->__exec_old_C1(arg0, arg1, arg2);
62653
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
62654
 
 
 
76337
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TLE > > > > __TJP;
 
76338
    __TJP tjp;
 
76339
  tjp._that =  (__TJP::That*)this;
 
76340
    this->__exec_old_C1(arg0, arg1, arg2);
 
76341
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
76342
  
62655
76343
}
62656
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
62657
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76344
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
76345
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62658
76346
{
62659
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
76347
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
76348
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
62660
76349
  }
 
76350
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62661
76351
  static const char *NodeId ();
 
76352
  /** Get the name of the node. Can be compared with NodeId(). */
62662
76353
  const char *NodeName () const { return NodeId (); }
 
76354
  /** Get the number of sons. */
62663
76355
  int Sons () const { return CTree::Sons (sons, 4); }
 
76356
  /** Get the n-th son.
 
76357
   *  \param n The index of the son.
 
76358
   *  \return The n-th son or NULL. */
62664
76359
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
62665
76360
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
62666
76361
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
62667
76362
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
62668
76363
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
62669
76364
  CSemObject *SemObject () const { return (CSemObject*)this; }
62670
 
  void Members (CTree *m) { sons[3] = m; }
62671
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
62672
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
76365
  void Members (CTree *m) { AddSon (sons[3], m); }
 
76366
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
76367
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
76368
  /** Replace a son.
 
76369
   *  \param old_son The son to replace.
 
76370
   *  \param new_son The new son. */
62673
76371
  void ReplaceSon (CTree *old_son, CTree *new_son) {
62674
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
62675
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
76372
    CTree::ReplaceSon (sons, 4, old_son, new_son);
62676
76373
  }
62677
76374
   private:
62678
76375
 
62679
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
62680
 
 CTree * _intro_members ;
 
76376
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
76377
 Puma :: CTree * _intro_members ;
 
76378
Puma :: CTree * _base_intros ;
62681
76379
public :
62682
 
CTree * IntroMembers ( ) const { return _intro_members ; }
62683
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
62684
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62685
 
 
62686
 
#line 62687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
62687
 
 
62688
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
62689
 
  typedef void Result;
62690
 
  typedef ::Puma::CT_ClassDef That;
62691
 
  typedef ::Puma::CT_ClassDef Target;
62692
 
  static const int JPID = 4;
 
76380
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
76381
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
76382
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
76383
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
76384
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76385
 
 
76386
#line 76387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76387
 
 
76388
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
76389
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
76390
  typedef TResult Result;
 
76391
  typedef TThat   That;
 
76392
  typedef TTarget Target;
 
76393
  enum { ARGS = TArgs::ARGS };
 
76394
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
76395
  static const int JPID = 6315;
62693
76396
  static const AC::JPType JPTYPE = (AC::JPType)16;
62694
76397
  struct Res {
62695
76398
    typedef void Type;
62696
76399
    typedef void ReferredType;
62697
76400
  };
62698
 
  enum { ARGS = 1 };
62699
 
  template <int I, int DUMMY = 0> struct Arg {
62700
 
    typedef void Type;
62701
 
    typedef void ReferredType;
62702
 
  };
62703
 
  template <int DUMMY> struct Arg<0, DUMMY> {
62704
 
    typedef const ::Puma::CT_ClassDef & Type;
62705
 
    typedef const ::Puma::CT_ClassDef ReferredType;
62706
 
  };
62707
76401
 
62708
76402
  That *_that;
62709
76403
 
62712
76406
};
62713
76407
 
62714
76408
 
62715
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76409
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62716
76410
 
62717
 
#line 62718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76411
#line 76412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62718
76412
 
62719
76413
public:
62720
 
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members) {
62721
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
62722
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
62723
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
76414
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members), _base_intros (arg0._base_intros) {
 
76415
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
76416
  __TJP tjp;
 
76417
  tjp._that =  (__TJP::That*)this;
 
76418
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
62724
76419
 
62725
76420
}
62726
76421
 
62727
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62728
 
 
62729
 
#line 62730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
62730
 
 
62731
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
62732
 
  typedef void Result;
62733
 
  typedef ::Puma::CT_ClassDef That;
62734
 
  typedef ::Puma::CT_ClassDef Target;
62735
 
  static const int JPID = 4;
 
76422
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76423
 
 
76424
#line 76425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76425
 
 
76426
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
76427
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
76428
  typedef TResult Result;
 
76429
  typedef TThat   That;
 
76430
  typedef TTarget Target;
 
76431
  enum { ARGS = TArgs::ARGS };
 
76432
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
76433
  static const int JPID = 6313;
62736
76434
  static const AC::JPType JPTYPE = (AC::JPType)32;
62737
76435
  struct Res {
62738
76436
    typedef void Type;
62739
76437
    typedef void ReferredType;
62740
76438
  };
62741
 
  enum { ARGS = 0 };
62742
 
  template <int I, int DUMMY = 0> struct Arg {
62743
 
    typedef void Type;
62744
 
    typedef void ReferredType;
62745
 
  };
62746
76439
 
62747
76440
  That *_that;
62748
76441
 
62751
76444
};
62752
76445
 
62753
76446
 
62754
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76447
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62755
76448
 
62756
 
#line 62757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76449
#line 76450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62757
76450
 
62758
76451
public:
62759
76452
inline ~CT_ClassDef () {
62760
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
62761
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
62762
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
76453
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
76454
  __TJP tjp;
 
76455
  tjp._that =  (__TJP::That*)this;
 
76456
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
62763
76457
 
62764
76458
}
62765
76459
 
62766
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76460
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62767
76461
};
62768
76462
      
62769
76463
 
62770
 
#line 62771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76464
#line 76465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62771
76465
} // closed Puma
 
76466
class CCExprResolve;
 
76467
class CExprResolve;
62772
76468
class WinIfExists;
62773
76469
class WinImportHandler;
62774
76470
class WinMacros;
62775
 
class CMatchSyntax;
62776
 
class ExtGnu;
 
76471
class WinAsm;
 
76472
class WinDeclSpecs;
 
76473
class WinMemberExplSpec;
 
76474
class WinTypeKeywords;
 
76475
class WinFriend;
62777
76476
class ExtAC;
62778
76477
class ExtACBuilderCoupling;
62779
76478
class ExtACSyntaxCoupling;
62780
76479
class ExtACTree;
62781
76480
class ExtACKeywords;
62782
 
class WinAsm;
62783
 
class WinDeclSpecs;
62784
 
class WinMemberExplSpec;
62785
 
class WinTypeKeywords;
 
76481
class ExtGnu;
62786
76482
class PragmaOnceUnitState;
62787
76483
class PragmaOnce;
62788
 
class CCExprResolve;
62789
 
class CExprResolve;
 
76484
class CMatchSyntax;
62790
76485
namespace Puma {
62791
76486
 
62792
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76487
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62793
76488
class CT_UnionDef : public CT_ClassDef {
62794
 
#line 62795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76489
#line 76490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76490
  friend class ::CCExprResolve;
 
76491
  friend class ::CExprResolve;
62795
76492
  friend class ::WinIfExists;
62796
76493
  friend class ::WinImportHandler;
62797
76494
  friend class ::WinMacros;
62798
 
  friend class ::CMatchSyntax;
62799
 
  friend class ::ExtGnu;
 
76495
  friend class ::WinAsm;
 
76496
  friend class ::WinDeclSpecs;
 
76497
  friend class ::WinMemberExplSpec;
 
76498
  friend class ::WinTypeKeywords;
 
76499
  friend class ::WinFriend;
62800
76500
  friend class ::ExtAC;
62801
76501
  friend class ::ExtACBuilderCoupling;
62802
76502
  friend class ::ExtACSyntaxCoupling;
62803
76503
  friend class ::ExtACTree;
62804
76504
  friend class ::ExtACKeywords;
62805
 
  friend class ::WinAsm;
62806
 
  friend class ::WinDeclSpecs;
62807
 
  friend class ::WinMemberExplSpec;
62808
 
  friend class ::WinTypeKeywords;
 
76505
  friend class ::ExtGnu;
62809
76506
  friend class ::PragmaOnceUnitState;
62810
76507
  friend class ::PragmaOnce;
62811
 
  friend class ::CCExprResolve;
62812
 
  friend class ::CExprResolve;
 
76508
  friend class ::CMatchSyntax;
62813
76509
 
62814
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76510
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62815
76511
 
62816
76512
public:
62817
76513
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
62818
76514
  static const char *NodeId ();
 
76515
  /** Get the name of the node. Can be compared with NodeId(). */
62819
76516
  const char *NodeName () const { return NodeId (); }
62820
76517
};
62821
76518
      
62822
76519
 
62823
 
#line 62824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76520
#line 76521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62824
76521
} // closed Puma
 
76522
class CCExprResolve;
 
76523
class CExprResolve;
62825
76524
class WinIfExists;
62826
76525
class WinImportHandler;
62827
76526
class WinMacros;
62828
 
class CMatchSyntax;
62829
 
class ExtGnu;
 
76527
class WinAsm;
 
76528
class WinDeclSpecs;
 
76529
class WinMemberExplSpec;
 
76530
class WinTypeKeywords;
 
76531
class WinFriend;
62830
76532
class ExtAC;
62831
76533
class ExtACBuilderCoupling;
62832
76534
class ExtACSyntaxCoupling;
62833
76535
class ExtACTree;
62834
76536
class ExtACKeywords;
62835
 
class WinAsm;
62836
 
class WinDeclSpecs;
62837
 
class WinMemberExplSpec;
62838
 
class WinTypeKeywords;
 
76537
class ExtGnu;
62839
76538
class PragmaOnceUnitState;
62840
76539
class PragmaOnce;
62841
 
class CCExprResolve;
62842
 
class CExprResolve;
 
76540
class CMatchSyntax;
62843
76541
namespace Puma {
62844
76542
 
62845
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76543
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62846
76544
class CT_MembList : public CT_DeclList, public CSemScope {
62847
 
#line 62848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76545
#line 76546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76546
  friend class ::CCExprResolve;
 
76547
  friend class ::CExprResolve;
62848
76548
  friend class ::WinIfExists;
62849
76549
  friend class ::WinImportHandler;
62850
76550
  friend class ::WinMacros;
62851
 
  friend class ::CMatchSyntax;
62852
 
  friend class ::ExtGnu;
 
76551
  friend class ::WinAsm;
 
76552
  friend class ::WinDeclSpecs;
 
76553
  friend class ::WinMemberExplSpec;
 
76554
  friend class ::WinTypeKeywords;
 
76555
  friend class ::WinFriend;
62853
76556
  friend class ::ExtAC;
62854
76557
  friend class ::ExtACBuilderCoupling;
62855
76558
  friend class ::ExtACSyntaxCoupling;
62856
76559
  friend class ::ExtACTree;
62857
76560
  friend class ::ExtACKeywords;
62858
 
  friend class ::WinAsm;
62859
 
  friend class ::WinDeclSpecs;
62860
 
  friend class ::WinMemberExplSpec;
62861
 
  friend class ::WinTypeKeywords;
 
76561
  friend class ::ExtGnu;
62862
76562
  friend class ::PragmaOnceUnitState;
62863
76563
  friend class ::PragmaOnce;
62864
 
  friend class ::CCExprResolve;
62865
 
  friend class ::CExprResolve;
 
76564
  friend class ::CMatchSyntax;
62866
76565
 
62867
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76566
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62868
76567
 
62869
76568
public:
62870
76569
  CT_MembList (int size = 10, int incr = 10) : 
62871
76570
    CT_DeclList (size, incr) {}
 
76571
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62872
76572
  static const char *NodeId ();
 
76573
  /** Get the name of the node. Can be compared with NodeId(). */
62873
76574
  const char *NodeName () const { return NodeId (); }
 
76575
  CSemScope *SemScope () const { return (CSemScope*)this; }
62874
76576
};
62875
76577
 
62876
76578
 
62877
 
#line 62878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76579
#line 76580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62878
76580
} // closed Puma
 
76581
class CCExprResolve;
 
76582
class CExprResolve;
62879
76583
class WinIfExists;
62880
76584
class WinImportHandler;
62881
76585
class WinMacros;
62882
 
class CMatchSyntax;
62883
 
class ExtGnu;
 
76586
class WinAsm;
 
76587
class WinDeclSpecs;
 
76588
class WinMemberExplSpec;
 
76589
class WinTypeKeywords;
 
76590
class WinFriend;
62884
76591
class ExtAC;
62885
76592
class ExtACBuilderCoupling;
62886
76593
class ExtACSyntaxCoupling;
62887
76594
class ExtACTree;
62888
76595
class ExtACKeywords;
62889
 
class WinAsm;
62890
 
class WinDeclSpecs;
62891
 
class WinMemberExplSpec;
62892
 
class WinTypeKeywords;
 
76596
class ExtGnu;
62893
76597
class PragmaOnceUnitState;
62894
76598
class PragmaOnce;
62895
 
class CCExprResolve;
62896
 
class CExprResolve;
 
76599
class CMatchSyntax;
62897
76600
namespace Puma {
62898
76601
 
62899
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76602
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62900
76603
class CT_MembInitList : public CT_List, public CSemScope {
62901
 
#line 62902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76604
#line 76605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76605
  friend class ::CCExprResolve;
 
76606
  friend class ::CExprResolve;
62902
76607
  friend class ::WinIfExists;
62903
76608
  friend class ::WinImportHandler;
62904
76609
  friend class ::WinMacros;
62905
 
  friend class ::CMatchSyntax;
62906
 
  friend class ::ExtGnu;
 
76610
  friend class ::WinAsm;
 
76611
  friend class ::WinDeclSpecs;
 
76612
  friend class ::WinMemberExplSpec;
 
76613
  friend class ::WinTypeKeywords;
 
76614
  friend class ::WinFriend;
62907
76615
  friend class ::ExtAC;
62908
76616
  friend class ::ExtACBuilderCoupling;
62909
76617
  friend class ::ExtACSyntaxCoupling;
62910
76618
  friend class ::ExtACTree;
62911
76619
  friend class ::ExtACKeywords;
62912
 
  friend class ::WinAsm;
62913
 
  friend class ::WinDeclSpecs;
62914
 
  friend class ::WinMemberExplSpec;
62915
 
  friend class ::WinTypeKeywords;
 
76620
  friend class ::ExtGnu;
62916
76621
  friend class ::PragmaOnceUnitState;
62917
76622
  friend class ::PragmaOnce;
62918
 
  friend class ::CCExprResolve;
62919
 
  friend class ::CExprResolve;
 
76623
  friend class ::CMatchSyntax;
62920
76624
 
62921
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76625
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62922
76626
 
62923
76627
public:
62924
76628
  CT_MembInitList (int size = 2) : 
62925
76629
    CT_List (size, 2, CT_List::OPEN) {}
62926
76630
  static const char *NodeId ();
 
76631
  /** Get the name of the node. Can be compared with NodeId(). */
62927
76632
  const char *NodeName () const { return NodeId (); }
 
76633
  CSemScope *SemScope () const { return (CSemScope*)this; }
62928
76634
};
62929
76635
 
62930
76636
 
62931
 
#line 62932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76637
#line 76638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
62932
76638
} // closed Puma
 
76639
class CCExprResolve;
 
76640
class CExprResolve;
62933
76641
class WinIfExists;
62934
76642
class WinImportHandler;
62935
76643
class WinMacros;
62936
 
class CMatchSyntax;
62937
 
class ExtGnu;
 
76644
class WinAsm;
 
76645
class WinDeclSpecs;
 
76646
class WinMemberExplSpec;
 
76647
class WinTypeKeywords;
 
76648
class WinFriend;
62938
76649
class ExtAC;
62939
76650
class ExtACBuilderCoupling;
62940
76651
class ExtACSyntaxCoupling;
62941
76652
class ExtACTree;
62942
76653
class ExtACKeywords;
62943
 
class WinAsm;
62944
 
class WinDeclSpecs;
62945
 
class WinMemberExplSpec;
62946
 
class WinTypeKeywords;
 
76654
class ExtGnu;
62947
76655
class PragmaOnceUnitState;
62948
76656
class PragmaOnce;
62949
 
class CCExprResolve;
62950
 
class CExprResolve;
62951
 
namespace Puma {
62952
 
 
62953
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76657
class CMatchSyntax;
 
76658
namespace Puma {
 
76659
 
 
76660
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76661
 
 
76662
#line 76663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76663
} // closed Puma
 
76664
 
 
76665
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
76666
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
76667
#include "CCExprResolveH.ah"
 
76668
#endif
 
76669
namespace Puma {
 
76670
 
 
76671
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76672
 
 
76673
#line 76674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76674
} // closed Puma
 
76675
 
 
76676
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
76677
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
76678
#include "CExprResolveH.ah"
 
76679
#endif
 
76680
namespace Puma {
 
76681
 
 
76682
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62954
76683
class CT_MembInit : public CT_Expression, public CSemObject {
62955
 
#line 62956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76684
#line 76685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76685
  friend class ::CCExprResolve;
 
76686
  friend class ::CExprResolve;
62956
76687
  friend class ::WinIfExists;
62957
76688
  friend class ::WinImportHandler;
62958
76689
  friend class ::WinMacros;
62959
 
  friend class ::CMatchSyntax;
62960
 
  friend class ::ExtGnu;
 
76690
  friend class ::WinAsm;
 
76691
  friend class ::WinDeclSpecs;
 
76692
  friend class ::WinMemberExplSpec;
 
76693
  friend class ::WinTypeKeywords;
 
76694
  friend class ::WinFriend;
62961
76695
  friend class ::ExtAC;
62962
76696
  friend class ::ExtACBuilderCoupling;
62963
76697
  friend class ::ExtACSyntaxCoupling;
62964
76698
  friend class ::ExtACTree;
62965
76699
  friend class ::ExtACKeywords;
62966
 
  friend class ::WinAsm;
62967
 
  friend class ::WinDeclSpecs;
62968
 
  friend class ::WinMemberExplSpec;
62969
 
  friend class ::WinTypeKeywords;
 
76700
  friend class ::ExtGnu;
62970
76701
  friend class ::PragmaOnceUnitState;
62971
76702
  friend class ::PragmaOnce;
62972
 
  friend class ::CCExprResolve;
62973
 
  friend class ::CExprResolve;
 
76703
  friend class ::CMatchSyntax;
62974
76704
 
62975
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76705
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62976
76706
 
62977
76707
  CTree *sons[2]; // name, init
62978
76708
 
62979
76709
public:
62980
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
76710
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
76711
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62981
76712
  static const char *NodeId ();
 
76713
  /** Get the name of the node. Can be compared with NodeId(). */
62982
76714
  const char *NodeName () const { return NodeId (); }
 
76715
  /** Get the number of sons. */
62983
76716
  int Sons () const { return 2; }
 
76717
  /** Get the n-th son.
 
76718
   *  \param n The index of the son.
 
76719
   *  \return The n-th son or NULL. */
62984
76720
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
76721
  /** Replace a son.
 
76722
   *  \param old_son The son to replace.
 
76723
   *  \param new_son The new son. */
62985
76724
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62986
76725
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62987
76726
  }
62991
76730
   private:
62992
76731
  typedef CT_MembInit CCExprResolveExpr;
62993
76732
 
62994
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
76733
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62995
76734
 public :
62996
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
76735
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62997
76736
  typedef CT_MembInit CExprResolveExpr;
62998
76737
 
62999
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
76738
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
63000
76739
 public :
63001
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
63002
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76740
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
76741
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63003
76742
};
63004
76743
 
63005
76744
 
63006
 
#line 63007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76745
#line 76746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63007
76746
} // closed Puma
 
76747
class CCExprResolve;
 
76748
class CExprResolve;
63008
76749
class WinIfExists;
63009
76750
class WinImportHandler;
63010
76751
class WinMacros;
63011
 
class CMatchSyntax;
63012
 
class ExtGnu;
 
76752
class WinAsm;
 
76753
class WinDeclSpecs;
 
76754
class WinMemberExplSpec;
 
76755
class WinTypeKeywords;
 
76756
class WinFriend;
63013
76757
class ExtAC;
63014
76758
class ExtACBuilderCoupling;
63015
76759
class ExtACSyntaxCoupling;
63016
76760
class ExtACTree;
63017
76761
class ExtACKeywords;
63018
 
class WinAsm;
63019
 
class WinDeclSpecs;
63020
 
class WinMemberExplSpec;
63021
 
class WinTypeKeywords;
 
76762
class ExtGnu;
63022
76763
class PragmaOnceUnitState;
63023
76764
class PragmaOnce;
63024
 
class CCExprResolve;
63025
 
class CExprResolve;
 
76765
class CMatchSyntax;
63026
76766
namespace Puma {
63027
76767
 
63028
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76768
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63029
76769
class CT_BaseSpecList : public CT_List {
63030
 
#line 63031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76770
#line 76771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76771
  friend class ::CCExprResolve;
 
76772
  friend class ::CExprResolve;
63031
76773
  friend class ::WinIfExists;
63032
76774
  friend class ::WinImportHandler;
63033
76775
  friend class ::WinMacros;
63034
 
  friend class ::CMatchSyntax;
63035
 
  friend class ::ExtGnu;
 
76776
  friend class ::WinAsm;
 
76777
  friend class ::WinDeclSpecs;
 
76778
  friend class ::WinMemberExplSpec;
 
76779
  friend class ::WinTypeKeywords;
 
76780
  friend class ::WinFriend;
63036
76781
  friend class ::ExtAC;
63037
76782
  friend class ::ExtACBuilderCoupling;
63038
76783
  friend class ::ExtACSyntaxCoupling;
63039
76784
  friend class ::ExtACTree;
63040
76785
  friend class ::ExtACKeywords;
63041
 
  friend class ::WinAsm;
63042
 
  friend class ::WinDeclSpecs;
63043
 
  friend class ::WinMemberExplSpec;
63044
 
  friend class ::WinTypeKeywords;
 
76786
  friend class ::ExtGnu;
63045
76787
  friend class ::PragmaOnceUnitState;
63046
76788
  friend class ::PragmaOnce;
63047
 
  friend class ::CCExprResolve;
63048
 
  friend class ::CExprResolve;
 
76789
  friend class ::CMatchSyntax;
63049
76790
 
63050
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76791
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63051
76792
 
63052
76793
public:
63053
76794
  CT_BaseSpecList (int size = 2) : 
63054
76795
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
76796
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63055
76797
  static const char *NodeId ();
 
76798
  /** Get the name of the node. Can be compared with NodeId(). */
63056
76799
  const char *NodeName () const { return NodeId (); }
63057
76800
};
63058
76801
 
63059
76802
 
63060
 
#line 63061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76803
#line 76804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63061
76804
} // closed Puma
 
76805
class CCExprResolve;
 
76806
class CExprResolve;
63062
76807
class WinIfExists;
63063
76808
class WinImportHandler;
63064
76809
class WinMacros;
63065
 
class CMatchSyntax;
63066
 
class ExtGnu;
 
76810
class WinAsm;
 
76811
class WinDeclSpecs;
 
76812
class WinMemberExplSpec;
 
76813
class WinTypeKeywords;
 
76814
class WinFriend;
63067
76815
class ExtAC;
63068
76816
class ExtACBuilderCoupling;
63069
76817
class ExtACSyntaxCoupling;
63070
76818
class ExtACTree;
63071
76819
class ExtACKeywords;
63072
 
class WinAsm;
63073
 
class WinDeclSpecs;
63074
 
class WinMemberExplSpec;
63075
 
class WinTypeKeywords;
 
76820
class ExtGnu;
63076
76821
class PragmaOnceUnitState;
63077
76822
class PragmaOnce;
63078
 
class CCExprResolve;
63079
 
class CExprResolve;
 
76823
class CMatchSyntax;
63080
76824
namespace Puma {
63081
76825
 
63082
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76826
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63083
76827
class CT_AccessSpec : public CTree {
63084
 
#line 63085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76828
#line 76829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76829
  friend class ::CCExprResolve;
 
76830
  friend class ::CExprResolve;
63085
76831
  friend class ::WinIfExists;
63086
76832
  friend class ::WinImportHandler;
63087
76833
  friend class ::WinMacros;
63088
 
  friend class ::CMatchSyntax;
63089
 
  friend class ::ExtGnu;
 
76834
  friend class ::WinAsm;
 
76835
  friend class ::WinDeclSpecs;
 
76836
  friend class ::WinMemberExplSpec;
 
76837
  friend class ::WinTypeKeywords;
 
76838
  friend class ::WinFriend;
63090
76839
  friend class ::ExtAC;
63091
76840
  friend class ::ExtACBuilderCoupling;
63092
76841
  friend class ::ExtACSyntaxCoupling;
63093
76842
  friend class ::ExtACTree;
63094
76843
  friend class ::ExtACKeywords;
63095
 
  friend class ::WinAsm;
63096
 
  friend class ::WinDeclSpecs;
63097
 
  friend class ::WinMemberExplSpec;
63098
 
  friend class ::WinTypeKeywords;
 
76844
  friend class ::ExtGnu;
63099
76845
  friend class ::PragmaOnceUnitState;
63100
76846
  friend class ::PragmaOnce;
63101
 
  friend class ::CCExprResolve;
63102
 
  friend class ::CExprResolve;
 
76847
  friend class ::CMatchSyntax;
63103
76848
 
63104
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76849
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63105
76850
 
63106
76851
  CTree *sons[2]; // access, colon
63107
76852
 
63108
76853
public:
63109
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
76854
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
76855
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63110
76856
  static const char *NodeId ();
 
76857
  /** Get the name of the node. Can be compared with NodeId(). */
63111
76858
  const char *NodeName () const { return NodeId (); }
 
76859
  /** Get the number of sons. */
63112
76860
  int Sons () const { return 2; }
 
76861
  /** Get the n-th son.
 
76862
   *  \param n The index of the son.
 
76863
   *  \return The n-th son or NULL. */
63113
76864
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
63114
76865
  int Access () const { return sons[0]->token ()->type (); }
 
76866
  /** Replace a son.
 
76867
   *  \param old_son The son to replace.
 
76868
   *  \param new_son The new son. */
63115
76869
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63116
76870
    CTree::ReplaceSon (sons, 2, old_son, new_son);
63117
76871
  }
63118
76872
};
63119
76873
 
63120
76874
 
63121
 
#line 63122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76875
#line 76876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63122
76876
} // closed Puma
 
76877
class CCExprResolve;
 
76878
class CExprResolve;
63123
76879
class WinIfExists;
63124
76880
class WinImportHandler;
63125
76881
class WinMacros;
63126
 
class CMatchSyntax;
63127
 
class ExtGnu;
 
76882
class WinAsm;
 
76883
class WinDeclSpecs;
 
76884
class WinMemberExplSpec;
 
76885
class WinTypeKeywords;
 
76886
class WinFriend;
63128
76887
class ExtAC;
63129
76888
class ExtACBuilderCoupling;
63130
76889
class ExtACSyntaxCoupling;
63131
76890
class ExtACTree;
63132
76891
class ExtACKeywords;
63133
 
class WinAsm;
63134
 
class WinDeclSpecs;
63135
 
class WinMemberExplSpec;
63136
 
class WinTypeKeywords;
 
76892
class ExtGnu;
63137
76893
class PragmaOnceUnitState;
63138
76894
class PragmaOnce;
63139
 
class CCExprResolve;
63140
 
class CExprResolve;
 
76895
class CMatchSyntax;
63141
76896
namespace Puma {
63142
76897
 
63143
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76898
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63144
76899
class CT_BaseSpec : public CTree {
63145
 
#line 63146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76900
#line 76901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76901
  friend class ::CCExprResolve;
 
76902
  friend class ::CExprResolve;
63146
76903
  friend class ::WinIfExists;
63147
76904
  friend class ::WinImportHandler;
63148
76905
  friend class ::WinMacros;
63149
 
  friend class ::CMatchSyntax;
63150
 
  friend class ::ExtGnu;
 
76906
  friend class ::WinAsm;
 
76907
  friend class ::WinDeclSpecs;
 
76908
  friend class ::WinMemberExplSpec;
 
76909
  friend class ::WinTypeKeywords;
 
76910
  friend class ::WinFriend;
63151
76911
  friend class ::ExtAC;
63152
76912
  friend class ::ExtACBuilderCoupling;
63153
76913
  friend class ::ExtACSyntaxCoupling;
63154
76914
  friend class ::ExtACTree;
63155
76915
  friend class ::ExtACKeywords;
63156
 
  friend class ::WinAsm;
63157
 
  friend class ::WinDeclSpecs;
63158
 
  friend class ::WinMemberExplSpec;
63159
 
  friend class ::WinTypeKeywords;
 
76916
  friend class ::ExtGnu;
63160
76917
  friend class ::PragmaOnceUnitState;
63161
76918
  friend class ::PragmaOnce;
63162
 
  friend class ::CCExprResolve;
63163
 
  friend class ::CExprResolve;
 
76919
  friend class ::CMatchSyntax;
63164
76920
 
63165
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76921
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63166
76922
 
63167
76923
  CTree *sons[3]; // virtual, access, name
63168
76924
 
63169
76925
public:
63170
76926
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
63171
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
76927
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
63172
76928
  }
 
76929
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63173
76930
  static const char *NodeId ();
 
76931
  /** Get the name of the node. Can be compared with NodeId(). */
63174
76932
  const char *NodeName () const { return NodeId (); }
 
76933
  /** Get the number of sons. */
63175
76934
  int Sons () const { return CTree::Sons (sons, 3); }
 
76935
  /** Get the n-th son.
 
76936
   *  \param n The index of the son.
 
76937
   *  \return The n-th son or NULL. */
63176
76938
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
63177
76939
  int Access () const { return sons[1]->token ()->type (); }
63178
76940
  CTree *AccessSpec () const { return sons[1]; }
63179
76941
  CTree *Virtual () const { return sons[0]; }
63180
76942
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
76943
  /** Replace a son.
 
76944
   *  \param old_son The son to replace.
 
76945
   *  \param new_son The new son. */
63181
76946
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63182
76947
    CTree::ReplaceSon (sons, 3, old_son, new_son);
63183
76948
  }
63184
76949
};
63185
76950
 
63186
76951
 
63187
 
#line 63188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76952
#line 76953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63188
76953
} // closed Puma
 
76954
class CCExprResolve;
 
76955
class CExprResolve;
63189
76956
class WinIfExists;
63190
76957
class WinImportHandler;
63191
76958
class WinMacros;
63192
 
class CMatchSyntax;
63193
 
class ExtGnu;
 
76959
class WinAsm;
 
76960
class WinDeclSpecs;
 
76961
class WinMemberExplSpec;
 
76962
class WinTypeKeywords;
 
76963
class WinFriend;
63194
76964
class ExtAC;
63195
76965
class ExtACBuilderCoupling;
63196
76966
class ExtACSyntaxCoupling;
63197
76967
class ExtACTree;
63198
76968
class ExtACKeywords;
63199
 
class WinAsm;
63200
 
class WinDeclSpecs;
63201
 
class WinMemberExplSpec;
63202
 
class WinTypeKeywords;
 
76969
class ExtGnu;
63203
76970
class PragmaOnceUnitState;
63204
76971
class PragmaOnce;
63205
 
class CCExprResolve;
63206
 
class CExprResolve;
 
76972
class CMatchSyntax;
63207
76973
namespace Puma {
63208
76974
 
63209
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76975
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63210
76976
class CT_AccessDecl : public CT_Decl {
63211
 
#line 63212 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
76977
#line 76978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
76978
  friend class ::CCExprResolve;
 
76979
  friend class ::CExprResolve;
63212
76980
  friend class ::WinIfExists;
63213
76981
  friend class ::WinImportHandler;
63214
76982
  friend class ::WinMacros;
63215
 
  friend class ::CMatchSyntax;
63216
 
  friend class ::ExtGnu;
 
76983
  friend class ::WinAsm;
 
76984
  friend class ::WinDeclSpecs;
 
76985
  friend class ::WinMemberExplSpec;
 
76986
  friend class ::WinTypeKeywords;
 
76987
  friend class ::WinFriend;
63217
76988
  friend class ::ExtAC;
63218
76989
  friend class ::ExtACBuilderCoupling;
63219
76990
  friend class ::ExtACSyntaxCoupling;
63220
76991
  friend class ::ExtACTree;
63221
76992
  friend class ::ExtACKeywords;
63222
 
  friend class ::WinAsm;
63223
 
  friend class ::WinDeclSpecs;
63224
 
  friend class ::WinMemberExplSpec;
63225
 
  friend class ::WinTypeKeywords;
 
76993
  friend class ::ExtGnu;
63226
76994
  friend class ::PragmaOnceUnitState;
63227
76995
  friend class ::PragmaOnce;
63228
 
  friend class ::CCExprResolve;
63229
 
  friend class ::CExprResolve;
 
76996
  friend class ::CMatchSyntax;
63230
76997
 
63231
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76998
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63232
76999
 
63233
77000
  CTree *sons[2]; // name, semi_colon
63234
77001
 
63235
77002
public:
63236
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
77003
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
77004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63237
77005
  static const char *NodeId ();
 
77006
  /** Get the name of the node. Can be compared with NodeId(). */
63238
77007
  const char *NodeName () const { return NodeId (); }
 
77008
  /** Get the number of sons. */
63239
77009
  int Sons () const { return 2; }
 
77010
  /** Get the n-th son.
 
77011
   *  \param n The index of the son.
 
77012
   *  \return The n-th son or NULL. */
63240
77013
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
63241
77014
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
77015
  /** Replace a son.
 
77016
   *  \param old_son The son to replace.
 
77017
   *  \param new_son The new son. */
63242
77018
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63243
77019
    CTree::ReplaceSon (sons, 2, old_son, new_son);
63244
77020
  }
63245
77021
};
63246
77022
 
63247
77023
 
63248
 
#line 63249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77024
#line 77025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63249
77025
} // closed Puma
 
77026
class CCExprResolve;
 
77027
class CExprResolve;
63250
77028
class WinIfExists;
63251
77029
class WinImportHandler;
63252
77030
class WinMacros;
63253
 
class CMatchSyntax;
63254
 
class ExtGnu;
 
77031
class WinAsm;
 
77032
class WinDeclSpecs;
 
77033
class WinMemberExplSpec;
 
77034
class WinTypeKeywords;
 
77035
class WinFriend;
63255
77036
class ExtAC;
63256
77037
class ExtACBuilderCoupling;
63257
77038
class ExtACSyntaxCoupling;
63258
77039
class ExtACTree;
63259
77040
class ExtACKeywords;
63260
 
class WinAsm;
63261
 
class WinDeclSpecs;
63262
 
class WinMemberExplSpec;
63263
 
class WinTypeKeywords;
 
77041
class ExtGnu;
63264
77042
class PragmaOnceUnitState;
63265
77043
class PragmaOnce;
63266
 
class CCExprResolve;
63267
 
class CExprResolve;
 
77044
class CMatchSyntax;
63268
77045
namespace Puma {
63269
77046
 
63270
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77047
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63271
77048
class CT_UsingDecl : public CT_AccessDecl {
63272
 
#line 63273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77049
#line 77050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77050
  friend class ::CCExprResolve;
 
77051
  friend class ::CExprResolve;
63273
77052
  friend class ::WinIfExists;
63274
77053
  friend class ::WinImportHandler;
63275
77054
  friend class ::WinMacros;
63276
 
  friend class ::CMatchSyntax;
63277
 
  friend class ::ExtGnu;
 
77055
  friend class ::WinAsm;
 
77056
  friend class ::WinDeclSpecs;
 
77057
  friend class ::WinMemberExplSpec;
 
77058
  friend class ::WinTypeKeywords;
 
77059
  friend class ::WinFriend;
63278
77060
  friend class ::ExtAC;
63279
77061
  friend class ::ExtACBuilderCoupling;
63280
77062
  friend class ::ExtACSyntaxCoupling;
63281
77063
  friend class ::ExtACTree;
63282
77064
  friend class ::ExtACKeywords;
63283
 
  friend class ::WinAsm;
63284
 
  friend class ::WinDeclSpecs;
63285
 
  friend class ::WinMemberExplSpec;
63286
 
  friend class ::WinTypeKeywords;
 
77065
  friend class ::ExtGnu;
63287
77066
  friend class ::PragmaOnceUnitState;
63288
77067
  friend class ::PragmaOnce;
63289
 
  friend class ::CCExprResolve;
63290
 
  friend class ::CExprResolve;
 
77068
  friend class ::CMatchSyntax;
63291
77069
 
63292
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77070
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63293
77071
 
63294
77072
  CTree *sons[2]; // using, typename
63295
77073
 
63296
77074
public:
63297
77075
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
63298
 
    sons[0] = u; sons[1] = 0; 
 
77076
    AddSon (sons[0], u); AddSon (sons[1], 0); 
63299
77077
  }
63300
77078
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
63301
 
    sons[0] = u; sons[1] = t; 
 
77079
    AddSon (sons[0], u); AddSon (sons[1], t); 
63302
77080
  }
 
77081
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63303
77082
  static const char *NodeId ();
 
77083
  /** Get the name of the node. Can be compared with NodeId(). */
63304
77084
  const char *NodeName () const { return NodeId (); }
 
77085
  /** Get the number of sons. */
63305
77086
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
77087
  /** Get the n-th son.
 
77088
   *  \param n The index of the son.
 
77089
   *  \return The n-th son or NULL. */
63306
77090
  CTree *Son (int n) const {
63307
77091
    int num = CTree::Sons (sons, 2);
63308
77092
    CTree *result = CTree::Son (sons, 2, n);
63309
77093
    return result ? result : CT_AccessDecl::Son (n-num);
63310
77094
  }
63311
77095
  CTree *Typename () const { return sons[1]; }
 
77096
  /** Replace a son.
 
77097
   *  \param old_son The son to replace.
 
77098
   *  \param new_son The new son. */
63312
77099
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63313
77100
    CTree::ReplaceSon (sons, 2, old_son, new_son);
63314
77101
    CT_AccessDecl::ReplaceSon (old_son, new_son);
63322
77109
/*****************************************************************************/
63323
77110
 
63324
77111
 
63325
 
#line 63326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77112
#line 77113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63326
77113
} // closed Puma
 
77114
class CCExprResolve;
 
77115
class CExprResolve;
63327
77116
class WinIfExists;
63328
77117
class WinImportHandler;
63329
77118
class WinMacros;
63330
 
class CMatchSyntax;
63331
 
class ExtGnu;
 
77119
class WinAsm;
 
77120
class WinDeclSpecs;
 
77121
class WinMemberExplSpec;
 
77122
class WinTypeKeywords;
 
77123
class WinFriend;
63332
77124
class ExtAC;
63333
77125
class ExtACBuilderCoupling;
63334
77126
class ExtACSyntaxCoupling;
63335
77127
class ExtACTree;
63336
77128
class ExtACKeywords;
63337
 
class WinAsm;
63338
 
class WinDeclSpecs;
63339
 
class WinMemberExplSpec;
63340
 
class WinTypeKeywords;
 
77129
class ExtGnu;
63341
77130
class PragmaOnceUnitState;
63342
77131
class PragmaOnce;
63343
 
class CCExprResolve;
63344
 
class CExprResolve;
 
77132
class CMatchSyntax;
63345
77133
namespace Puma {
63346
77134
 
63347
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77135
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63348
77136
class CT_Any : public CTree {
63349
 
#line 63350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77137
#line 77138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77138
  friend class ::CCExprResolve;
 
77139
  friend class ::CExprResolve;
63350
77140
  friend class ::WinIfExists;
63351
77141
  friend class ::WinImportHandler;
63352
77142
  friend class ::WinMacros;
63353
 
  friend class ::CMatchSyntax;
63354
 
  friend class ::ExtGnu;
 
77143
  friend class ::WinAsm;
 
77144
  friend class ::WinDeclSpecs;
 
77145
  friend class ::WinMemberExplSpec;
 
77146
  friend class ::WinTypeKeywords;
 
77147
  friend class ::WinFriend;
63355
77148
  friend class ::ExtAC;
63356
77149
  friend class ::ExtACBuilderCoupling;
63357
77150
  friend class ::ExtACSyntaxCoupling;
63358
77151
  friend class ::ExtACTree;
63359
77152
  friend class ::ExtACKeywords;
63360
 
  friend class ::WinAsm;
63361
 
  friend class ::WinDeclSpecs;
63362
 
  friend class ::WinMemberExplSpec;
63363
 
  friend class ::WinTypeKeywords;
 
77153
  friend class ::ExtGnu;
63364
77154
  friend class ::PragmaOnceUnitState;
63365
77155
  friend class ::PragmaOnce;
63366
 
  friend class ::CCExprResolve;
63367
 
  friend class ::CExprResolve;
 
77156
  friend class ::CMatchSyntax;
63368
77157
 
63369
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77158
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63370
77159
 
63371
77160
  CTree *sons[2]; // keyword, extension
63372
77161
 
63373
77162
public:
63374
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
77163
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
77164
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63375
77165
  static const char *NodeId ();
 
77166
  /** Get the name of the node. Can be compared with NodeId(). */
63376
77167
  const char *NodeName () const { return NodeId (); }
 
77168
  /** Get the number of sons. */
63377
77169
  int Sons () const { return CTree::Sons (sons, 2); }
 
77170
  /** Get the n-th son.
 
77171
   *  \param n The index of the son.
 
77172
   *  \return The n-th son or NULL. */
63378
77173
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
77174
  /** Replace a son.
 
77175
   *  \param old_son The son to replace.
 
77176
   *  \param new_son The new son. */
63379
77177
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63380
77178
    CTree::ReplaceSon (sons, 2, old_son, new_son);
63381
77179
  }
63384
77182
};
63385
77183
 
63386
77184
 
63387
 
#line 63388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77185
#line 77186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63388
77186
} // closed Puma
 
77187
class CCExprResolve;
 
77188
class CExprResolve;
63389
77189
class WinIfExists;
63390
77190
class WinImportHandler;
63391
77191
class WinMacros;
63392
 
class CMatchSyntax;
63393
 
class ExtGnu;
 
77192
class WinAsm;
 
77193
class WinDeclSpecs;
 
77194
class WinMemberExplSpec;
 
77195
class WinTypeKeywords;
 
77196
class WinFriend;
63394
77197
class ExtAC;
63395
77198
class ExtACBuilderCoupling;
63396
77199
class ExtACSyntaxCoupling;
63397
77200
class ExtACTree;
63398
77201
class ExtACKeywords;
63399
 
class WinAsm;
63400
 
class WinDeclSpecs;
63401
 
class WinMemberExplSpec;
63402
 
class WinTypeKeywords;
 
77202
class ExtGnu;
63403
77203
class PragmaOnceUnitState;
63404
77204
class PragmaOnce;
63405
 
class CCExprResolve;
63406
 
class CExprResolve;
 
77205
class CMatchSyntax;
63407
77206
namespace Puma {
63408
77207
 
63409
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77208
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63410
77209
class CT_AnyList : public CT_Any {
63411
 
#line 63412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77210
#line 77211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77211
  friend class ::CCExprResolve;
 
77212
  friend class ::CExprResolve;
63412
77213
  friend class ::WinIfExists;
63413
77214
  friend class ::WinImportHandler;
63414
77215
  friend class ::WinMacros;
63415
 
  friend class ::CMatchSyntax;
63416
 
  friend class ::ExtGnu;
 
77216
  friend class ::WinAsm;
 
77217
  friend class ::WinDeclSpecs;
 
77218
  friend class ::WinMemberExplSpec;
 
77219
  friend class ::WinTypeKeywords;
 
77220
  friend class ::WinFriend;
63417
77221
  friend class ::ExtAC;
63418
77222
  friend class ::ExtACBuilderCoupling;
63419
77223
  friend class ::ExtACSyntaxCoupling;
63420
77224
  friend class ::ExtACTree;
63421
77225
  friend class ::ExtACKeywords;
63422
 
  friend class ::WinAsm;
63423
 
  friend class ::WinDeclSpecs;
63424
 
  friend class ::WinMemberExplSpec;
63425
 
  friend class ::WinTypeKeywords;
 
77226
  friend class ::ExtGnu;
63426
77227
  friend class ::PragmaOnceUnitState;
63427
77228
  friend class ::PragmaOnce;
63428
 
  friend class ::CCExprResolve;
63429
 
  friend class ::CExprResolve;
 
77229
  friend class ::CMatchSyntax;
63430
77230
 
63431
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77231
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63432
77232
 
63433
77233
public:
63434
77234
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
77235
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63435
77236
  static const char *NodeId ();
 
77237
  /** Get the name of the node. Can be compared with NodeId(). */
63436
77238
  const char *NodeName () const { return NodeId (); }
63437
77239
};
63438
77240
 
63439
77241
 
63440
 
#line 63441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77242
#line 77243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63441
77243
} // closed Puma
 
77244
class CCExprResolve;
 
77245
class CExprResolve;
63442
77246
class WinIfExists;
63443
77247
class WinImportHandler;
63444
77248
class WinMacros;
63445
 
class CMatchSyntax;
63446
 
class ExtGnu;
 
77249
class WinAsm;
 
77250
class WinDeclSpecs;
 
77251
class WinMemberExplSpec;
 
77252
class WinTypeKeywords;
 
77253
class WinFriend;
63447
77254
class ExtAC;
63448
77255
class ExtACBuilderCoupling;
63449
77256
class ExtACSyntaxCoupling;
63450
77257
class ExtACTree;
63451
77258
class ExtACKeywords;
63452
 
class WinAsm;
63453
 
class WinDeclSpecs;
63454
 
class WinMemberExplSpec;
63455
 
class WinTypeKeywords;
 
77259
class ExtGnu;
63456
77260
class PragmaOnceUnitState;
63457
77261
class PragmaOnce;
63458
 
class CCExprResolve;
63459
 
class CExprResolve;
 
77262
class CMatchSyntax;
63460
77263
namespace Puma {
63461
77264
 
63462
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77265
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63463
77266
class CT_AnyExtension : public CTree, public CSemValue {
63464
 
#line 63465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77267
#line 77268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77268
  friend class ::CCExprResolve;
 
77269
  friend class ::CExprResolve;
63465
77270
  friend class ::WinIfExists;
63466
77271
  friend class ::WinImportHandler;
63467
77272
  friend class ::WinMacros;
63468
 
  friend class ::CMatchSyntax;
63469
 
  friend class ::ExtGnu;
 
77273
  friend class ::WinAsm;
 
77274
  friend class ::WinDeclSpecs;
 
77275
  friend class ::WinMemberExplSpec;
 
77276
  friend class ::WinTypeKeywords;
 
77277
  friend class ::WinFriend;
63470
77278
  friend class ::ExtAC;
63471
77279
  friend class ::ExtACBuilderCoupling;
63472
77280
  friend class ::ExtACSyntaxCoupling;
63473
77281
  friend class ::ExtACTree;
63474
77282
  friend class ::ExtACKeywords;
63475
 
  friend class ::WinAsm;
63476
 
  friend class ::WinDeclSpecs;
63477
 
  friend class ::WinMemberExplSpec;
63478
 
  friend class ::WinTypeKeywords;
 
77283
  friend class ::ExtGnu;
63479
77284
  friend class ::PragmaOnceUnitState;
63480
77285
  friend class ::PragmaOnce;
63481
 
  friend class ::CCExprResolve;
63482
 
  friend class ::CExprResolve;
 
77286
  friend class ::CMatchSyntax;
63483
77287
 
63484
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77288
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63485
77289
 
63486
77290
  CTree *sons[5]; // open, string, comma, cond, close
63487
77291
 
63488
77292
public:
63489
77293
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
63490
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
77294
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
77295
    AddSon (sons[3], c); AddSon (sons[4], cr); 
63491
77296
  }
 
77297
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63492
77298
  static const char *NodeId ();
 
77299
  /** Get the name of the node. Can be compared with NodeId(). */
63493
77300
  const char *NodeName () const { return NodeId (); }
 
77301
  /** Get the number of sons. */
63494
77302
  int Sons () const { return CTree::Sons (sons, 5); }
 
77303
  /** Get the n-th son.
 
77304
   *  \param n The index of the son.
 
77305
   *  \return The n-th son or NULL. */
63495
77306
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
77307
  /** Replace a son.
 
77308
   *  \param old_son The son to replace.
 
77309
   *  \param new_son The new son. */
63496
77310
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63497
77311
    CTree::ReplaceSon (sons, 5, old_son, new_son);
63498
77312
  }
63506
77320
};
63507
77321
 
63508
77322
 
63509
 
#line 63510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77323
#line 77324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63510
77324
} // closed Puma
 
77325
class CCExprResolve;
 
77326
class CExprResolve;
63511
77327
class WinIfExists;
63512
77328
class WinImportHandler;
63513
77329
class WinMacros;
63514
 
class CMatchSyntax;
63515
 
class ExtGnu;
 
77330
class WinAsm;
 
77331
class WinDeclSpecs;
 
77332
class WinMemberExplSpec;
 
77333
class WinTypeKeywords;
 
77334
class WinFriend;
63516
77335
class ExtAC;
63517
77336
class ExtACBuilderCoupling;
63518
77337
class ExtACSyntaxCoupling;
63519
77338
class ExtACTree;
63520
77339
class ExtACKeywords;
63521
 
class WinAsm;
63522
 
class WinDeclSpecs;
63523
 
class WinMemberExplSpec;
63524
 
class WinTypeKeywords;
 
77340
class ExtGnu;
63525
77341
class PragmaOnceUnitState;
63526
77342
class PragmaOnce;
63527
 
class CCExprResolve;
63528
 
class CExprResolve;
 
77343
class CMatchSyntax;
63529
77344
namespace Puma {
63530
77345
 
63531
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77346
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63532
77347
class CT_AnyCondition : public CTree {
63533
 
#line 63534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77348
#line 77349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77349
  friend class ::CCExprResolve;
 
77350
  friend class ::CExprResolve;
63534
77351
  friend class ::WinIfExists;
63535
77352
  friend class ::WinImportHandler;
63536
77353
  friend class ::WinMacros;
63537
 
  friend class ::CMatchSyntax;
63538
 
  friend class ::ExtGnu;
 
77354
  friend class ::WinAsm;
 
77355
  friend class ::WinDeclSpecs;
 
77356
  friend class ::WinMemberExplSpec;
 
77357
  friend class ::WinTypeKeywords;
 
77358
  friend class ::WinFriend;
63539
77359
  friend class ::ExtAC;
63540
77360
  friend class ::ExtACBuilderCoupling;
63541
77361
  friend class ::ExtACSyntaxCoupling;
63542
77362
  friend class ::ExtACTree;
63543
77363
  friend class ::ExtACKeywords;
63544
 
  friend class ::WinAsm;
63545
 
  friend class ::WinDeclSpecs;
63546
 
  friend class ::WinMemberExplSpec;
63547
 
  friend class ::WinTypeKeywords;
 
77364
  friend class ::ExtGnu;
63548
77365
  friend class ::PragmaOnceUnitState;
63549
77366
  friend class ::PragmaOnce;
63550
 
  friend class ::CCExprResolve;
63551
 
  friend class ::CExprResolve;
 
77367
  friend class ::CMatchSyntax;
63552
77368
 
63553
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77369
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63554
77370
 
63555
77371
  CTree *sons[3]; // arg1, arg2, arg3
63556
77372
 
63557
77373
public:
63558
77374
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
63559
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
77375
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
63560
77376
  }
 
77377
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63561
77378
  static const char *NodeId ();
 
77379
  /** Get the name of the node. Can be compared with NodeId(). */
63562
77380
  const char *NodeName () const { return NodeId (); }
 
77381
  /** Get the number of sons. */
63563
77382
  int Sons () const { return CTree::Sons (sons, 3); }
 
77383
  /** Get the n-th son.
 
77384
   *  \param n The index of the son.
 
77385
   *  \return The n-th son or NULL. */
63564
77386
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
77387
  /** Replace a son.
 
77388
   *  \param old_son The son to replace.
 
77389
   *  \param new_son The new son. */
63565
77390
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63566
77391
    CTree::ReplaceSon (sons, 3, old_son, new_son);
63567
77392
  }
63572
77397
 
63573
77398
#endif /* __CTree_h__ */
63574
77399
 
63575
 
#line 63576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
63576
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
63577
 
 
63578
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63579
 
 
63580
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
77400
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
63581
77401
namespace Puma {
63582
77402
 
63583
77403
 
63586
77406
class CTypeInfo;
63587
77407
 
63588
77408
 
63589
 
#line 63590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77409
#line 77410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63590
77410
} // closed Puma
 
77411
class CCExprResolve;
 
77412
class CExprResolve;
63591
77413
class WinIfExists;
63592
77414
class WinImportHandler;
63593
77415
class WinMacros;
63594
 
class CMatchSyntax;
63595
 
class ExtGnu;
 
77416
class WinAsm;
 
77417
class WinDeclSpecs;
 
77418
class WinMemberExplSpec;
 
77419
class WinTypeKeywords;
 
77420
class WinFriend;
63596
77421
class ExtAC;
63597
77422
class ExtACBuilderCoupling;
63598
77423
class ExtACSyntaxCoupling;
63599
77424
class ExtACTree;
63600
77425
class ExtACKeywords;
63601
 
class WinAsm;
63602
 
class WinDeclSpecs;
63603
 
class WinMemberExplSpec;
63604
 
class WinTypeKeywords;
 
77426
class ExtGnu;
63605
77427
class PragmaOnceUnitState;
63606
77428
class PragmaOnce;
63607
 
class CCExprResolve;
63608
 
class CExprResolve;
 
77429
class CMatchSyntax;
63609
77430
namespace Puma {
63610
77431
 
63611
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
77432
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
63612
77433
class CSemVisitor : private CVisitor {
63613
 
#line 63614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77434
#line 77435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77435
  friend class ::CCExprResolve;
 
77436
  friend class ::CExprResolve;
63614
77437
  friend class ::WinIfExists;
63615
77438
  friend class ::WinImportHandler;
63616
77439
  friend class ::WinMacros;
63617
 
  friend class ::CMatchSyntax;
63618
 
  friend class ::ExtGnu;
 
77440
  friend class ::WinAsm;
 
77441
  friend class ::WinDeclSpecs;
 
77442
  friend class ::WinMemberExplSpec;
 
77443
  friend class ::WinTypeKeywords;
 
77444
  friend class ::WinFriend;
63619
77445
  friend class ::ExtAC;
63620
77446
  friend class ::ExtACBuilderCoupling;
63621
77447
  friend class ::ExtACSyntaxCoupling;
63622
77448
  friend class ::ExtACTree;
63623
77449
  friend class ::ExtACKeywords;
63624
 
  friend class ::WinAsm;
63625
 
  friend class ::WinDeclSpecs;
63626
 
  friend class ::WinMemberExplSpec;
63627
 
  friend class ::WinTypeKeywords;
 
77450
  friend class ::ExtGnu;
63628
77451
  friend class ::PragmaOnceUnitState;
63629
77452
  friend class ::PragmaOnce;
63630
 
  friend class ::CCExprResolve;
63631
 
  friend class ::CExprResolve;
 
77453
  friend class ::CMatchSyntax;
63632
77454
 
63633
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
77455
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
63634
77456
 
63635
77457
protected:
63636
77458
  CStructure *current_scope;
63637
77459
  ErrorSink &err;
63638
77460
 
63639
77461
public:
63640
 
  CSemVisitor (ErrorSink &);
 
77462
  CSemVisitor (ErrorSink &, CStructure * = (CStructure*)0);
63641
77463
 
63642
77464
  void run (CTree *, CStructure * = (CStructure*)0);
63643
77465
  void configure (Config &) {}
 
77466
 
 
77467
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
 
77468
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
63644
77469
  
63645
77470
protected:
63646
77471
  void pre_visit (CTree *);
63684
77509
  void post_action (CT_WhileStmt *);
63685
77510
 
63686
77511
  CT_SimpleName *findName (CTree *) const;
63687
 
 
63688
 
public:
63689
 
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
63690
 
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
63691
 
 
63692
77512
};
63693
77513
 
63694
77514
} // namespace Puma
63695
77515
 
63696
77516
#endif /* __CSemVisitor_h__ */
63697
77517
 
63698
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
77518
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
63699
77519
 
63700
 
#line 63701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77520
#line 77521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63701
77521
 
63702
77522
#ifndef __ac_fwd_ExtGnu__
63703
77523
#define __ac_fwd_ExtGnu__
63704
77524
class ExtGnu;
63705
77525
namespace AC {
63706
 
  template <class JoinPoint, class Binding>
63707
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
63708
 
  template <class JoinPoint, class Binding>
63709
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
63710
 
  template <class JoinPoint>
63711
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
63712
 
  template <class JoinPoint>
63713
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
63714
 
  template <class JoinPoint>
63715
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
63716
 
  template <class JoinPoint>
63717
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
63718
 
  template <class JoinPoint>
63719
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
63720
 
  template <class JoinPoint, class Binding>
63721
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
63722
 
  template <class JoinPoint, class Binding>
63723
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
63724
 
  template <class JoinPoint, class Binding>
63725
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
63726
 
  template <class JoinPoint, class Binding>
63727
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
63728
 
  template <class JoinPoint, class Binding>
63729
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
63730
 
  template <class JoinPoint, class Binding>
63731
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
63732
 
  template <class JoinPoint>
63733
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
63734
 
  template <class JoinPoint>
63735
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
63736
 
  template <class JoinPoint, class Binding>
63737
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
77526
  template <class JoinPoint>
 
77527
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
77528
  template <class JoinPoint>
 
77529
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
77530
  template <class JoinPoint>
 
77531
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
77532
  template <class JoinPoint>
 
77533
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
77534
  template <class JoinPoint>
 
77535
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
77536
  template <class JoinPoint>
 
77537
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
77538
  template <class JoinPoint>
 
77539
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
77540
  template <class JoinPoint>
 
77541
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
77542
  template <class JoinPoint>
 
77543
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
77544
  template <class JoinPoint>
 
77545
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
77546
  template <class JoinPoint>
 
77547
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
77548
  template <class JoinPoint>
 
77549
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
77550
  template <class JoinPoint>
 
77551
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
77552
  template <class JoinPoint>
 
77553
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
77554
  template <class JoinPoint>
 
77555
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
77556
  template <class JoinPoint>
 
77557
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
77558
  template <class JoinPoint>
 
77559
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
63738
77560
}
63739
77561
#endif
63740
77562
 
63741
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
63742
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
77563
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
77564
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
63743
77565
#endif
63744
77566
 
63745
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
63746
 
 
63747
 
#line 63748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
63748
 
 
63749
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
63750
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
63751
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
63752
 
 
63753
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
77567
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
63754
77568
// This file is part of PUMA.
63755
77569
// Copyright (C) 1999-2003  The PUMA developer team.
63756
77570
//                                                                
63773
77587
#define __c_sem_decl_specs_h__
63774
77588
 
63775
77589
 
63776
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77590
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63777
77591
 
63778
 
#line 63779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77592
#line 77593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63779
77593
 
63780
77594
#ifndef __ac_fwd_ExtACTree__
63781
77595
#define __ac_fwd_ExtACTree__
63782
77596
class ExtACTree;
63783
77597
namespace AC {
63784
77598
  template <class JoinPoint>
63785
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
77599
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
63786
77600
  template <class JoinPoint>
63787
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
77601
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
63788
77602
}
63789
77603
#endif
63790
77604
 
63791
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
63792
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
77605
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
77606
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
63793
77607
#endif
63794
77608
 
63795
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63796
 
 
63797
 
#line 63798 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
63798
 
 
63799
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63800
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
63801
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
63802
 
 
63803
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77609
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63804
77610
// This file is part of PUMA.
63805
77611
// Copyright (C) 1999-2003  The PUMA developer team.
63806
77612
//                                                                
63845
77651
class     CT_DefaultStmt;
63846
77652
class     CT_TryStmt;
63847
77653
class   CT_Expression;
 
77654
class     CT_Call;
 
77655
class       CT_CallExpr;
 
77656
class       CT_ImplicitCall;
63848
77657
class     CT_ThrowExpr;
63849
77658
class     CT_NewExpr;
63850
77659
class     CT_DeleteExpr;
63865
77674
class     CT_IfThenExpr;
63866
77675
class     CT_CmpdLiteral;
63867
77676
class     CT_IndexExpr;
63868
 
class     CT_CallExpr;
63869
77677
class     CT_CastExpr;
63870
77678
class     CT_StaticCast;
63871
77679
class       CT_ConstCast;
63912
77720
class     CT_NamespaceDef;
63913
77721
class     CT_NamespaceAliasDef;
63914
77722
class     CT_UsingDirective;
 
77723
class     CT_Condition;
63915
77724
class   CT_List;
63916
77725
class     CT_CmpdStmt;
63917
77726
class     CT_DeclSpecSeq;
63942
77751
class     CT_TemplateArgList;
63943
77752
class   CT_Token;
63944
77753
class   CT_Error;
63945
 
class   CT_Condition;
63946
77754
class   CT_BaseSpec;
63947
77755
class   CT_AccessSpec;
63948
77756
class   CT_ArrayDelimiter;
63982
77790
/*                                                                           */
63983
77791
/*****************************************************************************/
63984
77792
 
63985
 
 
63986
 
#line 63987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77793
/** \file
 
77794
 *  C/C++ syntax tree classes.
 
77795
 *  \see Puma::CTree */
 
77796
 
 
77797
/** \class CTree CTree.h Puma/CTree.h
 
77798
 *  Base class for all C/C++ syntax tree classes. */
 
77799
 
 
77800
#line 77801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
63987
77801
} // closed Puma
 
77802
class CCExprResolve;
 
77803
class CExprResolve;
63988
77804
class WinIfExists;
63989
77805
class WinImportHandler;
63990
77806
class WinMacros;
63991
 
class CMatchSyntax;
63992
 
class ExtGnu;
 
77807
class WinAsm;
 
77808
class WinDeclSpecs;
 
77809
class WinMemberExplSpec;
 
77810
class WinTypeKeywords;
 
77811
class WinFriend;
63993
77812
class ExtAC;
63994
77813
class ExtACBuilderCoupling;
63995
77814
class ExtACSyntaxCoupling;
63996
77815
class ExtACTree;
63997
77816
class ExtACKeywords;
63998
 
class WinAsm;
63999
 
class WinDeclSpecs;
64000
 
class WinMemberExplSpec;
64001
 
class WinTypeKeywords;
 
77817
class ExtGnu;
64002
77818
class PragmaOnceUnitState;
64003
77819
class PragmaOnce;
64004
 
class CCExprResolve;
64005
 
class CExprResolve;
64006
 
namespace Puma {
64007
 
 
64008
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77820
class CMatchSyntax;
 
77821
namespace Puma {
 
77822
 
 
77823
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77824
 
 
77825
#line 77826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77826
} // closed Puma
 
77827
 
 
77828
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
77829
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
77830
#include "CCExprResolveH.ah"
 
77831
#endif
 
77832
namespace Puma {
 
77833
 
 
77834
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77835
 
 
77836
#line 77837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77837
} // closed Puma
 
77838
 
 
77839
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
77840
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
77841
#include "CExprResolveH.ah"
 
77842
#endif
 
77843
namespace Puma {
 
77844
 
 
77845
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64009
77846
class CTree {
64010
 
#line 64011 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
77847
#line 77848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
77848
  friend class ::CCExprResolve;
 
77849
  friend class ::CExprResolve;
64011
77850
  friend class ::WinIfExists;
64012
77851
  friend class ::WinImportHandler;
64013
77852
  friend class ::WinMacros;
64014
 
  friend class ::CMatchSyntax;
64015
 
  friend class ::ExtGnu;
 
77853
  friend class ::WinAsm;
 
77854
  friend class ::WinDeclSpecs;
 
77855
  friend class ::WinMemberExplSpec;
 
77856
  friend class ::WinTypeKeywords;
 
77857
  friend class ::WinFriend;
64016
77858
  friend class ::ExtAC;
64017
77859
  friend class ::ExtACBuilderCoupling;
64018
77860
  friend class ::ExtACSyntaxCoupling;
64019
77861
  friend class ::ExtACTree;
64020
77862
  friend class ::ExtACKeywords;
64021
 
  friend class ::WinAsm;
64022
 
  friend class ::WinDeclSpecs;
64023
 
  friend class ::WinMemberExplSpec;
64024
 
  friend class ::WinTypeKeywords;
 
77863
  friend class ::ExtGnu;
64025
77864
  friend class ::PragmaOnceUnitState;
64026
77865
  friend class ::PragmaOnce;
64027
 
  friend class ::CCExprResolve;
64028
 
  friend class ::CExprResolve;
64029
 
 
64030
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77866
  friend class ::CMatchSyntax;
 
77867
 
 
77868
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77869
 
 
77870
  CTree * _parent;
64031
77871
 
64032
77872
public:
64033
77873
  /*DEBUG*/static int alloc;
64034
77874
  /*DEBUG*/static int release;
64035
77875
 
64036
77876
protected:
64037
 
  CTree *Son (CTree * const *, int, int) const;
64038
 
  int Sons (CTree * const *, int) const;
64039
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
77877
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
77878
   *  \param sons The sons array.
 
77879
   *  \param len Length of the sons array.
 
77880
   *  \param n Index of the son.
 
77881
   *  \return The n-th son or NULL. */
 
77882
  CTree *Son (CTree * const *sons, int len, int n) const;
 
77883
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
77884
   *  \param sons The sons array.
 
77885
   *  \param len Length of the sons array. */
 
77886
  int Sons (CTree * const *sons, int len) const;
 
77887
  /** Replace a son.
 
77888
   *  \param sons The sons array.
 
77889
   *  \param len Length of the sons array.
 
77890
   *  \param old_son The son to replace.
 
77891
   *  \param new_son The new son. */
 
77892
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
77893
  /** Replace a son if it equals the given son.
 
77894
   *  \param son The actual son.
 
77895
   *  \param old_son The son to replace, must match the actual son.
 
77896
   *  \param new_son The new son, overwrites the actual son. */
 
77897
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
77898
  /** Add a new son.
 
77899
   *  \param son The actual son.
 
77900
   *  \param new_son The new son, overwrites the actual son. */
 
77901
  void AddSon (CTree *&son, CTree *new_son);
 
77902
  /** Set the parent tree node.
 
77903
   *  \param parent The new parent tree node. */
 
77904
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
77905
  /** Set the parent tree node of the given tree node.
 
77906
   *  \param node The tree node.
 
77907
   *  \param parent The new parent. */
 
77908
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
64040
77909
  
64041
77910
protected:
64042
 
  CTree () { /*DEBUG*/alloc++; }
 
77911
  /** Default constructor. */
 
77912
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
64043
77913
 
64044
77914
public:
 
77915
  /** Destructor. */
64045
77916
  virtual ~CTree () { /*DEBUG*/release++; }
 
77917
  /** Get the number of sons. */
64046
77918
  virtual int Sons () const = 0;
 
77919
  /** Get the n-th son.
 
77920
   *  \param n The index of the son.
 
77921
   *  \return The n-th son or NULL. */
64047
77922
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
77923
  /** Get the node name (node identifier). */
64048
77924
  virtual const char *NodeName () const = 0;
 
77925
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
77926
   *  \return The token or NULL. */
64049
77927
  virtual Token *token () const;
 
77928
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
77929
   *  \return The token or NULL. */
64050
77930
  virtual Token *end_token () const;
 
77931
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
77932
   *  \return The token node or NULL. */
64051
77933
  virtual CT_Token *token_node () const;
 
77934
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
77935
   *  \return The token node or NULL. */
64052
77936
  virtual CT_Token *end_token_node () const;
64053
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
77937
  /** Replace a son.
 
77938
   *  \param old_son The son to replace.
 
77939
   *  \param new_son The son with which to replace. */
 
77940
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
77941
  /** Get the parent node.
 
77942
   *  \return The parent node or NULL. */
 
77943
  virtual CTree *Parent () const { return (CTree*)_parent; }
64054
77944
 
64055
77945
public: // semantic information
 
77946
  /** Get the semantic type of the node.
 
77947
   *  \return The type object or NULL. */
64056
77948
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
77949
  /** Get the calculated value of the expression.
 
77950
   *  \return The value object or NULL. */
64057
77951
  virtual CExprValue *Value () const { return (CExprValue*)0; }
64058
77952
  
 
77953
  /** Get the semantic scope of the node.
 
77954
   *  \return The scope object or NULL. */
 
77955
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
77956
  /** Get the semantic value of the node.
 
77957
   *  \return The value object or NULL. */
64059
77958
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
77959
  /** Get the semantic object of the node.
 
77960
   *  \return The semantic object or NULL. */
64060
77961
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
64061
77962
  
64062
77963
public: // node classification function
 
77964
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
77965
   *  \return The CT_SimpleName node or NULL. */
64063
77966
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
77967
  /** Get a pointer to CT_String if the current node represents a string.
 
77968
   *  \return The CT_String node or NULL. */
 
77969
  virtual CT_String *IsString () { return 0; }
 
77970
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
77971
   *  \return The CT_Declarator pointer or NULL. */
64064
77972
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
77973
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
77974
   *  \return The CT_Statement pointer or NULL. */
 
77975
  virtual CT_Statement *IsStatement () { return 0; }
 
77976
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
77977
   *  \return The CT_Expression pointer or NULL. */
 
77978
  virtual CT_Expression *IsExpression () { return 0; }
 
77979
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
77980
   *  \return The CT_Decl pointer or NULL. */
 
77981
  virtual CT_Decl *IsDeclaration () { return 0; }
 
77982
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
77983
   *  \return The CT_Call pointer or NULL. */
 
77984
  virtual CT_Call *IsCall () { return 0; }
64065
77985
   private:
64066
77986
  typedef CTree CCExprResolveCTree;
64067
77987
 
64068
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
77988
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64069
77989
 public :
64070
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
77990
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
64071
77991
  typedef CTree CExprResolveCTree;
64072
77992
 
64073
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
77993
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64074
77994
 public :
64075
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64076
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77995
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
77996
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64077
77997
};
64078
77998
 
 
77999
/** \class CT_Error CTree.h Puma/CTree.h
 
78000
 *  Error tree node that is inserted into the tree for syntactic constructs
 
78001
 *  that could not be parsed. */
64079
78002
 
64080
 
#line 64081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78003
#line 78004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64081
78004
} // closed Puma
 
78005
class CCExprResolve;
 
78006
class CExprResolve;
64082
78007
class WinIfExists;
64083
78008
class WinImportHandler;
64084
78009
class WinMacros;
64085
 
class CMatchSyntax;
64086
 
class ExtGnu;
 
78010
class WinAsm;
 
78011
class WinDeclSpecs;
 
78012
class WinMemberExplSpec;
 
78013
class WinTypeKeywords;
 
78014
class WinFriend;
64087
78015
class ExtAC;
64088
78016
class ExtACBuilderCoupling;
64089
78017
class ExtACSyntaxCoupling;
64090
78018
class ExtACTree;
64091
78019
class ExtACKeywords;
64092
 
class WinAsm;
64093
 
class WinDeclSpecs;
64094
 
class WinMemberExplSpec;
64095
 
class WinTypeKeywords;
 
78020
class ExtGnu;
64096
78021
class PragmaOnceUnitState;
64097
78022
class PragmaOnce;
64098
 
class CCExprResolve;
64099
 
class CExprResolve;
 
78023
class CMatchSyntax;
64100
78024
namespace Puma {
64101
78025
 
64102
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78026
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64103
78027
class CT_Error : public CTree {
64104
 
#line 64105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78028
#line 78029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78029
  friend class ::CCExprResolve;
 
78030
  friend class ::CExprResolve;
64105
78031
  friend class ::WinIfExists;
64106
78032
  friend class ::WinImportHandler;
64107
78033
  friend class ::WinMacros;
64108
 
  friend class ::CMatchSyntax;
64109
 
  friend class ::ExtGnu;
 
78034
  friend class ::WinAsm;
 
78035
  friend class ::WinDeclSpecs;
 
78036
  friend class ::WinMemberExplSpec;
 
78037
  friend class ::WinTypeKeywords;
 
78038
  friend class ::WinFriend;
64110
78039
  friend class ::ExtAC;
64111
78040
  friend class ::ExtACBuilderCoupling;
64112
78041
  friend class ::ExtACSyntaxCoupling;
64113
78042
  friend class ::ExtACTree;
64114
78043
  friend class ::ExtACKeywords;
64115
 
  friend class ::WinAsm;
64116
 
  friend class ::WinDeclSpecs;
64117
 
  friend class ::WinMemberExplSpec;
64118
 
  friend class ::WinTypeKeywords;
 
78044
  friend class ::ExtGnu;
64119
78045
  friend class ::PragmaOnceUnitState;
64120
78046
  friend class ::PragmaOnce;
64121
 
  friend class ::CCExprResolve;
64122
 
  friend class ::CExprResolve;
 
78047
  friend class ::CMatchSyntax;
64123
78048
 
64124
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78049
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64125
78050
 
64126
78051
public:
 
78052
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64127
78053
  static const char *NodeId ();
 
78054
  /** Get the name of the node. Can be compared with NodeId(). */
64128
78055
  const char *NodeName () const { return NodeId (); }
 
78056
  /** Get the number of sons. */
64129
78057
  int Sons () const { return 0; }
64130
78058
};
64131
78059
 
 
78060
/** \class CT_Token CTree.h Puma/CTree.h
 
78061
 *  Tree node representing a single token in the source code. */
64132
78062
 
64133
 
#line 64134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78063
#line 78064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64134
78064
} // closed Puma
 
78065
class CCExprResolve;
 
78066
class CExprResolve;
64135
78067
class WinIfExists;
64136
78068
class WinImportHandler;
64137
78069
class WinMacros;
64138
 
class CMatchSyntax;
64139
 
class ExtGnu;
 
78070
class WinAsm;
 
78071
class WinDeclSpecs;
 
78072
class WinMemberExplSpec;
 
78073
class WinTypeKeywords;
 
78074
class WinFriend;
64140
78075
class ExtAC;
64141
78076
class ExtACBuilderCoupling;
64142
78077
class ExtACSyntaxCoupling;
64143
78078
class ExtACTree;
64144
78079
class ExtACKeywords;
64145
 
class WinAsm;
64146
 
class WinDeclSpecs;
64147
 
class WinMemberExplSpec;
64148
 
class WinTypeKeywords;
 
78080
class ExtGnu;
64149
78081
class PragmaOnceUnitState;
64150
78082
class PragmaOnce;
64151
 
class CCExprResolve;
64152
 
class CExprResolve;
 
78083
class CMatchSyntax;
64153
78084
namespace Puma {
64154
78085
 
64155
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78086
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64156
78087
class CT_Token : public CTree {
64157
 
#line 64158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78088
#line 78089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78089
  friend class ::CCExprResolve;
 
78090
  friend class ::CExprResolve;
64158
78091
  friend class ::WinIfExists;
64159
78092
  friend class ::WinImportHandler;
64160
78093
  friend class ::WinMacros;
64161
 
  friend class ::CMatchSyntax;
64162
 
  friend class ::ExtGnu;
 
78094
  friend class ::WinAsm;
 
78095
  friend class ::WinDeclSpecs;
 
78096
  friend class ::WinMemberExplSpec;
 
78097
  friend class ::WinTypeKeywords;
 
78098
  friend class ::WinFriend;
64163
78099
  friend class ::ExtAC;
64164
78100
  friend class ::ExtACBuilderCoupling;
64165
78101
  friend class ::ExtACSyntaxCoupling;
64166
78102
  friend class ::ExtACTree;
64167
78103
  friend class ::ExtACKeywords;
64168
 
  friend class ::WinAsm;
64169
 
  friend class ::WinDeclSpecs;
64170
 
  friend class ::WinMemberExplSpec;
64171
 
  friend class ::WinTypeKeywords;
 
78104
  friend class ::ExtGnu;
64172
78105
  friend class ::PragmaOnceUnitState;
64173
78106
  friend class ::PragmaOnce;
64174
 
  friend class ::CCExprResolve;
64175
 
  friend class ::CExprResolve;
 
78107
  friend class ::CMatchSyntax;
64176
78108
 
64177
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78109
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64178
78110
 
64179
78111
  Token *_token;
64180
78112
  unsigned long int _number;
64181
78113
  
64182
78114
public:
64183
 
  CT_Token (Token *t, unsigned long int n = 0) : 
64184
 
    _token (t), _number (n) {}
 
78115
  /** Constructor. 
 
78116
   *  \param token The represented token.
 
78117
   *  \param number The token number (a consecutive number). */
 
78118
  CT_Token (Token *token, unsigned long int number = 0) : 
 
78119
    _token (token), _number (number) {}
 
78120
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64185
78121
  static const char *NodeId ();
 
78122
  /** Get the name of the node. Can be compared with NodeId(). */
64186
78123
  const char *NodeName () const { return NodeId (); }
 
78124
  /** Get the number of sons. */
64187
78125
  int Sons () const { return 0; }
 
78126
  /** Get the represented token. */
64188
78127
  Token *token () const { return _token; }
 
78128
  /** Get the represented token. */
64189
78129
  Token *end_token () const { return _token; }
 
78130
  /** Get this. */
64190
78131
  CT_Token *token_node () const { return (CT_Token*)this; }
 
78132
  /** Get this. */
64191
78133
  CT_Token *end_token_node () const { return (CT_Token*)this; }
64192
 
  void Number (unsigned long int n) { _number = n; }
 
78134
  /** Set the token number. 
 
78135
   *  \param number The token number. */ 
 
78136
  void Number (unsigned long int number) { _number = number; }
 
78137
  /** Get the token number. Can be used to indentify this token. */
64193
78138
  unsigned long int Number () const { return _number; }
64194
 
  // special new / delete with reusing memory
 
78139
  
 
78140
public:
 
78141
  /** Own new operator reusing memory. */
64195
78142
  void *operator new (size_t);
64196
 
  void  operator delete (void *);
 
78143
  /** Own delete operator. */
 
78144
  void operator delete (void *);
64197
78145
};
64198
78146
 
64199
78147
/*****************************************************************************/
64202
78150
/*                                                                           */
64203
78151
/*****************************************************************************/
64204
78152
 
 
78153
/** \class CT_List CTree.h Puma/CTree.h
 
78154
 *  Base class for tree nodes representing lists. */
64205
78155
 
64206
 
#line 64207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78156
#line 78157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64207
78157
} // closed Puma
 
78158
class CCExprResolve;
 
78159
class CExprResolve;
64208
78160
class WinIfExists;
64209
78161
class WinImportHandler;
64210
78162
class WinMacros;
64211
 
class CMatchSyntax;
64212
 
class ExtGnu;
 
78163
class WinAsm;
 
78164
class WinDeclSpecs;
 
78165
class WinMemberExplSpec;
 
78166
class WinTypeKeywords;
 
78167
class WinFriend;
64213
78168
class ExtAC;
64214
78169
class ExtACBuilderCoupling;
64215
78170
class ExtACSyntaxCoupling;
64216
78171
class ExtACTree;
64217
78172
class ExtACKeywords;
64218
 
class WinAsm;
64219
 
class WinDeclSpecs;
64220
 
class WinMemberExplSpec;
64221
 
class WinTypeKeywords;
 
78173
class ExtGnu;
64222
78174
class PragmaOnceUnitState;
64223
78175
class PragmaOnce;
64224
 
class CCExprResolve;
64225
 
class CExprResolve;
 
78176
class CMatchSyntax;
64226
78177
namespace Puma {
64227
78178
 
64228
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78179
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64229
78180
class CT_List : public CTree {
64230
 
#line 64231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78181
#line 78182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78182
  friend class ::CCExprResolve;
 
78183
  friend class ::CExprResolve;
64231
78184
  friend class ::WinIfExists;
64232
78185
  friend class ::WinImportHandler;
64233
78186
  friend class ::WinMacros;
64234
 
  friend class ::CMatchSyntax;
64235
 
  friend class ::ExtGnu;
 
78187
  friend class ::WinAsm;
 
78188
  friend class ::WinDeclSpecs;
 
78189
  friend class ::WinMemberExplSpec;
 
78190
  friend class ::WinTypeKeywords;
 
78191
  friend class ::WinFriend;
64236
78192
  friend class ::ExtAC;
64237
78193
  friend class ::ExtACBuilderCoupling;
64238
78194
  friend class ::ExtACSyntaxCoupling;
64239
78195
  friend class ::ExtACTree;
64240
78196
  friend class ::ExtACKeywords;
64241
 
  friend class ::WinAsm;
64242
 
  friend class ::WinDeclSpecs;
64243
 
  friend class ::WinMemberExplSpec;
64244
 
  friend class ::WinTypeKeywords;
 
78197
  friend class ::ExtGnu;
64245
78198
  friend class ::PragmaOnceUnitState;
64246
78199
  friend class ::PragmaOnce;
64247
 
  friend class ::CCExprResolve;
64248
 
  friend class ::CExprResolve;
 
78200
  friend class ::CMatchSyntax;
64249
78201
 
64250
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78202
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64251
78203
 
64252
78204
  Array<CTree*> _sons;
64253
78205
  int _properties;
64254
78206
 
64255
78207
protected:
 
78208
  /** Constructor.
 
78209
   *  \param size The initial list size.
 
78210
   *  \param incr The initial increment count. 
 
78211
   *  \param props The list properties (bit array). */
64256
78212
  CT_List(int size = 5, int incr = 5, int props = 0) : 
64257
78213
    _sons (size, incr), _properties (props) {}
64258
78214
 
64259
78215
public:
 
78216
  /** List properties. */
64260
78217
  enum {
64261
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
64262
 
    CLOSE = 2,
64263
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
64264
 
    SEPARATORS = 4,   // the list has separators like ','
64265
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
64266
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
64267
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
64268
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
78218
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
78219
    CLOSE = 2,        /** List has an end token */
 
78220
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
78221
    SEPARATORS = 4,   /** List has separators, like ',' */
 
78222
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
78223
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
78224
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
78225
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
64269
78226
  };
64270
78227
 
 
78228
  /** Get the number of list entries. */
64271
78229
  int Entries () const;
64272
 
  CTree *Entry (int no) const;
 
78230
  /** Get the n-th list entry.
 
78231
   *  \param n The index of the entry. 
 
78232
   *  \return The list entry or NULL. */
 
78233
  CTree *Entry (int n) const;
 
78234
  /** Get the number of sons. */
64273
78235
  int Sons () const { return _sons.length (); }
 
78236
  /** Get the n-th son.
 
78237
   *  \param n The index of the son. 
 
78238
   *  \return The n-th son or NULL. */
64274
78239
  CTree *Son (int n) const { return _sons.lookup (n); }
 
78240
  /** Get the list properties. */
64275
78241
  int GetProperties () const { return _properties; }
 
78242
  /** Add a list property.
 
78243
   *  \param p The property to add. */
64276
78244
  void AddProperties (int p) { _properties |= p; }
64277
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
64278
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
64279
 
  void InsertSon (CTree *, CTree *);  // before given son
64280
 
  void ReplaceSon (CTree *, CTree *);
64281
 
  void RemoveSon (CTree *);
 
78245
  /** Add a son.
 
78246
   *  \param s The son to add. */
 
78247
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
78248
  /** Prepend a son.
 
78249
   *  \param s The son to prepend. */
 
78250
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
78251
  /** Insert a son before another son.
 
78252
   *  \param before The son to insert the new son before.
 
78253
   *  \param son The son to insert. */
 
78254
  void InsertSon (CTree *before, CTree *son); 
 
78255
  /** Replace a son.
 
78256
   *  \param old_son The son to replace.
 
78257
   *  \param new_son The new son. */
 
78258
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
78259
  /** Remove a son.
 
78260
   *  \param son The son to remove. */
 
78261
  void RemoveSon (CTree *son);
 
78262
  /** Insert a son at the given index. 
 
78263
   *  \param idx The index at which to insert.
 
78264
   *  \param s The son to insert. */
64282
78265
  void InsertSon (int idx, CTree *s)
64283
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
78266
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
78267
  /** Replace the son at the given index.
 
78268
   *  \param idx The index of the son to replace.
 
78269
   *  \param s The new son. */
64284
78270
  void ReplaceSon (int idx, CTree *s) 
64285
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
78271
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
78272
  /** Remove the son at the given index. 
 
78273
   *  \param idx The index of the son to remove. */
64286
78274
  void RemoveSon (int idx) 
64287
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
78275
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
64288
78276
};
64289
78277
 
 
78278
/** \class CT_ExprList CTree.h Puma/CTree.h
 
78279
 *  Tree node representing an expression list. */
64290
78280
 
64291
 
#line 64292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78281
#line 78282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64292
78282
} // closed Puma
 
78283
class CCExprResolve;
 
78284
class CExprResolve;
64293
78285
class WinIfExists;
64294
78286
class WinImportHandler;
64295
78287
class WinMacros;
64296
 
class CMatchSyntax;
64297
 
class ExtGnu;
 
78288
class WinAsm;
 
78289
class WinDeclSpecs;
 
78290
class WinMemberExplSpec;
 
78291
class WinTypeKeywords;
 
78292
class WinFriend;
64298
78293
class ExtAC;
64299
78294
class ExtACBuilderCoupling;
64300
78295
class ExtACSyntaxCoupling;
64301
78296
class ExtACTree;
64302
78297
class ExtACKeywords;
64303
 
class WinAsm;
64304
 
class WinDeclSpecs;
64305
 
class WinMemberExplSpec;
64306
 
class WinTypeKeywords;
 
78298
class ExtGnu;
64307
78299
class PragmaOnceUnitState;
64308
78300
class PragmaOnce;
64309
 
class CCExprResolve;
64310
 
class CExprResolve;
 
78301
class CMatchSyntax;
64311
78302
namespace Puma {
64312
78303
 
64313
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78304
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64314
78305
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
64315
 
#line 64316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78306
#line 78307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78307
  friend class ::CCExprResolve;
 
78308
  friend class ::CExprResolve;
64316
78309
  friend class ::WinIfExists;
64317
78310
  friend class ::WinImportHandler;
64318
78311
  friend class ::WinMacros;
64319
 
  friend class ::CMatchSyntax;
64320
 
  friend class ::ExtGnu;
 
78312
  friend class ::WinAsm;
 
78313
  friend class ::WinDeclSpecs;
 
78314
  friend class ::WinMemberExplSpec;
 
78315
  friend class ::WinTypeKeywords;
 
78316
  friend class ::WinFriend;
64321
78317
  friend class ::ExtAC;
64322
78318
  friend class ::ExtACBuilderCoupling;
64323
78319
  friend class ::ExtACSyntaxCoupling;
64324
78320
  friend class ::ExtACTree;
64325
78321
  friend class ::ExtACKeywords;
64326
 
  friend class ::WinAsm;
64327
 
  friend class ::WinDeclSpecs;
64328
 
  friend class ::WinMemberExplSpec;
64329
 
  friend class ::WinTypeKeywords;
 
78322
  friend class ::ExtGnu;
64330
78323
  friend class ::PragmaOnceUnitState;
64331
78324
  friend class ::PragmaOnce;
64332
 
  friend class ::CCExprResolve;
64333
 
  friend class ::CExprResolve;
 
78325
  friend class ::CMatchSyntax;
64334
78326
 
64335
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78327
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64336
78328
 
64337
78329
public:
 
78330
  /** Constructor. */
64338
78331
  CT_ExprList () { AddProperties (SEPARATORS); }
 
78332
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64339
78333
  static const char *NodeId ();
 
78334
  /** Get the name of the node. Can be compared with NodeId(). */
64340
78335
  const char *NodeName () const { return NodeId (); }
64341
78336
 
 
78337
  /** Get the type of the last expression in the expression list.
 
78338
   *  \return The type or NULL. */
64342
78339
  CTypeInfo *Type () const { return type; }
 
78340
  /** Get the value of the last expression in the expression list.
 
78341
   *  \return The value of NULL. */
64343
78342
  CExprValue *Value () const { return value; }
 
78343
  /** Get the semantic value of the node. */
64344
78344
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
78345
  /** Get the semantic object of the node. */
64345
78346
  CSemObject *SemObject () const { return (CSemObject*)this; }
64346
78347
};
64347
78348
 
 
78349
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
78350
 *  Tree node representing a list of declarators. */
64348
78351
 
64349
 
#line 64350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78352
#line 78353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64350
78353
} // closed Puma
 
78354
class CCExprResolve;
 
78355
class CExprResolve;
64351
78356
class WinIfExists;
64352
78357
class WinImportHandler;
64353
78358
class WinMacros;
64354
 
class CMatchSyntax;
64355
 
class ExtGnu;
 
78359
class WinAsm;
 
78360
class WinDeclSpecs;
 
78361
class WinMemberExplSpec;
 
78362
class WinTypeKeywords;
 
78363
class WinFriend;
64356
78364
class ExtAC;
64357
78365
class ExtACBuilderCoupling;
64358
78366
class ExtACSyntaxCoupling;
64359
78367
class ExtACTree;
64360
78368
class ExtACKeywords;
64361
 
class WinAsm;
64362
 
class WinDeclSpecs;
64363
 
class WinMemberExplSpec;
64364
 
class WinTypeKeywords;
 
78369
class ExtGnu;
64365
78370
class PragmaOnceUnitState;
64366
78371
class PragmaOnce;
64367
 
class CCExprResolve;
64368
 
class CExprResolve;
 
78372
class CMatchSyntax;
64369
78373
namespace Puma {
64370
78374
 
64371
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78375
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64372
78376
class CT_DeclaratorList : public CT_List {
64373
 
#line 64374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78377
#line 78378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78378
  friend class ::CCExprResolve;
 
78379
  friend class ::CExprResolve;
64374
78380
  friend class ::WinIfExists;
64375
78381
  friend class ::WinImportHandler;
64376
78382
  friend class ::WinMacros;
64377
 
  friend class ::CMatchSyntax;
64378
 
  friend class ::ExtGnu;
 
78383
  friend class ::WinAsm;
 
78384
  friend class ::WinDeclSpecs;
 
78385
  friend class ::WinMemberExplSpec;
 
78386
  friend class ::WinTypeKeywords;
 
78387
  friend class ::WinFriend;
64379
78388
  friend class ::ExtAC;
64380
78389
  friend class ::ExtACBuilderCoupling;
64381
78390
  friend class ::ExtACSyntaxCoupling;
64382
78391
  friend class ::ExtACTree;
64383
78392
  friend class ::ExtACKeywords;
64384
 
  friend class ::WinAsm;
64385
 
  friend class ::WinDeclSpecs;
64386
 
  friend class ::WinMemberExplSpec;
64387
 
  friend class ::WinTypeKeywords;
 
78393
  friend class ::ExtGnu;
64388
78394
  friend class ::PragmaOnceUnitState;
64389
78395
  friend class ::PragmaOnce;
64390
 
  friend class ::CCExprResolve;
64391
 
  friend class ::CExprResolve;
 
78396
  friend class ::CMatchSyntax;
64392
78397
 
64393
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78398
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64394
78399
 
64395
78400
public:
 
78401
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64396
78402
  static const char *NodeId ();
 
78403
  /** Get the name of the node. Can be compared with NodeId(). */
64397
78404
  const char *NodeName () const { return NodeId (); }
64398
78405
};
64399
78406
 
 
78407
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
78408
 *  Tree node representing a list of enumerator constants. */
64400
78409
 
64401
 
#line 64402 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78410
#line 78411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64402
78411
} // closed Puma
 
78412
class CCExprResolve;
 
78413
class CExprResolve;
64403
78414
class WinIfExists;
64404
78415
class WinImportHandler;
64405
78416
class WinMacros;
64406
 
class CMatchSyntax;
64407
 
class ExtGnu;
 
78417
class WinAsm;
 
78418
class WinDeclSpecs;
 
78419
class WinMemberExplSpec;
 
78420
class WinTypeKeywords;
 
78421
class WinFriend;
64408
78422
class ExtAC;
64409
78423
class ExtACBuilderCoupling;
64410
78424
class ExtACSyntaxCoupling;
64411
78425
class ExtACTree;
64412
78426
class ExtACKeywords;
64413
 
class WinAsm;
64414
 
class WinDeclSpecs;
64415
 
class WinMemberExplSpec;
64416
 
class WinTypeKeywords;
 
78427
class ExtGnu;
64417
78428
class PragmaOnceUnitState;
64418
78429
class PragmaOnce;
64419
 
class CCExprResolve;
64420
 
class CExprResolve;
 
78430
class CMatchSyntax;
64421
78431
namespace Puma {
64422
78432
 
64423
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78433
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64424
78434
class CT_EnumeratorList : public CT_List {
64425
 
#line 64426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78435
#line 78436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78436
  friend class ::CCExprResolve;
 
78437
  friend class ::CExprResolve;
64426
78438
  friend class ::WinIfExists;
64427
78439
  friend class ::WinImportHandler;
64428
78440
  friend class ::WinMacros;
64429
 
  friend class ::CMatchSyntax;
64430
 
  friend class ::ExtGnu;
 
78441
  friend class ::WinAsm;
 
78442
  friend class ::WinDeclSpecs;
 
78443
  friend class ::WinMemberExplSpec;
 
78444
  friend class ::WinTypeKeywords;
 
78445
  friend class ::WinFriend;
64431
78446
  friend class ::ExtAC;
64432
78447
  friend class ::ExtACBuilderCoupling;
64433
78448
  friend class ::ExtACSyntaxCoupling;
64434
78449
  friend class ::ExtACTree;
64435
78450
  friend class ::ExtACKeywords;
64436
 
  friend class ::WinAsm;
64437
 
  friend class ::WinDeclSpecs;
64438
 
  friend class ::WinMemberExplSpec;
64439
 
  friend class ::WinTypeKeywords;
 
78451
  friend class ::ExtGnu;
64440
78452
  friend class ::PragmaOnceUnitState;
64441
78453
  friend class ::PragmaOnce;
64442
 
  friend class ::CCExprResolve;
64443
 
  friend class ::CExprResolve;
 
78454
  friend class ::CMatchSyntax;
64444
78455
 
64445
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78456
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64446
78457
 
64447
78458
public:
 
78459
  /** Constructor. */
64448
78460
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
78461
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64449
78462
  static const char *NodeId ();
 
78463
  /** Get the name of the node. Can be compared with NodeId(). */
64450
78464
  const char *NodeName () const { return NodeId (); }
64451
78465
};
64452
78466
   
 
78467
/** \class CT_DeclList CTree.h Puma/CTree.h
 
78468
 *  Tree node representing a list of declarations. */
64453
78469
 
64454
 
#line 64455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78470
#line 78471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64455
78471
} // closed Puma
 
78472
class CCExprResolve;
 
78473
class CExprResolve;
64456
78474
class WinIfExists;
64457
78475
class WinImportHandler;
64458
78476
class WinMacros;
64459
 
class CMatchSyntax;
64460
 
class ExtGnu;
 
78477
class WinAsm;
 
78478
class WinDeclSpecs;
 
78479
class WinMemberExplSpec;
 
78480
class WinTypeKeywords;
 
78481
class WinFriend;
64461
78482
class ExtAC;
64462
78483
class ExtACBuilderCoupling;
64463
78484
class ExtACSyntaxCoupling;
64464
78485
class ExtACTree;
64465
78486
class ExtACKeywords;
64466
 
class WinAsm;
64467
 
class WinDeclSpecs;
64468
 
class WinMemberExplSpec;
64469
 
class WinTypeKeywords;
 
78487
class ExtGnu;
64470
78488
class PragmaOnceUnitState;
64471
78489
class PragmaOnce;
64472
 
class CCExprResolve;
64473
 
class CExprResolve;
 
78490
class CMatchSyntax;
64474
78491
namespace Puma {
64475
78492
 
64476
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78493
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64477
78494
class CT_DeclList : public CT_List {
64478
 
#line 64479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78495
#line 78496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78496
  friend class ::CCExprResolve;
 
78497
  friend class ::CExprResolve;
64479
78498
  friend class ::WinIfExists;
64480
78499
  friend class ::WinImportHandler;
64481
78500
  friend class ::WinMacros;
64482
 
  friend class ::CMatchSyntax;
64483
 
  friend class ::ExtGnu;
 
78501
  friend class ::WinAsm;
 
78502
  friend class ::WinDeclSpecs;
 
78503
  friend class ::WinMemberExplSpec;
 
78504
  friend class ::WinTypeKeywords;
 
78505
  friend class ::WinFriend;
64484
78506
  friend class ::ExtAC;
64485
78507
  friend class ::ExtACBuilderCoupling;
64486
78508
  friend class ::ExtACSyntaxCoupling;
64487
78509
  friend class ::ExtACTree;
64488
78510
  friend class ::ExtACKeywords;
64489
 
  friend class ::WinAsm;
64490
 
  friend class ::WinDeclSpecs;
64491
 
  friend class ::WinMemberExplSpec;
64492
 
  friend class ::WinTypeKeywords;
 
78511
  friend class ::ExtGnu;
64493
78512
  friend class ::PragmaOnceUnitState;
64494
78513
  friend class ::PragmaOnce;
64495
 
  friend class ::CCExprResolve;
64496
 
  friend class ::CExprResolve;
 
78514
  friend class ::CMatchSyntax;
64497
78515
 
64498
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78516
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64499
78517
 
64500
78518
public:
 
78519
  /** Constructor. 
 
78520
   *  \param size The initial size of the list.
 
78521
   *  \param incr The initial increment count of the list. */
64501
78522
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
78523
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64502
78524
  static const char *NodeId ();
 
78525
  /** Get the name of the node. Can be compared with NodeId(). */
64503
78526
  const char *NodeName () const { return NodeId (); }
 
78527
  /** Set the linkage specifiers to each declaration in the list.
 
78528
   *  \param l The linkage specifiers node. */
64504
78529
  void Linkage (CT_LinkageSpec *l);
64505
78530
};
64506
78531
 
 
78532
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
78533
 *  Tree node representing a sequence of declaration specifiers. */
64507
78534
 
64508
 
#line 64509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78535
#line 78536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64509
78536
} // closed Puma
 
78537
class CCExprResolve;
 
78538
class CExprResolve;
64510
78539
class WinIfExists;
64511
78540
class WinImportHandler;
64512
78541
class WinMacros;
64513
 
class CMatchSyntax;
64514
 
class ExtGnu;
 
78542
class WinAsm;
 
78543
class WinDeclSpecs;
 
78544
class WinMemberExplSpec;
 
78545
class WinTypeKeywords;
 
78546
class WinFriend;
64515
78547
class ExtAC;
64516
78548
class ExtACBuilderCoupling;
64517
78549
class ExtACSyntaxCoupling;
64518
78550
class ExtACTree;
64519
78551
class ExtACKeywords;
64520
 
class WinAsm;
64521
 
class WinDeclSpecs;
64522
 
class WinMemberExplSpec;
64523
 
class WinTypeKeywords;
 
78552
class ExtGnu;
64524
78553
class PragmaOnceUnitState;
64525
78554
class PragmaOnce;
64526
 
class CCExprResolve;
64527
 
class CExprResolve;
 
78555
class CMatchSyntax;
64528
78556
namespace Puma {
64529
78557
 
64530
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78558
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64531
78559
class CT_DeclSpecSeq : public CT_List {
64532
 
#line 64533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78560
#line 78561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78561
  friend class ::CCExprResolve;
 
78562
  friend class ::CExprResolve;
64533
78563
  friend class ::WinIfExists;
64534
78564
  friend class ::WinImportHandler;
64535
78565
  friend class ::WinMacros;
64536
 
  friend class ::CMatchSyntax;
64537
 
  friend class ::ExtGnu;
 
78566
  friend class ::WinAsm;
 
78567
  friend class ::WinDeclSpecs;
 
78568
  friend class ::WinMemberExplSpec;
 
78569
  friend class ::WinTypeKeywords;
 
78570
  friend class ::WinFriend;
64538
78571
  friend class ::ExtAC;
64539
78572
  friend class ::ExtACBuilderCoupling;
64540
78573
  friend class ::ExtACSyntaxCoupling;
64541
78574
  friend class ::ExtACTree;
64542
78575
  friend class ::ExtACKeywords;
64543
 
  friend class ::WinAsm;
64544
 
  friend class ::WinDeclSpecs;
64545
 
  friend class ::WinMemberExplSpec;
64546
 
  friend class ::WinTypeKeywords;
 
78576
  friend class ::ExtGnu;
64547
78577
  friend class ::PragmaOnceUnitState;
64548
78578
  friend class ::PragmaOnce;
64549
 
  friend class ::CCExprResolve;
64550
 
  friend class ::CExprResolve;
 
78579
  friend class ::CMatchSyntax;
64551
78580
 
64552
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78581
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64553
78582
 
64554
78583
public:
 
78584
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64555
78585
  static const char *NodeId ();
 
78586
  /** Get the name of the node. Can be compared with NodeId(). */
64556
78587
  const char *NodeName () const { return NodeId (); }
64557
78588
};
64558
78589
 
 
78590
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
78591
 *  Tree node representing a compound statement. */
64559
78592
 
64560
 
#line 64561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78593
#line 78594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64561
78594
} // closed Puma
 
78595
class CCExprResolve;
 
78596
class CExprResolve;
64562
78597
class WinIfExists;
64563
78598
class WinImportHandler;
64564
78599
class WinMacros;
64565
 
class CMatchSyntax;
64566
 
class ExtGnu;
 
78600
class WinAsm;
 
78601
class WinDeclSpecs;
 
78602
class WinMemberExplSpec;
 
78603
class WinTypeKeywords;
 
78604
class WinFriend;
64567
78605
class ExtAC;
64568
78606
class ExtACBuilderCoupling;
64569
78607
class ExtACSyntaxCoupling;
64570
78608
class ExtACTree;
64571
78609
class ExtACKeywords;
64572
 
class WinAsm;
64573
 
class WinDeclSpecs;
64574
 
class WinMemberExplSpec;
64575
 
class WinTypeKeywords;
 
78610
class ExtGnu;
64576
78611
class PragmaOnceUnitState;
64577
78612
class PragmaOnce;
64578
 
class CCExprResolve;
64579
 
class CExprResolve;
 
78613
class CMatchSyntax;
64580
78614
namespace Puma {
64581
78615
 
64582
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78616
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64583
78617
class CT_CmpdStmt : public CT_List, public CSemScope {
64584
 
#line 64585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78618
#line 78619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78619
  friend class ::CCExprResolve;
 
78620
  friend class ::CExprResolve;
64585
78621
  friend class ::WinIfExists;
64586
78622
  friend class ::WinImportHandler;
64587
78623
  friend class ::WinMacros;
64588
 
  friend class ::CMatchSyntax;
64589
 
  friend class ::ExtGnu;
 
78624
  friend class ::WinAsm;
 
78625
  friend class ::WinDeclSpecs;
 
78626
  friend class ::WinMemberExplSpec;
 
78627
  friend class ::WinTypeKeywords;
 
78628
  friend class ::WinFriend;
64590
78629
  friend class ::ExtAC;
64591
78630
  friend class ::ExtACBuilderCoupling;
64592
78631
  friend class ::ExtACSyntaxCoupling;
64593
78632
  friend class ::ExtACTree;
64594
78633
  friend class ::ExtACKeywords;
64595
 
  friend class ::WinAsm;
64596
 
  friend class ::WinDeclSpecs;
64597
 
  friend class ::WinMemberExplSpec;
64598
 
  friend class ::WinTypeKeywords;
 
78634
  friend class ::ExtGnu;
64599
78635
  friend class ::PragmaOnceUnitState;
64600
78636
  friend class ::PragmaOnce;
64601
 
  friend class ::CCExprResolve;
64602
 
  friend class ::CExprResolve;
 
78637
  friend class ::CMatchSyntax;
64603
78638
 
64604
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78639
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64605
78640
 
64606
78641
public:
 
78642
  /* Constructor. */
64607
78643
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
78644
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64608
78645
  static const char *NodeId ();
 
78646
  /** Get the name of the node. Can be compared with NodeId(). */
64609
78647
  const char *NodeName () const { return NodeId (); }
 
78648
  /** Get the local scope of the compound statement. */
 
78649
  CSemScope *SemScope () const { return (CSemScope*)this; }
64610
78650
};
64611
78651
 
 
78652
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
78653
 *  Tree node representing an exception handler sequence. */
64612
78654
 
64613
 
#line 64614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78655
#line 78656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64614
78656
} // closed Puma
 
78657
class CCExprResolve;
 
78658
class CExprResolve;
64615
78659
class WinIfExists;
64616
78660
class WinImportHandler;
64617
78661
class WinMacros;
64618
 
class CMatchSyntax;
64619
 
class ExtGnu;
 
78662
class WinAsm;
 
78663
class WinDeclSpecs;
 
78664
class WinMemberExplSpec;
 
78665
class WinTypeKeywords;
 
78666
class WinFriend;
64620
78667
class ExtAC;
64621
78668
class ExtACBuilderCoupling;
64622
78669
class ExtACSyntaxCoupling;
64623
78670
class ExtACTree;
64624
78671
class ExtACKeywords;
64625
 
class WinAsm;
64626
 
class WinDeclSpecs;
64627
 
class WinMemberExplSpec;
64628
 
class WinTypeKeywords;
 
78672
class ExtGnu;
64629
78673
class PragmaOnceUnitState;
64630
78674
class PragmaOnce;
64631
 
class CCExprResolve;
64632
 
class CExprResolve;
 
78675
class CMatchSyntax;
64633
78676
namespace Puma {
64634
78677
 
64635
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78678
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64636
78679
class CT_HandlerSeq : public CT_List {
64637
 
#line 64638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78680
#line 78681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78681
  friend class ::CCExprResolve;
 
78682
  friend class ::CExprResolve;
64638
78683
  friend class ::WinIfExists;
64639
78684
  friend class ::WinImportHandler;
64640
78685
  friend class ::WinMacros;
64641
 
  friend class ::CMatchSyntax;
64642
 
  friend class ::ExtGnu;
 
78686
  friend class ::WinAsm;
 
78687
  friend class ::WinDeclSpecs;
 
78688
  friend class ::WinMemberExplSpec;
 
78689
  friend class ::WinTypeKeywords;
 
78690
  friend class ::WinFriend;
64643
78691
  friend class ::ExtAC;
64644
78692
  friend class ::ExtACBuilderCoupling;
64645
78693
  friend class ::ExtACSyntaxCoupling;
64646
78694
  friend class ::ExtACTree;
64647
78695
  friend class ::ExtACKeywords;
64648
 
  friend class ::WinAsm;
64649
 
  friend class ::WinDeclSpecs;
64650
 
  friend class ::WinMemberExplSpec;
64651
 
  friend class ::WinTypeKeywords;
 
78696
  friend class ::ExtGnu;
64652
78697
  friend class ::PragmaOnceUnitState;
64653
78698
  friend class ::PragmaOnce;
64654
 
  friend class ::CCExprResolve;
64655
 
  friend class ::CExprResolve;
 
78699
  friend class ::CMatchSyntax;
64656
78700
 
64657
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78701
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64658
78702
 
64659
78703
public:
 
78704
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64660
78705
  static const char *NodeId ();
 
78706
  /** Get the name of the node. Can be compared with NodeId(). */
64661
78707
  const char *NodeName () const { return NodeId (); }
64662
78708
};
64663
78709
 
 
78710
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
78711
 *  Tree node representing a template parameter list. */
64664
78712
 
64665
 
#line 64666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78713
#line 78714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64666
78714
} // closed Puma
 
78715
class CCExprResolve;
 
78716
class CExprResolve;
64667
78717
class WinIfExists;
64668
78718
class WinImportHandler;
64669
78719
class WinMacros;
64670
 
class CMatchSyntax;
64671
 
class ExtGnu;
 
78720
class WinAsm;
 
78721
class WinDeclSpecs;
 
78722
class WinMemberExplSpec;
 
78723
class WinTypeKeywords;
 
78724
class WinFriend;
64672
78725
class ExtAC;
64673
78726
class ExtACBuilderCoupling;
64674
78727
class ExtACSyntaxCoupling;
64675
78728
class ExtACTree;
64676
78729
class ExtACKeywords;
64677
 
class WinAsm;
64678
 
class WinDeclSpecs;
64679
 
class WinMemberExplSpec;
64680
 
class WinTypeKeywords;
 
78730
class ExtGnu;
64681
78731
class PragmaOnceUnitState;
64682
78732
class PragmaOnce;
64683
 
class CCExprResolve;
64684
 
class CExprResolve;
 
78733
class CMatchSyntax;
64685
78734
namespace Puma {
64686
78735
 
64687
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78736
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64688
78737
class CT_TemplateParamList : public CT_List, public CSemScope {
64689
 
#line 64690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78738
#line 78739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78739
  friend class ::CCExprResolve;
 
78740
  friend class ::CExprResolve;
64690
78741
  friend class ::WinIfExists;
64691
78742
  friend class ::WinImportHandler;
64692
78743
  friend class ::WinMacros;
64693
 
  friend class ::CMatchSyntax;
64694
 
  friend class ::ExtGnu;
 
78744
  friend class ::WinAsm;
 
78745
  friend class ::WinDeclSpecs;
 
78746
  friend class ::WinMemberExplSpec;
 
78747
  friend class ::WinTypeKeywords;
 
78748
  friend class ::WinFriend;
64695
78749
  friend class ::ExtAC;
64696
78750
  friend class ::ExtACBuilderCoupling;
64697
78751
  friend class ::ExtACSyntaxCoupling;
64698
78752
  friend class ::ExtACTree;
64699
78753
  friend class ::ExtACKeywords;
64700
 
  friend class ::WinAsm;
64701
 
  friend class ::WinDeclSpecs;
64702
 
  friend class ::WinMemberExplSpec;
64703
 
  friend class ::WinTypeKeywords;
 
78754
  friend class ::ExtGnu;
64704
78755
  friend class ::PragmaOnceUnitState;
64705
78756
  friend class ::PragmaOnce;
64706
 
  friend class ::CCExprResolve;
64707
 
  friend class ::CExprResolve;
 
78757
  friend class ::CMatchSyntax;
64708
78758
 
64709
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78759
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64710
78760
 
64711
78761
public:
64712
78762
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
78763
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64713
78764
  static const char *NodeId ();
 
78765
  /** Get the name of the node. Can be compared with NodeId(). */
64714
78766
  const char *NodeName () const { return NodeId (); }
 
78767
  /** Get the scope of the template parameter list. */
 
78768
  CSemScope *SemScope () const { return (CSemScope*)this; }
64715
78769
};
64716
78770
 
 
78771
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
78772
 *  Tree node representing a template argument list. */
64717
78773
 
64718
 
#line 64719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78774
#line 78775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64719
78775
} // closed Puma
 
78776
class CCExprResolve;
 
78777
class CExprResolve;
64720
78778
class WinIfExists;
64721
78779
class WinImportHandler;
64722
78780
class WinMacros;
64723
 
class CMatchSyntax;
64724
 
class ExtGnu;
 
78781
class WinAsm;
 
78782
class WinDeclSpecs;
 
78783
class WinMemberExplSpec;
 
78784
class WinTypeKeywords;
 
78785
class WinFriend;
64725
78786
class ExtAC;
64726
78787
class ExtACBuilderCoupling;
64727
78788
class ExtACSyntaxCoupling;
64728
78789
class ExtACTree;
64729
78790
class ExtACKeywords;
64730
 
class WinAsm;
64731
 
class WinDeclSpecs;
64732
 
class WinMemberExplSpec;
64733
 
class WinTypeKeywords;
 
78791
class ExtGnu;
64734
78792
class PragmaOnceUnitState;
64735
78793
class PragmaOnce;
64736
 
class CCExprResolve;
64737
 
class CExprResolve;
 
78794
class CMatchSyntax;
64738
78795
namespace Puma {
64739
78796
 
64740
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78797
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64741
78798
class CT_TemplateArgList : public CT_List {
64742
 
#line 64743 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78799
#line 78800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78800
  friend class ::CCExprResolve;
 
78801
  friend class ::CExprResolve;
64743
78802
  friend class ::WinIfExists;
64744
78803
  friend class ::WinImportHandler;
64745
78804
  friend class ::WinMacros;
64746
 
  friend class ::CMatchSyntax;
64747
 
  friend class ::ExtGnu;
 
78805
  friend class ::WinAsm;
 
78806
  friend class ::WinDeclSpecs;
 
78807
  friend class ::WinMemberExplSpec;
 
78808
  friend class ::WinTypeKeywords;
 
78809
  friend class ::WinFriend;
64748
78810
  friend class ::ExtAC;
64749
78811
  friend class ::ExtACBuilderCoupling;
64750
78812
  friend class ::ExtACSyntaxCoupling;
64751
78813
  friend class ::ExtACTree;
64752
78814
  friend class ::ExtACKeywords;
64753
 
  friend class ::WinAsm;
64754
 
  friend class ::WinDeclSpecs;
64755
 
  friend class ::WinMemberExplSpec;
64756
 
  friend class ::WinTypeKeywords;
 
78815
  friend class ::ExtGnu;
64757
78816
  friend class ::PragmaOnceUnitState;
64758
78817
  friend class ::PragmaOnce;
64759
 
  friend class ::CCExprResolve;
64760
 
  friend class ::CExprResolve;
 
78818
  friend class ::CMatchSyntax;
64761
78819
 
64762
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78820
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64763
78821
 
64764
78822
public:
 
78823
  /** Constructor. */
64765
78824
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
78825
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64766
78826
  static const char *NodeId ();
 
78827
  /** Get the name of the node. Can be compared with NodeId(). */
64767
78828
  const char *NodeName () const { return NodeId (); }
64768
78829
};
64769
78830
 
64773
78834
/*                                                                           */
64774
78835
/*****************************************************************************/
64775
78836
 
 
78837
/** \class CT_Expression CTree.h Puma/CTree.h
 
78838
 *  Base class for all expression tree nodes. */
64776
78839
 
64777
 
#line 64778 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78840
#line 78841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64778
78841
} // closed Puma
 
78842
class CCExprResolve;
 
78843
class CExprResolve;
64779
78844
class WinIfExists;
64780
78845
class WinImportHandler;
64781
78846
class WinMacros;
64782
 
class CMatchSyntax;
64783
 
class ExtGnu;
 
78847
class WinAsm;
 
78848
class WinDeclSpecs;
 
78849
class WinMemberExplSpec;
 
78850
class WinTypeKeywords;
 
78851
class WinFriend;
64784
78852
class ExtAC;
64785
78853
class ExtACBuilderCoupling;
64786
78854
class ExtACSyntaxCoupling;
64787
78855
class ExtACTree;
64788
78856
class ExtACKeywords;
64789
 
class WinAsm;
64790
 
class WinDeclSpecs;
64791
 
class WinMemberExplSpec;
64792
 
class WinTypeKeywords;
 
78857
class ExtGnu;
64793
78858
class PragmaOnceUnitState;
64794
78859
class PragmaOnce;
64795
 
class CCExprResolve;
64796
 
class CExprResolve;
64797
 
namespace Puma {
64798
 
 
64799
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78860
class CMatchSyntax;
 
78861
namespace Puma {
 
78862
 
 
78863
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78864
 
 
78865
#line 78866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78866
} // closed Puma
 
78867
 
 
78868
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
78869
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
78870
#include "CCExprResolveH.ah"
 
78871
#endif
 
78872
namespace Puma {
 
78873
 
 
78874
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78875
 
 
78876
#line 78877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78877
} // closed Puma
 
78878
 
 
78879
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
78880
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
78881
#include "CExprResolveH.ah"
 
78882
#endif
 
78883
namespace Puma {
 
78884
 
 
78885
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64800
78886
class CT_Expression : public CTree, public CSemValue {
64801
 
#line 64802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
78887
#line 78888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78888
  friend class ::CCExprResolve;
 
78889
  friend class ::CExprResolve;
64802
78890
  friend class ::WinIfExists;
64803
78891
  friend class ::WinImportHandler;
64804
78892
  friend class ::WinMacros;
64805
 
  friend class ::CMatchSyntax;
64806
 
  friend class ::ExtGnu;
 
78893
  friend class ::WinAsm;
 
78894
  friend class ::WinDeclSpecs;
 
78895
  friend class ::WinMemberExplSpec;
 
78896
  friend class ::WinTypeKeywords;
 
78897
  friend class ::WinFriend;
64807
78898
  friend class ::ExtAC;
64808
78899
  friend class ::ExtACBuilderCoupling;
64809
78900
  friend class ::ExtACSyntaxCoupling;
64810
78901
  friend class ::ExtACTree;
64811
78902
  friend class ::ExtACKeywords;
64812
 
  friend class ::WinAsm;
64813
 
  friend class ::WinDeclSpecs;
64814
 
  friend class ::WinMemberExplSpec;
64815
 
  friend class ::WinTypeKeywords;
 
78903
  friend class ::ExtGnu;
64816
78904
  friend class ::PragmaOnceUnitState;
64817
78905
  friend class ::PragmaOnce;
64818
 
  friend class ::CCExprResolve;
64819
 
  friend class ::CExprResolve;
 
78906
  friend class ::CMatchSyntax;
64820
78907
 
64821
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78908
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64822
78909
 
64823
78910
protected:
 
78911
  /** Constructor. */
64824
78912
  CT_Expression () {}
64825
78913
 
64826
78914
public:
 
78915
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64827
78916
  static const char *NodeId ();
 
78917
  /** Get the name of the node. Can be compared with NodeId(). */
64828
78918
  const char *NodeName () const { return NodeId (); }
 
78919
  /** Get the type of the expression.
 
78920
   *  \return The type information object or NULL. */
64829
78921
  CTypeInfo *Type () const { return type; }
 
78922
  /** Get the value of the expression.
 
78923
   *  \return The value object or NULL. */
64830
78924
  CExprValue *Value () const { return value; }
 
78925
  /** Get the semantic value information of the expression.
 
78926
   *  \return The value object or NULL. */
64831
78927
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
78928
  /** Get this. */
 
78929
  virtual CT_Expression *IsExpression () { return this; }
64832
78930
   private:
64833
78931
  typedef CT_Expression CCExprResolveExpr;
64834
78932
 
64835
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
78933
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64836
78934
 public :
64837
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
78935
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
64838
78936
  typedef CT_Expression CExprResolveExpr;
64839
78937
 
64840
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64841
 
 public :
64842
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64843
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64844
 
};
64845
 
 
64846
 
 
64847
 
#line 64848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
64848
 
} // closed Puma
64849
 
class WinIfExists;
64850
 
class WinImportHandler;
64851
 
class WinMacros;
64852
 
class CMatchSyntax;
64853
 
class ExtGnu;
64854
 
class ExtAC;
64855
 
class ExtACBuilderCoupling;
64856
 
class ExtACSyntaxCoupling;
64857
 
class ExtACTree;
64858
 
class ExtACKeywords;
64859
 
class WinAsm;
64860
 
class WinDeclSpecs;
64861
 
class WinMemberExplSpec;
64862
 
class WinTypeKeywords;
64863
 
class PragmaOnceUnitState;
64864
 
class PragmaOnce;
64865
 
class CCExprResolve;
64866
 
class CExprResolve;
64867
 
namespace Puma {
64868
 
 
64869
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78938
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
78939
 public :
 
78940
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
78941
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78942
};
 
78943
 
 
78944
/** \class CT_Call CTree.h Puma/CTree.h
 
78945
 *  Tree node representing explicit or implicit function calls 
 
78946
 *  including built-in or user-defined functions and overloaded
 
78947
 *  operators. */
 
78948
 
 
78949
#line 78950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78950
} // closed Puma
 
78951
class CCExprResolve;
 
78952
class CExprResolve;
 
78953
class WinIfExists;
 
78954
class WinImportHandler;
 
78955
class WinMacros;
 
78956
class WinAsm;
 
78957
class WinDeclSpecs;
 
78958
class WinMemberExplSpec;
 
78959
class WinTypeKeywords;
 
78960
class WinFriend;
 
78961
class ExtAC;
 
78962
class ExtACBuilderCoupling;
 
78963
class ExtACSyntaxCoupling;
 
78964
class ExtACTree;
 
78965
class ExtACKeywords;
 
78966
class ExtGnu;
 
78967
class PragmaOnceUnitState;
 
78968
class PragmaOnce;
 
78969
class CMatchSyntax;
 
78970
namespace Puma {
 
78971
 
 
78972
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78973
 
 
78974
#line 78975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78975
} // closed Puma
 
78976
 
 
78977
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
78978
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
78979
#include "CCExprResolveH.ah"
 
78980
#endif
 
78981
namespace Puma {
 
78982
 
 
78983
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78984
 
 
78985
#line 78986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78986
} // closed Puma
 
78987
 
 
78988
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
78989
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
78990
#include "CExprResolveH.ah"
 
78991
#endif
 
78992
namespace Puma {
 
78993
 
 
78994
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78995
class CT_Call : public CT_Expression, public CSemObject {
 
78996
#line 78997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
78997
  friend class ::CCExprResolve;
 
78998
  friend class ::CExprResolve;
 
78999
  friend class ::WinIfExists;
 
79000
  friend class ::WinImportHandler;
 
79001
  friend class ::WinMacros;
 
79002
  friend class ::WinAsm;
 
79003
  friend class ::WinDeclSpecs;
 
79004
  friend class ::WinMemberExplSpec;
 
79005
  friend class ::WinTypeKeywords;
 
79006
  friend class ::WinFriend;
 
79007
  friend class ::ExtAC;
 
79008
  friend class ::ExtACBuilderCoupling;
 
79009
  friend class ::ExtACSyntaxCoupling;
 
79010
  friend class ::ExtACTree;
 
79011
  friend class ::ExtACKeywords;
 
79012
  friend class ::ExtGnu;
 
79013
  friend class ::PragmaOnceUnitState;
 
79014
  friend class ::PragmaOnce;
 
79015
  friend class ::CMatchSyntax;
 
79016
 
 
79017
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79018
 
 
79019
protected:
 
79020
  /** Constructor. */
 
79021
  CT_Call () {}
 
79022
  
 
79023
public:
 
79024
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
79025
  static const char *NodeId ();
 
79026
  /** Get the name of the node. Can be compared with NodeId(). */
 
79027
  const char *NodeName () const { return NodeId (); }
 
79028
  /** Get the semantic information of the call.
 
79029
   *  \return The semantic information or NULL. */
 
79030
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
79031
  /** Get this. */
 
79032
  CT_Call *IsCall () { return this; }
 
79033
   private:
 
79034
  typedef CT_Call CCExprResolveExpr;
 
79035
 
 
79036
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79037
 public :
 
79038
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
79039
  typedef CT_Call CExprResolveExpr;
 
79040
 
 
79041
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79042
 public :
 
79043
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79044
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79045
};
 
79046
 
 
79047
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
79048
 *  Tree node representing implicit function calls detected by
 
79049
 *  the semantic analysis. */
 
79050
 
 
79051
#line 79052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79052
} // closed Puma
 
79053
class CCExprResolve;
 
79054
class CExprResolve;
 
79055
class WinIfExists;
 
79056
class WinImportHandler;
 
79057
class WinMacros;
 
79058
class WinAsm;
 
79059
class WinDeclSpecs;
 
79060
class WinMemberExplSpec;
 
79061
class WinTypeKeywords;
 
79062
class WinFriend;
 
79063
class ExtAC;
 
79064
class ExtACBuilderCoupling;
 
79065
class ExtACSyntaxCoupling;
 
79066
class ExtACTree;
 
79067
class ExtACKeywords;
 
79068
class ExtGnu;
 
79069
class PragmaOnceUnitState;
 
79070
class PragmaOnce;
 
79071
class CMatchSyntax;
 
79072
namespace Puma {
 
79073
 
 
79074
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79075
 
 
79076
#line 79077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79077
} // closed Puma
 
79078
 
 
79079
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79080
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79081
#include "CCExprResolveH.ah"
 
79082
#endif
 
79083
namespace Puma {
 
79084
 
 
79085
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79086
 
 
79087
#line 79088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79088
} // closed Puma
 
79089
 
 
79090
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79091
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79092
#include "CExprResolveH.ah"
 
79093
#endif
 
79094
namespace Puma {
 
79095
 
 
79096
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79097
class CT_ImplicitCall : public CT_Call {
 
79098
#line 79099 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79099
  friend class ::CCExprResolve;
 
79100
  friend class ::CExprResolve;
 
79101
  friend class ::WinIfExists;
 
79102
  friend class ::WinImportHandler;
 
79103
  friend class ::WinMacros;
 
79104
  friend class ::WinAsm;
 
79105
  friend class ::WinDeclSpecs;
 
79106
  friend class ::WinMemberExplSpec;
 
79107
  friend class ::WinTypeKeywords;
 
79108
  friend class ::WinFriend;
 
79109
  friend class ::ExtAC;
 
79110
  friend class ::ExtACBuilderCoupling;
 
79111
  friend class ::ExtACSyntaxCoupling;
 
79112
  friend class ::ExtACTree;
 
79113
  friend class ::ExtACKeywords;
 
79114
  friend class ::ExtGnu;
 
79115
  friend class ::PragmaOnceUnitState;
 
79116
  friend class ::PragmaOnce;
 
79117
  friend class ::CMatchSyntax;
 
79118
 
 
79119
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79120
 
 
79121
  CTree *_arg;
 
79122
 
 
79123
public:
 
79124
  /** Constructor.
 
79125
   *  \param arg The call argument. */
 
79126
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
79127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
79128
  static const char *NodeId ();
 
79129
  /** Get the name of the node. Can be compared with NodeId(). */
 
79130
  const char *NodeName () const { return NodeId (); }
 
79131
  /** Get the number of sons. */
 
79132
  int Sons () const { return 1; }
 
79133
  /** Get the n-th son.
 
79134
   *  \param n The index of the son.
 
79135
   *  \return The n-th son or NULL. */
 
79136
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
79137
  /** Replace a son.
 
79138
   *  \param old_son The son to replace.
 
79139
   *  \param new_son The new son. */
 
79140
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
79141
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
79142
   private:
 
79143
  typedef CT_ImplicitCall CCExprResolveExpr;
 
79144
 
 
79145
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79146
 public :
 
79147
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
79148
  typedef CT_ImplicitCall CExprResolveExpr;
 
79149
 
 
79150
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79151
 public :
 
79152
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79153
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79154
};
 
79155
 
 
79156
/** \class CT_String CTree.h Puma/CTree.h
 
79157
 *  Tree node representing a string literal. */
 
79158
 
 
79159
#line 79160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79160
} // closed Puma
 
79161
class CCExprResolve;
 
79162
class CExprResolve;
 
79163
class WinIfExists;
 
79164
class WinImportHandler;
 
79165
class WinMacros;
 
79166
class WinAsm;
 
79167
class WinDeclSpecs;
 
79168
class WinMemberExplSpec;
 
79169
class WinTypeKeywords;
 
79170
class WinFriend;
 
79171
class ExtAC;
 
79172
class ExtACBuilderCoupling;
 
79173
class ExtACSyntaxCoupling;
 
79174
class ExtACTree;
 
79175
class ExtACKeywords;
 
79176
class ExtGnu;
 
79177
class PragmaOnceUnitState;
 
79178
class PragmaOnce;
 
79179
class CMatchSyntax;
 
79180
namespace Puma {
 
79181
 
 
79182
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79183
 
 
79184
#line 79185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79185
} // closed Puma
 
79186
 
 
79187
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79188
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79189
#include "CCExprResolveH.ah"
 
79190
#endif
 
79191
namespace Puma {
 
79192
 
 
79193
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79194
 
 
79195
#line 79196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79196
} // closed Puma
 
79197
 
 
79198
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79199
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79200
#include "CExprResolveH.ah"
 
79201
#endif
 
79202
namespace Puma {
 
79203
 
 
79204
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64870
79205
class CT_String : public CT_List, public CSemValue {
64871
 
#line 64872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79206
#line 79207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79207
  friend class ::CCExprResolve;
 
79208
  friend class ::CExprResolve;
64872
79209
  friend class ::WinIfExists;
64873
79210
  friend class ::WinImportHandler;
64874
79211
  friend class ::WinMacros;
64875
 
  friend class ::CMatchSyntax;
64876
 
  friend class ::ExtGnu;
 
79212
  friend class ::WinAsm;
 
79213
  friend class ::WinDeclSpecs;
 
79214
  friend class ::WinMemberExplSpec;
 
79215
  friend class ::WinTypeKeywords;
 
79216
  friend class ::WinFriend;
64877
79217
  friend class ::ExtAC;
64878
79218
  friend class ::ExtACBuilderCoupling;
64879
79219
  friend class ::ExtACSyntaxCoupling;
64880
79220
  friend class ::ExtACTree;
64881
79221
  friend class ::ExtACKeywords;
64882
 
  friend class ::WinAsm;
64883
 
  friend class ::WinDeclSpecs;
64884
 
  friend class ::WinMemberExplSpec;
64885
 
  friend class ::WinTypeKeywords;
 
79222
  friend class ::ExtGnu;
64886
79223
  friend class ::PragmaOnceUnitState;
64887
79224
  friend class ::PragmaOnce;
64888
 
  friend class ::CCExprResolve;
64889
 
  friend class ::CExprResolve;
 
79225
  friend class ::CMatchSyntax;
64890
79226
 
64891
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79227
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64892
79228
 
64893
79229
public:
 
79230
  /** Constructor. 
 
79231
   *  \param size The number of sub-strings. */
64894
79232
  CT_String (int size) : CT_List (size, 1) {}
 
79233
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64895
79234
  static const char *NodeId ();
 
79235
  /** Get the name of the node. Can be compared with NodeId(). */
64896
79236
  const char *NodeName () const { return NodeId (); }
64897
79237
 
 
79238
  /** Get the type of the string. 
 
79239
   *  \return The type or NULL. */
64898
79240
  CTypeInfo *Type () const { return type; }
 
79241
  /** Get the string value.
 
79242
   *  \return The value or NULL. */
64899
79243
  CExprValue *Value () const { return value; }
 
79244
  /** Get the semantic value info object.
 
79245
   *  \return The semantic value object or NULL. */
64900
79246
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
79247
  /** Get this. */
 
79248
  virtual CT_String *IsString () { return this; }
64901
79249
   private:
64902
79250
  typedef CT_String CCExprResolveExpr;
64903
79251
 
64904
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79252
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64905
79253
 public :
64906
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79254
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
64907
79255
  typedef CT_String CExprResolveExpr;
64908
79256
 
64909
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79257
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64910
79258
 public :
64911
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64912
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79259
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79260
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64913
79261
};
64914
79262
 
 
79263
/** \class CT_WideString CTree.h Puma/CTree.h
 
79264
 *  Tree node representing a wide string literal. */
64915
79265
 
64916
 
#line 64917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79266
#line 79267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64917
79267
} // closed Puma
 
79268
class CCExprResolve;
 
79269
class CExprResolve;
64918
79270
class WinIfExists;
64919
79271
class WinImportHandler;
64920
79272
class WinMacros;
64921
 
class CMatchSyntax;
64922
 
class ExtGnu;
 
79273
class WinAsm;
 
79274
class WinDeclSpecs;
 
79275
class WinMemberExplSpec;
 
79276
class WinTypeKeywords;
 
79277
class WinFriend;
64923
79278
class ExtAC;
64924
79279
class ExtACBuilderCoupling;
64925
79280
class ExtACSyntaxCoupling;
64926
79281
class ExtACTree;
64927
79282
class ExtACKeywords;
64928
 
class WinAsm;
64929
 
class WinDeclSpecs;
64930
 
class WinMemberExplSpec;
64931
 
class WinTypeKeywords;
 
79283
class ExtGnu;
64932
79284
class PragmaOnceUnitState;
64933
79285
class PragmaOnce;
64934
 
class CCExprResolve;
64935
 
class CExprResolve;
64936
 
namespace Puma {
64937
 
 
64938
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79286
class CMatchSyntax;
 
79287
namespace Puma {
 
79288
 
 
79289
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79290
 
 
79291
#line 79292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79292
} // closed Puma
 
79293
 
 
79294
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79295
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79296
#include "CCExprResolveH.ah"
 
79297
#endif
 
79298
namespace Puma {
 
79299
 
 
79300
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79301
 
 
79302
#line 79303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79303
} // closed Puma
 
79304
 
 
79305
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79306
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79307
#include "CExprResolveH.ah"
 
79308
#endif
 
79309
namespace Puma {
 
79310
 
 
79311
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64939
79312
class CT_WideString : public CT_String {
64940
 
#line 64941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79313
#line 79314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79314
  friend class ::CCExprResolve;
 
79315
  friend class ::CExprResolve;
64941
79316
  friend class ::WinIfExists;
64942
79317
  friend class ::WinImportHandler;
64943
79318
  friend class ::WinMacros;
64944
 
  friend class ::CMatchSyntax;
64945
 
  friend class ::ExtGnu;
 
79319
  friend class ::WinAsm;
 
79320
  friend class ::WinDeclSpecs;
 
79321
  friend class ::WinMemberExplSpec;
 
79322
  friend class ::WinTypeKeywords;
 
79323
  friend class ::WinFriend;
64946
79324
  friend class ::ExtAC;
64947
79325
  friend class ::ExtACBuilderCoupling;
64948
79326
  friend class ::ExtACSyntaxCoupling;
64949
79327
  friend class ::ExtACTree;
64950
79328
  friend class ::ExtACKeywords;
64951
 
  friend class ::WinAsm;
64952
 
  friend class ::WinDeclSpecs;
64953
 
  friend class ::WinMemberExplSpec;
64954
 
  friend class ::WinTypeKeywords;
 
79329
  friend class ::ExtGnu;
64955
79330
  friend class ::PragmaOnceUnitState;
64956
79331
  friend class ::PragmaOnce;
64957
 
  friend class ::CCExprResolve;
64958
 
  friend class ::CExprResolve;
 
79332
  friend class ::CMatchSyntax;
64959
79333
 
64960
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79334
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64961
79335
 
64962
79336
public:
 
79337
  /** Constructor.
 
79338
   *  \param size The number of sub-strings. */
64963
79339
  CT_WideString (int size) : CT_String (size) {}
 
79340
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64964
79341
  static const char *NodeId ();
 
79342
  /** Get the name of the node. Can be compared with NodeId(). */
64965
79343
  const char *NodeName () const { return NodeId (); }
64966
79344
   private:
64967
79345
  typedef CT_WideString CCExprResolveExpr;
64968
79346
 
64969
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79347
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64970
79348
 public :
64971
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79349
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
64972
79350
  typedef CT_WideString CExprResolveExpr;
64973
79351
 
64974
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79352
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64975
79353
 public :
64976
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64977
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79354
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79355
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64978
79356
};
64979
79357
 
 
79358
/** \class CT_Integer CTree.h Puma/CTree.h
 
79359
 *  Tree node representing an integer constant. */
64980
79360
 
64981
 
#line 64982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79361
#line 79362 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
64982
79362
} // closed Puma
 
79363
class CCExprResolve;
 
79364
class CExprResolve;
64983
79365
class WinIfExists;
64984
79366
class WinImportHandler;
64985
79367
class WinMacros;
64986
 
class CMatchSyntax;
64987
 
class ExtGnu;
 
79368
class WinAsm;
 
79369
class WinDeclSpecs;
 
79370
class WinMemberExplSpec;
 
79371
class WinTypeKeywords;
 
79372
class WinFriend;
64988
79373
class ExtAC;
64989
79374
class ExtACBuilderCoupling;
64990
79375
class ExtACSyntaxCoupling;
64991
79376
class ExtACTree;
64992
79377
class ExtACKeywords;
64993
 
class WinAsm;
64994
 
class WinDeclSpecs;
64995
 
class WinMemberExplSpec;
64996
 
class WinTypeKeywords;
 
79378
class ExtGnu;
64997
79379
class PragmaOnceUnitState;
64998
79380
class PragmaOnce;
64999
 
class CCExprResolve;
65000
 
class CExprResolve;
65001
 
namespace Puma {
65002
 
 
65003
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79381
class CMatchSyntax;
 
79382
namespace Puma {
 
79383
 
 
79384
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79385
 
 
79386
#line 79387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79387
} // closed Puma
 
79388
 
 
79389
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79390
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79391
#include "CCExprResolveH.ah"
 
79392
#endif
 
79393
namespace Puma {
 
79394
 
 
79395
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79396
 
 
79397
#line 79398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79398
} // closed Puma
 
79399
 
 
79400
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79401
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79402
#include "CExprResolveH.ah"
 
79403
#endif
 
79404
namespace Puma {
 
79405
 
 
79406
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65004
79407
class CT_Integer : public CT_Expression {
65005
 
#line 65006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79408
#line 79409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79409
  friend class ::CCExprResolve;
 
79410
  friend class ::CExprResolve;
65006
79411
  friend class ::WinIfExists;
65007
79412
  friend class ::WinImportHandler;
65008
79413
  friend class ::WinMacros;
65009
 
  friend class ::CMatchSyntax;
65010
 
  friend class ::ExtGnu;
 
79414
  friend class ::WinAsm;
 
79415
  friend class ::WinDeclSpecs;
 
79416
  friend class ::WinMemberExplSpec;
 
79417
  friend class ::WinTypeKeywords;
 
79418
  friend class ::WinFriend;
65011
79419
  friend class ::ExtAC;
65012
79420
  friend class ::ExtACBuilderCoupling;
65013
79421
  friend class ::ExtACSyntaxCoupling;
65014
79422
  friend class ::ExtACTree;
65015
79423
  friend class ::ExtACKeywords;
65016
 
  friend class ::WinAsm;
65017
 
  friend class ::WinDeclSpecs;
65018
 
  friend class ::WinMemberExplSpec;
65019
 
  friend class ::WinTypeKeywords;
 
79424
  friend class ::ExtGnu;
65020
79425
  friend class ::PragmaOnceUnitState;
65021
79426
  friend class ::PragmaOnce;
65022
 
  friend class ::CCExprResolve;
65023
 
  friend class ::CExprResolve;
 
79427
  friend class ::CMatchSyntax;
65024
79428
 
65025
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79429
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65026
79430
 
65027
79431
  CTree *_value;  // CT_Token
65028
79432
 
65029
79433
public:
65030
 
  CT_Integer (CTree *t) : _value (t) {}
 
79434
  /** Constructor.
 
79435
   *  \param token The token containing the integer value. */
 
79436
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
79437
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65031
79438
  static const char *NodeId ();
 
79439
  /** Get the name of the node. Can be compared with NodeId(). */
65032
79440
  const char *NodeName () const { return NodeId (); }
 
79441
  /** Get the number of sons. */
65033
79442
  int Sons () const { return _value ? 1 : 0; }
 
79443
  /** Get the n-th son.
 
79444
   *  \param n The index of the son.
 
79445
   *  \return The n-th son or NULL. */
65034
79446
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
79447
  /** Replace a son.
 
79448
   *  \param old_son The son to replace.
 
79449
   *  \param new_son The new son. */
65035
79450
  void ReplaceSon (CTree *old_son, CTree *new_son) 
65036
 
   { if (old_son == _value) _value = new_son; }
 
79451
   { CTree::ReplaceSon (_value, old_son, new_son); }
65037
79452
   private:
65038
79453
  typedef CT_Integer CCExprResolveExpr;
65039
79454
 
65040
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79455
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65041
79456
 public :
65042
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79457
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65043
79458
  typedef CT_Integer CExprResolveExpr;
65044
79459
 
65045
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79460
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65046
79461
 public :
65047
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65048
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79462
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79463
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65049
79464
};
65050
79465
 
 
79466
/** \class CT_Character CTree.h Puma/CTree.h
 
79467
 *  Tree node representing a single character constant. */
65051
79468
 
65052
 
#line 65053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79469
#line 79470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65053
79470
} // closed Puma
 
79471
class CCExprResolve;
 
79472
class CExprResolve;
65054
79473
class WinIfExists;
65055
79474
class WinImportHandler;
65056
79475
class WinMacros;
65057
 
class CMatchSyntax;
65058
 
class ExtGnu;
 
79476
class WinAsm;
 
79477
class WinDeclSpecs;
 
79478
class WinMemberExplSpec;
 
79479
class WinTypeKeywords;
 
79480
class WinFriend;
65059
79481
class ExtAC;
65060
79482
class ExtACBuilderCoupling;
65061
79483
class ExtACSyntaxCoupling;
65062
79484
class ExtACTree;
65063
79485
class ExtACKeywords;
65064
 
class WinAsm;
65065
 
class WinDeclSpecs;
65066
 
class WinMemberExplSpec;
65067
 
class WinTypeKeywords;
 
79486
class ExtGnu;
65068
79487
class PragmaOnceUnitState;
65069
79488
class PragmaOnce;
65070
 
class CCExprResolve;
65071
 
class CExprResolve;
65072
 
namespace Puma {
65073
 
 
65074
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79489
class CMatchSyntax;
 
79490
namespace Puma {
 
79491
 
 
79492
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79493
 
 
79494
#line 79495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79495
} // closed Puma
 
79496
 
 
79497
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79498
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79499
#include "CCExprResolveH.ah"
 
79500
#endif
 
79501
namespace Puma {
 
79502
 
 
79503
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79504
 
 
79505
#line 79506 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79506
} // closed Puma
 
79507
 
 
79508
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79509
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79510
#include "CExprResolveH.ah"
 
79511
#endif
 
79512
namespace Puma {
 
79513
 
 
79514
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65075
79515
class CT_Character : public CT_Expression {
65076
 
#line 65077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79516
#line 79517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79517
  friend class ::CCExprResolve;
 
79518
  friend class ::CExprResolve;
65077
79519
  friend class ::WinIfExists;
65078
79520
  friend class ::WinImportHandler;
65079
79521
  friend class ::WinMacros;
65080
 
  friend class ::CMatchSyntax;
65081
 
  friend class ::ExtGnu;
 
79522
  friend class ::WinAsm;
 
79523
  friend class ::WinDeclSpecs;
 
79524
  friend class ::WinMemberExplSpec;
 
79525
  friend class ::WinTypeKeywords;
 
79526
  friend class ::WinFriend;
65082
79527
  friend class ::ExtAC;
65083
79528
  friend class ::ExtACBuilderCoupling;
65084
79529
  friend class ::ExtACSyntaxCoupling;
65085
79530
  friend class ::ExtACTree;
65086
79531
  friend class ::ExtACKeywords;
65087
 
  friend class ::WinAsm;
65088
 
  friend class ::WinDeclSpecs;
65089
 
  friend class ::WinMemberExplSpec;
65090
 
  friend class ::WinTypeKeywords;
 
79532
  friend class ::ExtGnu;
65091
79533
  friend class ::PragmaOnceUnitState;
65092
79534
  friend class ::PragmaOnce;
65093
 
  friend class ::CCExprResolve;
65094
 
  friend class ::CExprResolve;
 
79535
  friend class ::CMatchSyntax;
65095
79536
 
65096
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79537
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65097
79538
 
65098
79539
  CTree *_value;  // CT_Token
65099
79540
 
65100
79541
public:
65101
 
  CT_Character (CTree *t) : _value (t) {}
 
79542
  /** Constructor.
 
79543
   *  \param token The token containing the character value. */
 
79544
  CT_Character (CTree *token) { AddSon (_value, token); }
 
79545
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65102
79546
  static const char *NodeId ();
 
79547
  /** Get the name of the node. Can be compared with NodeId(). */
65103
79548
  const char *NodeName () const { return NodeId (); }
 
79549
  /** Get the number of sons. */
65104
79550
  int Sons () const { return 1; }
 
79551
  /** Get the n-th son.
 
79552
   *  \param n The index of the son.
 
79553
   *  \return The n-th son or NULL. */
65105
79554
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
79555
  /** Replace a son.
 
79556
   *  \param old_son The son to replace.
 
79557
   *  \param new_son The new son. */
65106
79558
  void ReplaceSon (CTree *old_son, CTree *new_son) 
65107
 
   { if (old_son == _value) _value = new_son; }
 
79559
   { CTree::ReplaceSon (_value, old_son, new_son); }
65108
79560
   private:
65109
79561
  typedef CT_Character CCExprResolveExpr;
65110
79562
 
65111
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79563
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65112
79564
 public :
65113
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79565
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65114
79566
  typedef CT_Character CExprResolveExpr;
65115
79567
 
65116
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79568
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65117
79569
 public :
65118
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65119
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79570
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79571
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65120
79572
};
65121
79573
 
 
79574
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
79575
 *  Tree node representing a wide character constant. */
65122
79576
 
65123
 
#line 65124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79577
#line 79578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65124
79578
} // closed Puma
 
79579
class CCExprResolve;
 
79580
class CExprResolve;
65125
79581
class WinIfExists;
65126
79582
class WinImportHandler;
65127
79583
class WinMacros;
65128
 
class CMatchSyntax;
65129
 
class ExtGnu;
 
79584
class WinAsm;
 
79585
class WinDeclSpecs;
 
79586
class WinMemberExplSpec;
 
79587
class WinTypeKeywords;
 
79588
class WinFriend;
65130
79589
class ExtAC;
65131
79590
class ExtACBuilderCoupling;
65132
79591
class ExtACSyntaxCoupling;
65133
79592
class ExtACTree;
65134
79593
class ExtACKeywords;
65135
 
class WinAsm;
65136
 
class WinDeclSpecs;
65137
 
class WinMemberExplSpec;
65138
 
class WinTypeKeywords;
 
79594
class ExtGnu;
65139
79595
class PragmaOnceUnitState;
65140
79596
class PragmaOnce;
65141
 
class CCExprResolve;
65142
 
class CExprResolve;
65143
 
namespace Puma {
65144
 
 
65145
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79597
class CMatchSyntax;
 
79598
namespace Puma {
 
79599
 
 
79600
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79601
 
 
79602
#line 79603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79603
} // closed Puma
 
79604
 
 
79605
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79606
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79607
#include "CCExprResolveH.ah"
 
79608
#endif
 
79609
namespace Puma {
 
79610
 
 
79611
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79612
 
 
79613
#line 79614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79614
} // closed Puma
 
79615
 
 
79616
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79617
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79618
#include "CExprResolveH.ah"
 
79619
#endif
 
79620
namespace Puma {
 
79621
 
 
79622
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65146
79623
class CT_WideCharacter : public CT_Character {
65147
 
#line 65148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79624
#line 79625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79625
  friend class ::CCExprResolve;
 
79626
  friend class ::CExprResolve;
65148
79627
  friend class ::WinIfExists;
65149
79628
  friend class ::WinImportHandler;
65150
79629
  friend class ::WinMacros;
65151
 
  friend class ::CMatchSyntax;
65152
 
  friend class ::ExtGnu;
 
79630
  friend class ::WinAsm;
 
79631
  friend class ::WinDeclSpecs;
 
79632
  friend class ::WinMemberExplSpec;
 
79633
  friend class ::WinTypeKeywords;
 
79634
  friend class ::WinFriend;
65153
79635
  friend class ::ExtAC;
65154
79636
  friend class ::ExtACBuilderCoupling;
65155
79637
  friend class ::ExtACSyntaxCoupling;
65156
79638
  friend class ::ExtACTree;
65157
79639
  friend class ::ExtACKeywords;
65158
 
  friend class ::WinAsm;
65159
 
  friend class ::WinDeclSpecs;
65160
 
  friend class ::WinMemberExplSpec;
65161
 
  friend class ::WinTypeKeywords;
 
79640
  friend class ::ExtGnu;
65162
79641
  friend class ::PragmaOnceUnitState;
65163
79642
  friend class ::PragmaOnce;
65164
 
  friend class ::CCExprResolve;
65165
 
  friend class ::CExprResolve;
65166
 
 
65167
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65168
 
 
65169
 
  CTree *_value;  // CT_Token
 
79643
  friend class ::CMatchSyntax;
 
79644
 
 
79645
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65170
79646
 
65171
79647
public:
65172
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
79648
  /** Constructor.
 
79649
   *  \param token The token containing the wide character value. */
 
79650
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
79651
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65173
79652
  static const char *NodeId ();
 
79653
  /** Get the name of the node. Can be compared with NodeId(). */
65174
79654
  const char *NodeName () const { return NodeId (); }
65175
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
65176
 
   { if (old_son == _value) _value = new_son; }
65177
79655
   private:
65178
79656
  typedef CT_WideCharacter CCExprResolveExpr;
65179
79657
 
65180
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79658
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65181
79659
 public :
65182
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79660
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65183
79661
  typedef CT_WideCharacter CExprResolveExpr;
65184
79662
 
65185
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79663
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65186
79664
 public :
65187
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65188
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79665
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79666
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65189
79667
};
65190
79668
 
 
79669
/** \class CT_Float CTree.h Puma/CTree.h
 
79670
 *  Tree node representing a floating point constant. */
65191
79671
 
65192
 
#line 65193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79672
#line 79673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65193
79673
} // closed Puma
 
79674
class CCExprResolve;
 
79675
class CExprResolve;
65194
79676
class WinIfExists;
65195
79677
class WinImportHandler;
65196
79678
class WinMacros;
65197
 
class CMatchSyntax;
65198
 
class ExtGnu;
 
79679
class WinAsm;
 
79680
class WinDeclSpecs;
 
79681
class WinMemberExplSpec;
 
79682
class WinTypeKeywords;
 
79683
class WinFriend;
65199
79684
class ExtAC;
65200
79685
class ExtACBuilderCoupling;
65201
79686
class ExtACSyntaxCoupling;
65202
79687
class ExtACTree;
65203
79688
class ExtACKeywords;
65204
 
class WinAsm;
65205
 
class WinDeclSpecs;
65206
 
class WinMemberExplSpec;
65207
 
class WinTypeKeywords;
 
79689
class ExtGnu;
65208
79690
class PragmaOnceUnitState;
65209
79691
class PragmaOnce;
65210
 
class CCExprResolve;
65211
 
class CExprResolve;
65212
 
namespace Puma {
65213
 
 
65214
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79692
class CMatchSyntax;
 
79693
namespace Puma {
 
79694
 
 
79695
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79696
 
 
79697
#line 79698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79698
} // closed Puma
 
79699
 
 
79700
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79701
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79702
#include "CCExprResolveH.ah"
 
79703
#endif
 
79704
namespace Puma {
 
79705
 
 
79706
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79707
 
 
79708
#line 79709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79709
} // closed Puma
 
79710
 
 
79711
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79712
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79713
#include "CExprResolveH.ah"
 
79714
#endif
 
79715
namespace Puma {
 
79716
 
 
79717
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65215
79718
class CT_Float : public CT_Expression {
65216
 
#line 65217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79719
#line 79720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79720
  friend class ::CCExprResolve;
 
79721
  friend class ::CExprResolve;
65217
79722
  friend class ::WinIfExists;
65218
79723
  friend class ::WinImportHandler;
65219
79724
  friend class ::WinMacros;
65220
 
  friend class ::CMatchSyntax;
65221
 
  friend class ::ExtGnu;
 
79725
  friend class ::WinAsm;
 
79726
  friend class ::WinDeclSpecs;
 
79727
  friend class ::WinMemberExplSpec;
 
79728
  friend class ::WinTypeKeywords;
 
79729
  friend class ::WinFriend;
65222
79730
  friend class ::ExtAC;
65223
79731
  friend class ::ExtACBuilderCoupling;
65224
79732
  friend class ::ExtACSyntaxCoupling;
65225
79733
  friend class ::ExtACTree;
65226
79734
  friend class ::ExtACKeywords;
65227
 
  friend class ::WinAsm;
65228
 
  friend class ::WinDeclSpecs;
65229
 
  friend class ::WinMemberExplSpec;
65230
 
  friend class ::WinTypeKeywords;
 
79735
  friend class ::ExtGnu;
65231
79736
  friend class ::PragmaOnceUnitState;
65232
79737
  friend class ::PragmaOnce;
65233
 
  friend class ::CCExprResolve;
65234
 
  friend class ::CExprResolve;
 
79738
  friend class ::CMatchSyntax;
65235
79739
 
65236
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79740
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65237
79741
 
65238
79742
  CTree *_value;  // CT_Token
65239
79743
 
65240
79744
public:
65241
 
  CT_Float (CTree *t) : _value (t) {}
 
79745
  /** Constructor.
 
79746
   *  \param token The token containing the floating point value. */
 
79747
  CT_Float (CTree *token) { AddSon (_value, token); }
 
79748
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65242
79749
  static const char *NodeId ();
 
79750
  /** Get the name of the node. Can be compared with NodeId(). */
65243
79751
  const char *NodeName () const { return NodeId (); }
 
79752
  /** Get the number of sons. */
65244
79753
  int Sons () const { return 1; }
 
79754
  /** Get the n-th son.
 
79755
   *  \param n The index of the son.
 
79756
   *  \return The n-th son or NULL. */
65245
79757
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
79758
  /** Replace a son.
 
79759
   *  \param old_son The son to replace.
 
79760
   *  \param new_son The new son. */
65246
79761
  void ReplaceSon (CTree *old_son, CTree *new_son) 
65247
 
   { if (old_son == _value) _value = new_son; }
 
79762
   { CTree::ReplaceSon (_value, old_son, new_son); }
65248
79763
   private:
65249
79764
  typedef CT_Float CCExprResolveExpr;
65250
79765
 
65251
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79766
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65252
79767
 public :
65253
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79768
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65254
79769
  typedef CT_Float CExprResolveExpr;
65255
79770
 
65256
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79771
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65257
79772
 public :
65258
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65259
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79773
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79774
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65260
79775
};
65261
79776
 
 
79777
/** \class CT_Bool CTree.h Puma/CTree.h
 
79778
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
65262
79779
 
65263
 
#line 65264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79780
#line 79781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65264
79781
} // closed Puma
 
79782
class CCExprResolve;
 
79783
class CExprResolve;
65265
79784
class WinIfExists;
65266
79785
class WinImportHandler;
65267
79786
class WinMacros;
65268
 
class CMatchSyntax;
65269
 
class ExtGnu;
 
79787
class WinAsm;
 
79788
class WinDeclSpecs;
 
79789
class WinMemberExplSpec;
 
79790
class WinTypeKeywords;
 
79791
class WinFriend;
65270
79792
class ExtAC;
65271
79793
class ExtACBuilderCoupling;
65272
79794
class ExtACSyntaxCoupling;
65273
79795
class ExtACTree;
65274
79796
class ExtACKeywords;
65275
 
class WinAsm;
65276
 
class WinDeclSpecs;
65277
 
class WinMemberExplSpec;
65278
 
class WinTypeKeywords;
 
79797
class ExtGnu;
65279
79798
class PragmaOnceUnitState;
65280
79799
class PragmaOnce;
65281
 
class CCExprResolve;
65282
 
class CExprResolve;
65283
 
namespace Puma {
65284
 
 
65285
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79800
class CMatchSyntax;
 
79801
namespace Puma {
 
79802
 
 
79803
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79804
 
 
79805
#line 79806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79806
} // closed Puma
 
79807
 
 
79808
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79809
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79810
#include "CCExprResolveH.ah"
 
79811
#endif
 
79812
namespace Puma {
 
79813
 
 
79814
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79815
 
 
79816
#line 79817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79817
} // closed Puma
 
79818
 
 
79819
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79820
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79821
#include "CExprResolveH.ah"
 
79822
#endif
 
79823
namespace Puma {
 
79824
 
 
79825
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65286
79826
class CT_Bool : public CT_Expression {
65287
 
#line 65288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79827
#line 79828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79828
  friend class ::CCExprResolve;
 
79829
  friend class ::CExprResolve;
65288
79830
  friend class ::WinIfExists;
65289
79831
  friend class ::WinImportHandler;
65290
79832
  friend class ::WinMacros;
65291
 
  friend class ::CMatchSyntax;
65292
 
  friend class ::ExtGnu;
 
79833
  friend class ::WinAsm;
 
79834
  friend class ::WinDeclSpecs;
 
79835
  friend class ::WinMemberExplSpec;
 
79836
  friend class ::WinTypeKeywords;
 
79837
  friend class ::WinFriend;
65293
79838
  friend class ::ExtAC;
65294
79839
  friend class ::ExtACBuilderCoupling;
65295
79840
  friend class ::ExtACSyntaxCoupling;
65296
79841
  friend class ::ExtACTree;
65297
79842
  friend class ::ExtACKeywords;
65298
 
  friend class ::WinAsm;
65299
 
  friend class ::WinDeclSpecs;
65300
 
  friend class ::WinMemberExplSpec;
65301
 
  friend class ::WinTypeKeywords;
 
79843
  friend class ::ExtGnu;
65302
79844
  friend class ::PragmaOnceUnitState;
65303
79845
  friend class ::PragmaOnce;
65304
 
  friend class ::CCExprResolve;
65305
 
  friend class ::CExprResolve;
 
79846
  friend class ::CMatchSyntax;
65306
79847
 
65307
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79848
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65308
79849
 
65309
79850
  CTree *_value;  // CT_Token
65310
79851
 
65311
79852
public:
65312
 
  CT_Bool (CTree *t) : _value (t) {}
 
79853
  /** Constructor.
 
79854
   *  \param token The token containing the boolean value. */
 
79855
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
79856
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65313
79857
  static const char *NodeId ();
 
79858
  /** Get the name of the node. Can be compared with NodeId(). */
65314
79859
  const char *NodeName () const { return NodeId (); }
 
79860
  /** Get the number of sons. */
65315
79861
  int Sons () const { return 1; }
 
79862
  /** Get the n-th son.
 
79863
   *  \param n The index of the son.
 
79864
   *  \return The n-th son or NULL. */
65316
79865
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
79866
  /** Replace a son.
 
79867
   *  \param old_son The son to replace.
 
79868
   *  \param new_son The new son. */
65317
79869
  void ReplaceSon (CTree *old_son, CTree *new_son) 
65318
 
   { if (old_son == _value) _value = new_son; }
 
79870
   { CTree::ReplaceSon (_value, old_son, new_son); }
65319
79871
   private:
65320
79872
  typedef CT_Bool CCExprResolveExpr;
65321
79873
 
65322
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79874
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65323
79875
 public :
65324
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79876
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65325
79877
  typedef CT_Bool CExprResolveExpr;
65326
79878
 
65327
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79879
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65328
79880
 public :
65329
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65330
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79881
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79882
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65331
79883
};
65332
79884
 
 
79885
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
79886
 *  Tree node representing a braced expression, e.g. (a+b). */
65333
79887
 
65334
 
#line 65335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79888
#line 79889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65335
79889
} // closed Puma
 
79890
class CCExprResolve;
 
79891
class CExprResolve;
65336
79892
class WinIfExists;
65337
79893
class WinImportHandler;
65338
79894
class WinMacros;
65339
 
class CMatchSyntax;
65340
 
class ExtGnu;
 
79895
class WinAsm;
 
79896
class WinDeclSpecs;
 
79897
class WinMemberExplSpec;
 
79898
class WinTypeKeywords;
 
79899
class WinFriend;
65341
79900
class ExtAC;
65342
79901
class ExtACBuilderCoupling;
65343
79902
class ExtACSyntaxCoupling;
65344
79903
class ExtACTree;
65345
79904
class ExtACKeywords;
65346
 
class WinAsm;
65347
 
class WinDeclSpecs;
65348
 
class WinMemberExplSpec;
65349
 
class WinTypeKeywords;
 
79905
class ExtGnu;
65350
79906
class PragmaOnceUnitState;
65351
79907
class PragmaOnce;
65352
 
class CCExprResolve;
65353
 
class CExprResolve;
65354
 
namespace Puma {
65355
 
 
65356
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79908
class CMatchSyntax;
 
79909
namespace Puma {
 
79910
 
 
79911
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79912
 
 
79913
#line 79914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79914
} // closed Puma
 
79915
 
 
79916
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79917
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79918
#include "CCExprResolveH.ah"
 
79919
#endif
 
79920
namespace Puma {
 
79921
 
 
79922
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79923
 
 
79924
#line 79925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79925
} // closed Puma
 
79926
 
 
79927
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79928
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79929
#include "CExprResolveH.ah"
 
79930
#endif
 
79931
namespace Puma {
 
79932
 
 
79933
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65357
79934
class CT_BracedExpr : public CT_Expression {
65358
 
#line 65359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
79935
#line 79936 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
79936
  friend class ::CCExprResolve;
 
79937
  friend class ::CExprResolve;
65359
79938
  friend class ::WinIfExists;
65360
79939
  friend class ::WinImportHandler;
65361
79940
  friend class ::WinMacros;
65362
 
  friend class ::CMatchSyntax;
65363
 
  friend class ::ExtGnu;
 
79941
  friend class ::WinAsm;
 
79942
  friend class ::WinDeclSpecs;
 
79943
  friend class ::WinMemberExplSpec;
 
79944
  friend class ::WinTypeKeywords;
 
79945
  friend class ::WinFriend;
65364
79946
  friend class ::ExtAC;
65365
79947
  friend class ::ExtACBuilderCoupling;
65366
79948
  friend class ::ExtACSyntaxCoupling;
65367
79949
  friend class ::ExtACTree;
65368
79950
  friend class ::ExtACKeywords;
65369
 
  friend class ::WinAsm;
65370
 
  friend class ::WinDeclSpecs;
65371
 
  friend class ::WinMemberExplSpec;
65372
 
  friend class ::WinTypeKeywords;
 
79951
  friend class ::ExtGnu;
65373
79952
  friend class ::PragmaOnceUnitState;
65374
79953
  friend class ::PragmaOnce;
65375
 
  friend class ::CCExprResolve;
65376
 
  friend class ::CExprResolve;
 
79954
  friend class ::CMatchSyntax;
65377
79955
 
65378
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79956
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65379
79957
 
65380
79958
  CTree *sons[3]; // open, expr, close
65381
79959
 
65382
79960
public:
 
79961
  /** Constructor.
 
79962
   *  \param o The opening brace.
 
79963
   *  \param e The enclosed expression.
 
79964
   *  \param c The closing brace. */
65383
79965
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
65384
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
79966
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
65385
79967
  }
 
79968
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65386
79969
  static const char *NodeId ();
 
79970
  /** Get the name of the node. Can be compared with NodeId(). */
65387
79971
  const char *NodeName () const { return NodeId (); }
 
79972
  /** Get the number of sons. */
65388
79973
  int Sons () const { return 3; }
 
79974
  /** Get the n-th son.
 
79975
   *  \param n The index of the son.
 
79976
   *  \return The n-th son or NULL. */
65389
79977
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
79978
  /** Get the enclosed expression. */
65390
79979
  CTree *Expr () const { return sons[1]; }
 
79980
  /** Get the type of the enclosed expression. */
65391
79981
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
79982
  /** Get the value of the enclosed expression. */
65392
79983
  CExprValue *Value () const { return Expr ()->Value (); }
 
79984
  /** Get the semantic value object. */
65393
79985
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
79986
  /** Replace a son.
 
79987
   *  \param old_son The son to replace.
 
79988
   *  \param new_son The new son. */
65394
79989
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65395
79990
    CTree::ReplaceSon (sons, 3, old_son, new_son);
65396
79991
  }
65397
79992
   private:
65398
79993
  typedef CT_BracedExpr CCExprResolveExpr;
65399
79994
 
65400
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79995
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65401
79996
 public :
65402
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79997
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65403
79998
  typedef CT_BracedExpr CExprResolveExpr;
65404
79999
 
65405
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80000
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65406
80001
 public :
65407
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65408
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80002
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80003
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65409
80004
};
65410
80005
 
 
80006
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
80007
 *  Base class for all tree nodes representing a name. */
65411
80008
 
65412
 
#line 65413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80009
#line 80010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65413
80010
} // closed Puma
 
80011
class CCExprResolve;
 
80012
class CExprResolve;
65414
80013
class WinIfExists;
65415
80014
class WinImportHandler;
65416
80015
class WinMacros;
65417
 
class CMatchSyntax;
65418
 
class ExtGnu;
 
80016
class WinAsm;
 
80017
class WinDeclSpecs;
 
80018
class WinMemberExplSpec;
 
80019
class WinTypeKeywords;
 
80020
class WinFriend;
65419
80021
class ExtAC;
65420
80022
class ExtACBuilderCoupling;
65421
80023
class ExtACSyntaxCoupling;
65422
80024
class ExtACTree;
65423
80025
class ExtACKeywords;
65424
 
class WinAsm;
65425
 
class WinDeclSpecs;
65426
 
class WinMemberExplSpec;
65427
 
class WinTypeKeywords;
 
80026
class ExtGnu;
65428
80027
class PragmaOnceUnitState;
65429
80028
class PragmaOnce;
65430
 
class CCExprResolve;
65431
 
class CExprResolve;
65432
 
namespace Puma {
65433
 
 
65434
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80029
class CMatchSyntax;
 
80030
namespace Puma {
 
80031
 
 
80032
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80033
 
 
80034
#line 80035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80035
} // closed Puma
 
80036
 
 
80037
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80038
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80039
#include "CCExprResolveH.ah"
 
80040
#endif
 
80041
namespace Puma {
 
80042
 
 
80043
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80044
 
 
80045
#line 80046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80046
} // closed Puma
 
80047
 
 
80048
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80049
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80050
#include "CExprResolveH.ah"
 
80051
#endif
 
80052
namespace Puma {
 
80053
 
 
80054
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65435
80055
class CT_SimpleName : public CT_List, public Printable, 
65436
80056
                      public CSemValue, public CSemObject {
65437
 
#line 65438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80057
#line 80058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80058
  friend class ::CCExprResolve;
 
80059
  friend class ::CExprResolve;
65438
80060
  friend class ::WinIfExists;
65439
80061
  friend class ::WinImportHandler;
65440
80062
  friend class ::WinMacros;
65441
 
  friend class ::CMatchSyntax;
65442
 
  friend class ::ExtGnu;
 
80063
  friend class ::WinAsm;
 
80064
  friend class ::WinDeclSpecs;
 
80065
  friend class ::WinMemberExplSpec;
 
80066
  friend class ::WinTypeKeywords;
 
80067
  friend class ::WinFriend;
65443
80068
  friend class ::ExtAC;
65444
80069
  friend class ::ExtACBuilderCoupling;
65445
80070
  friend class ::ExtACSyntaxCoupling;
65446
80071
  friend class ::ExtACTree;
65447
80072
  friend class ::ExtACKeywords;
65448
 
  friend class ::WinAsm;
65449
 
  friend class ::WinDeclSpecs;
65450
 
  friend class ::WinMemberExplSpec;
65451
 
  friend class ::WinTypeKeywords;
 
80073
  friend class ::ExtGnu;
65452
80074
  friend class ::PragmaOnceUnitState;
65453
80075
  friend class ::PragmaOnce;
65454
 
  friend class ::CCExprResolve;
65455
 
  friend class ::CExprResolve;
 
80076
  friend class ::CMatchSyntax;
65456
80077
 
65457
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80078
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65458
80079
 
65459
80080
protected:
 
80081
  /** Constructor.
 
80082
   *  \param size The number of sub-names (for qualified names). */
65460
80083
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
80084
  /** Constructor.
 
80085
   *  \param size The number of sub-names (for qualified names). 
 
80086
   *  \param properties Additional name list properties (for root qualified names). */
65461
80087
  CT_SimpleName (int size, int properties) : 
65462
80088
    CT_List (size, 2, properties) {}
65463
80089
  
65464
80090
public:
 
80091
  /** Constructor.
 
80092
   *  \param n The sub-tree containing the name. */
65465
80093
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
80094
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65466
80095
  static const char *NodeId ();
 
80096
  /** Get the name of the node. Can be compared with NodeId(). */
65467
80097
  const char *NodeName () const { return NodeId (); }
 
80098
  /** Get the string containing the name. */
65468
80099
  virtual const char *Text () const 
65469
80100
   { return Son (Sons ()-1)->token ()->text (); }
 
80101
  /** Print the name on the given stream. 
 
80102
   *  \param os The output stream. */
65470
80103
  virtual void print (ostream &os) const { os << Text (); }
 
80104
  /** Get this. */
65471
80105
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
80106
  /** Get the type of the entity represented by the name. */
65472
80107
  CTypeInfo *Type () const { return type; }
 
80108
  /** Get the value of the entity represented by the name. */ 
65473
80109
  CExprValue *Value () const { return value; }
 
80110
  /** Get the sematic value information object. */
65474
80111
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
80112
  /** Get the sematic information object. */
65475
80113
  CSemObject *SemObject () const { return (CSemObject*)this; }
65476
 
  // special new / delete with reusing memory
65477
 
  void *operator new (size_t);
65478
 
  void  operator delete (void *);
65479
 
  // classification function
 
80114
  /** Get this. */
65480
80115
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
80116
 
 
80117
public:
 
80118
  /** Own new operator reusing memory. */
 
80119
  void *operator new (size_t);
 
80120
  /** Own delete operator. */
 
80121
  void operator delete (void *);
65481
80122
   private:
65482
80123
  typedef CT_SimpleName CCExprResolveExpr;
65483
80124
 
65484
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80125
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65485
80126
 public :
65486
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80127
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65487
80128
  typedef CT_SimpleName CExprResolveExpr;
65488
80129
 
65489
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80130
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65490
80131
 public :
65491
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65492
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80132
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80133
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65493
80134
};
65494
80135
 
 
80136
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
80137
 *  Base class for tree nodes representing a special name, like destructor names. */
65495
80138
 
65496
 
#line 65497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80139
#line 80140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65497
80140
} // closed Puma
 
80141
class CCExprResolve;
 
80142
class CExprResolve;
65498
80143
class WinIfExists;
65499
80144
class WinImportHandler;
65500
80145
class WinMacros;
65501
 
class CMatchSyntax;
65502
 
class ExtGnu;
 
80146
class WinAsm;
 
80147
class WinDeclSpecs;
 
80148
class WinMemberExplSpec;
 
80149
class WinTypeKeywords;
 
80150
class WinFriend;
65503
80151
class ExtAC;
65504
80152
class ExtACBuilderCoupling;
65505
80153
class ExtACSyntaxCoupling;
65506
80154
class ExtACTree;
65507
80155
class ExtACKeywords;
65508
 
class WinAsm;
65509
 
class WinDeclSpecs;
65510
 
class WinMemberExplSpec;
65511
 
class WinTypeKeywords;
 
80156
class ExtGnu;
65512
80157
class PragmaOnceUnitState;
65513
80158
class PragmaOnce;
65514
 
class CCExprResolve;
65515
 
class CExprResolve;
65516
 
namespace Puma {
65517
 
 
65518
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80159
class CMatchSyntax;
 
80160
namespace Puma {
 
80161
 
 
80162
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80163
 
 
80164
#line 80165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80165
} // closed Puma
 
80166
 
 
80167
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80168
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80169
#include "CCExprResolveH.ah"
 
80170
#endif
 
80171
namespace Puma {
 
80172
 
 
80173
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80174
 
 
80175
#line 80176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80176
} // closed Puma
 
80177
 
 
80178
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80179
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80180
#include "CExprResolveH.ah"
 
80181
#endif
 
80182
namespace Puma {
 
80183
 
 
80184
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65519
80185
class CT_SpecialName : public CT_SimpleName {
65520
 
#line 65521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80186
#line 80187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80187
  friend class ::CCExprResolve;
 
80188
  friend class ::CExprResolve;
65521
80189
  friend class ::WinIfExists;
65522
80190
  friend class ::WinImportHandler;
65523
80191
  friend class ::WinMacros;
65524
 
  friend class ::CMatchSyntax;
65525
 
  friend class ::ExtGnu;
 
80192
  friend class ::WinAsm;
 
80193
  friend class ::WinDeclSpecs;
 
80194
  friend class ::WinMemberExplSpec;
 
80195
  friend class ::WinTypeKeywords;
 
80196
  friend class ::WinFriend;
65526
80197
  friend class ::ExtAC;
65527
80198
  friend class ::ExtACBuilderCoupling;
65528
80199
  friend class ::ExtACSyntaxCoupling;
65529
80200
  friend class ::ExtACTree;
65530
80201
  friend class ::ExtACKeywords;
65531
 
  friend class ::WinAsm;
65532
 
  friend class ::WinDeclSpecs;
65533
 
  friend class ::WinMemberExplSpec;
65534
 
  friend class ::WinTypeKeywords;
 
80202
  friend class ::ExtGnu;
65535
80203
  friend class ::PragmaOnceUnitState;
65536
80204
  friend class ::PragmaOnce;
65537
 
  friend class ::CCExprResolve;
65538
 
  friend class ::CExprResolve;
 
80205
  friend class ::CMatchSyntax;
65539
80206
 
65540
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80207
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65541
80208
 
65542
80209
  char *_name;
65543
80210
  
65544
80211
protected:
 
80212
  /** Constructor.
 
80213
   *  \param size The number of sub-names (for qualified names). */
65545
80214
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
65546
80215
  
65547
80216
public:
 
80217
  /** Destructor. Deletes the name string. */
65548
80218
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
80219
  /** Get the string containing the name. */
65549
80220
  const char *Text () const { return _name; }
 
80221
  /** Set the name. The name is copied.
 
80222
   *  \param n The name. */
65550
80223
  void Name (const char *n) { 
65551
80224
    if (n) { 
65552
80225
      _name = new char[strlen(n) + 1];
65553
80226
      strcpy (_name,n);
65554
80227
    }
65555
80228
  }
65556
 
  // special new / delete with reusing memory
 
80229
 
 
80230
public:
 
80231
  /** Own new operator reusing memory. */
65557
80232
  void *operator new (size_t);
65558
 
  void  operator delete (void *);
 
80233
  /** Own delete operator. */
 
80234
  void operator delete (void *);
65559
80235
   private:
65560
80236
  typedef CT_SpecialName CCExprResolveExpr;
65561
80237
 
65562
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80238
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65563
80239
 public :
65564
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80240
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65565
80241
  typedef CT_SpecialName CExprResolveExpr;
65566
80242
 
65567
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80243
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65568
80244
 public :
65569
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65570
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80245
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80246
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65571
80247
};
65572
80248
 
 
80249
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
80250
 *  Tree node representing a private name. Private names 
 
80251
 *  are generated names for abstract declarators etc. */
65573
80252
 
65574
 
#line 65575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80253
#line 80254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65575
80254
} // closed Puma
 
80255
class CCExprResolve;
 
80256
class CExprResolve;
65576
80257
class WinIfExists;
65577
80258
class WinImportHandler;
65578
80259
class WinMacros;
65579
 
class CMatchSyntax;
65580
 
class ExtGnu;
 
80260
class WinAsm;
 
80261
class WinDeclSpecs;
 
80262
class WinMemberExplSpec;
 
80263
class WinTypeKeywords;
 
80264
class WinFriend;
65581
80265
class ExtAC;
65582
80266
class ExtACBuilderCoupling;
65583
80267
class ExtACSyntaxCoupling;
65584
80268
class ExtACTree;
65585
80269
class ExtACKeywords;
65586
 
class WinAsm;
65587
 
class WinDeclSpecs;
65588
 
class WinMemberExplSpec;
65589
 
class WinTypeKeywords;
 
80270
class ExtGnu;
65590
80271
class PragmaOnceUnitState;
65591
80272
class PragmaOnce;
65592
 
class CCExprResolve;
65593
 
class CExprResolve;
65594
 
namespace Puma {
65595
 
 
65596
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80273
class CMatchSyntax;
 
80274
namespace Puma {
 
80275
 
 
80276
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80277
 
 
80278
#line 80279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80279
} // closed Puma
 
80280
 
 
80281
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80282
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80283
#include "CCExprResolveH.ah"
 
80284
#endif
 
80285
namespace Puma {
 
80286
 
 
80287
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80288
 
 
80289
#line 80290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80290
} // closed Puma
 
80291
 
 
80292
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80293
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80294
#include "CExprResolveH.ah"
 
80295
#endif
 
80296
namespace Puma {
 
80297
 
 
80298
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65597
80299
class CT_PrivateName : public CT_SpecialName {
65598
 
#line 65599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80300
#line 80301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80301
  friend class ::CCExprResolve;
 
80302
  friend class ::CExprResolve;
65599
80303
  friend class ::WinIfExists;
65600
80304
  friend class ::WinImportHandler;
65601
80305
  friend class ::WinMacros;
65602
 
  friend class ::CMatchSyntax;
65603
 
  friend class ::ExtGnu;
 
80306
  friend class ::WinAsm;
 
80307
  friend class ::WinDeclSpecs;
 
80308
  friend class ::WinMemberExplSpec;
 
80309
  friend class ::WinTypeKeywords;
 
80310
  friend class ::WinFriend;
65604
80311
  friend class ::ExtAC;
65605
80312
  friend class ::ExtACBuilderCoupling;
65606
80313
  friend class ::ExtACSyntaxCoupling;
65607
80314
  friend class ::ExtACTree;
65608
80315
  friend class ::ExtACKeywords;
65609
 
  friend class ::WinAsm;
65610
 
  friend class ::WinDeclSpecs;
65611
 
  friend class ::WinMemberExplSpec;
65612
 
  friend class ::WinTypeKeywords;
 
80316
  friend class ::ExtGnu;
65613
80317
  friend class ::PragmaOnceUnitState;
65614
80318
  friend class ::PragmaOnce;
65615
 
  friend class ::CCExprResolve;
65616
 
  friend class ::CExprResolve;
 
80319
  friend class ::CMatchSyntax;
65617
80320
 
65618
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80321
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65619
80322
 
65620
80323
public:
 
80324
  /** Constructor.
 
80325
   *  \param n The private (generated) name. */
65621
80326
  CT_PrivateName (const char *n) { Name (n); }
 
80327
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65622
80328
  static const char *NodeId ();
 
80329
  /** Get the name of the node. Can be compared with NodeId(). */
65623
80330
  const char *NodeName () const { return NodeId (); }
 
80331
  /** Get the number of sons. */
65624
80332
  int Sons () const { return 0; }
 
80333
  /** Get the n-th son.
 
80334
   *  \param n The index of the son.
 
80335
   *  \return The n-th son or NULL. */
65625
80336
  CTree *Son (int n) const { return (CTree*)0; }
65626
 
  // special new / delete with reusing memory
 
80337
 
 
80338
public:
 
80339
  /** Own new operator reusing memory. */
65627
80340
  void *operator new (size_t);
65628
 
  void  operator delete (void *);
 
80341
  /** Own delete operator. */
 
80342
  void operator delete (void *);
65629
80343
   private:
65630
80344
  typedef CT_PrivateName CCExprResolveExpr;
65631
80345
 
65632
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80346
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65633
80347
 public :
65634
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80348
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65635
80349
  typedef CT_PrivateName CExprResolveExpr;
65636
80350
 
65637
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80351
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65638
80352
 public :
65639
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65640
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80353
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80354
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65641
80355
};
65642
80356
 
 
80357
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
80358
 *  Tree node representing a destructor name. */
65643
80359
 
65644
 
#line 65645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80360
#line 80361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65645
80361
} // closed Puma
 
80362
class CCExprResolve;
 
80363
class CExprResolve;
65646
80364
class WinIfExists;
65647
80365
class WinImportHandler;
65648
80366
class WinMacros;
65649
 
class CMatchSyntax;
65650
 
class ExtGnu;
 
80367
class WinAsm;
 
80368
class WinDeclSpecs;
 
80369
class WinMemberExplSpec;
 
80370
class WinTypeKeywords;
 
80371
class WinFriend;
65651
80372
class ExtAC;
65652
80373
class ExtACBuilderCoupling;
65653
80374
class ExtACSyntaxCoupling;
65654
80375
class ExtACTree;
65655
80376
class ExtACKeywords;
65656
 
class WinAsm;
65657
 
class WinDeclSpecs;
65658
 
class WinMemberExplSpec;
65659
 
class WinTypeKeywords;
 
80377
class ExtGnu;
65660
80378
class PragmaOnceUnitState;
65661
80379
class PragmaOnce;
65662
 
class CCExprResolve;
65663
 
class CExprResolve;
65664
 
namespace Puma {
65665
 
 
65666
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80380
class CMatchSyntax;
 
80381
namespace Puma {
 
80382
 
 
80383
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80384
 
 
80385
#line 80386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80386
} // closed Puma
 
80387
 
 
80388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80390
#include "CCExprResolveH.ah"
 
80391
#endif
 
80392
namespace Puma {
 
80393
 
 
80394
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80395
 
 
80396
#line 80397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80397
} // closed Puma
 
80398
 
 
80399
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80400
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80401
#include "CExprResolveH.ah"
 
80402
#endif
 
80403
namespace Puma {
 
80404
 
 
80405
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65667
80406
class CT_DestructorName : public CT_SpecialName {
65668
 
#line 65669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80407
#line 80408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80408
  friend class ::CCExprResolve;
 
80409
  friend class ::CExprResolve;
65669
80410
  friend class ::WinIfExists;
65670
80411
  friend class ::WinImportHandler;
65671
80412
  friend class ::WinMacros;
65672
 
  friend class ::CMatchSyntax;
65673
 
  friend class ::ExtGnu;
 
80413
  friend class ::WinAsm;
 
80414
  friend class ::WinDeclSpecs;
 
80415
  friend class ::WinMemberExplSpec;
 
80416
  friend class ::WinTypeKeywords;
 
80417
  friend class ::WinFriend;
65674
80418
  friend class ::ExtAC;
65675
80419
  friend class ::ExtACBuilderCoupling;
65676
80420
  friend class ::ExtACSyntaxCoupling;
65677
80421
  friend class ::ExtACTree;
65678
80422
  friend class ::ExtACKeywords;
65679
 
  friend class ::WinAsm;
65680
 
  friend class ::WinDeclSpecs;
65681
 
  friend class ::WinMemberExplSpec;
65682
 
  friend class ::WinTypeKeywords;
 
80423
  friend class ::ExtGnu;
65683
80424
  friend class ::PragmaOnceUnitState;
65684
80425
  friend class ::PragmaOnce;
65685
 
  friend class ::CCExprResolve;
65686
 
  friend class ::CExprResolve;
 
80426
  friend class ::CMatchSyntax;
65687
80427
 
65688
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80428
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65689
80429
 
65690
80430
public:
65691
 
  CT_DestructorName (CTree *, CTree *);
 
80431
  /** Constructor.
 
80432
   *  \param t The tilde operator.
 
80433
   *  \param n The class name. */
 
80434
  CT_DestructorName (CTree *t, CTree *n);
 
80435
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65692
80436
  static const char *NodeId ();
 
80437
  /** Get the name of the node. Can be compared with NodeId(). */
65693
80438
  const char *NodeName () const { return NodeId (); }
65694
 
  // special new / delete with reusing memory
 
80439
 
 
80440
public:
 
80441
  /** Own new operator reusing memory. */
65695
80442
  void *operator new (size_t);
65696
 
  void  operator delete (void *);
 
80443
  /** Own delete operator. */
 
80444
  void operator delete (void *);
65697
80445
   private:
65698
80446
  typedef CT_DestructorName CCExprResolveExpr;
65699
80447
 
65700
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80448
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65701
80449
 public :
65702
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80450
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65703
80451
  typedef CT_DestructorName CExprResolveExpr;
65704
80452
 
65705
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80453
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65706
80454
 public :
65707
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65708
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80455
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80456
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65709
80457
};
65710
80458
 
 
80459
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
80460
 *  Tree node representing a template name. */
65711
80461
 
65712
 
#line 65713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80462
#line 80463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65713
80463
} // closed Puma
 
80464
class CCExprResolve;
 
80465
class CExprResolve;
65714
80466
class WinIfExists;
65715
80467
class WinImportHandler;
65716
80468
class WinMacros;
65717
 
class CMatchSyntax;
65718
 
class ExtGnu;
 
80469
class WinAsm;
 
80470
class WinDeclSpecs;
 
80471
class WinMemberExplSpec;
 
80472
class WinTypeKeywords;
 
80473
class WinFriend;
65719
80474
class ExtAC;
65720
80475
class ExtACBuilderCoupling;
65721
80476
class ExtACSyntaxCoupling;
65722
80477
class ExtACTree;
65723
80478
class ExtACKeywords;
65724
 
class WinAsm;
65725
 
class WinDeclSpecs;
65726
 
class WinMemberExplSpec;
65727
 
class WinTypeKeywords;
 
80479
class ExtGnu;
65728
80480
class PragmaOnceUnitState;
65729
80481
class PragmaOnce;
65730
 
class CCExprResolve;
65731
 
class CExprResolve;
65732
 
namespace Puma {
65733
 
 
65734
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80482
class CMatchSyntax;
 
80483
namespace Puma {
 
80484
 
 
80485
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80486
 
 
80487
#line 80488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80488
} // closed Puma
 
80489
 
 
80490
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80491
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80492
#include "CCExprResolveH.ah"
 
80493
#endif
 
80494
namespace Puma {
 
80495
 
 
80496
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80497
 
 
80498
#line 80499 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80499
} // closed Puma
 
80500
 
 
80501
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80502
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80503
#include "CExprResolveH.ah"
 
80504
#endif
 
80505
namespace Puma {
 
80506
 
 
80507
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65735
80508
class CT_TemplateName : public CT_SpecialName {
65736
 
#line 65737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80509
#line 80510 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80510
  friend class ::CCExprResolve;
 
80511
  friend class ::CExprResolve;
65737
80512
  friend class ::WinIfExists;
65738
80513
  friend class ::WinImportHandler;
65739
80514
  friend class ::WinMacros;
65740
 
  friend class ::CMatchSyntax;
65741
 
  friend class ::ExtGnu;
 
80515
  friend class ::WinAsm;
 
80516
  friend class ::WinDeclSpecs;
 
80517
  friend class ::WinMemberExplSpec;
 
80518
  friend class ::WinTypeKeywords;
 
80519
  friend class ::WinFriend;
65742
80520
  friend class ::ExtAC;
65743
80521
  friend class ::ExtACBuilderCoupling;
65744
80522
  friend class ::ExtACSyntaxCoupling;
65745
80523
  friend class ::ExtACTree;
65746
80524
  friend class ::ExtACKeywords;
65747
 
  friend class ::WinAsm;
65748
 
  friend class ::WinDeclSpecs;
65749
 
  friend class ::WinMemberExplSpec;
65750
 
  friend class ::WinTypeKeywords;
 
80525
  friend class ::ExtGnu;
65751
80526
  friend class ::PragmaOnceUnitState;
65752
80527
  friend class ::PragmaOnce;
65753
 
  friend class ::CCExprResolve;
65754
 
  friend class ::CExprResolve;
 
80528
  friend class ::CMatchSyntax;
65755
80529
 
65756
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80530
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65757
80531
 
65758
80532
public:
 
80533
  /** Constructor.
 
80534
   *  \param n The template class or function name.
 
80535
   *  \param a The template argument list. */
65759
80536
  CT_TemplateName (CTree *n, CTree *a) 
65760
80537
   { AddSon (n); AddSon (a); }
 
80538
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65761
80539
  static const char *NodeId ();
 
80540
  /** Get the name of the node. Can be compared with NodeId(). */
65762
80541
  const char *NodeName () const { return NodeId (); }
 
80542
  /** Get the template argument list. */
65763
80543
  CT_TemplateArgList *Arguments () const 
65764
80544
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
80545
  /** Get the template class or function name. */
65765
80546
  CT_SimpleName *TemplateName () const 
65766
80547
   { return (CT_SimpleName*)Son (Sons ()-2); }
65767
80548
  // may change in the future
65768
80549
  const char *Text () const { return TemplateName ()->Text (); }
65769
 
  // special new / delete with reusing memory
 
80550
 
 
80551
public:
 
80552
  /** Own new operator reusing memory. */
65770
80553
  void *operator new (size_t);
65771
 
  void  operator delete (void *);
 
80554
  /** Own delete operator. */
 
80555
  void operator delete (void *);
65772
80556
   private:
65773
80557
  typedef CT_TemplateName CCExprResolveExpr;
65774
80558
 
65775
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80559
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65776
80560
 public :
65777
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80561
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65778
80562
  typedef CT_TemplateName CExprResolveExpr;
65779
80563
 
65780
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80564
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65781
80565
 public :
65782
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65783
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80566
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80567
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65784
80568
};
65785
80569
 
 
80570
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
80571
 *  Tree node representing the name of an overloaded operator. */
65786
80572
 
65787
 
#line 65788 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80573
#line 80574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65788
80574
} // closed Puma
 
80575
class CCExprResolve;
 
80576
class CExprResolve;
65789
80577
class WinIfExists;
65790
80578
class WinImportHandler;
65791
80579
class WinMacros;
65792
 
class CMatchSyntax;
65793
 
class ExtGnu;
 
80580
class WinAsm;
 
80581
class WinDeclSpecs;
 
80582
class WinMemberExplSpec;
 
80583
class WinTypeKeywords;
 
80584
class WinFriend;
65794
80585
class ExtAC;
65795
80586
class ExtACBuilderCoupling;
65796
80587
class ExtACSyntaxCoupling;
65797
80588
class ExtACTree;
65798
80589
class ExtACKeywords;
65799
 
class WinAsm;
65800
 
class WinDeclSpecs;
65801
 
class WinMemberExplSpec;
65802
 
class WinTypeKeywords;
 
80590
class ExtGnu;
65803
80591
class PragmaOnceUnitState;
65804
80592
class PragmaOnce;
65805
 
class CCExprResolve;
65806
 
class CExprResolve;
65807
 
namespace Puma {
65808
 
 
65809
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80593
class CMatchSyntax;
 
80594
namespace Puma {
 
80595
 
 
80596
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80597
 
 
80598
#line 80599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80599
} // closed Puma
 
80600
 
 
80601
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80602
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80603
#include "CCExprResolveH.ah"
 
80604
#endif
 
80605
namespace Puma {
 
80606
 
 
80607
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80608
 
 
80609
#line 80610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80610
} // closed Puma
 
80611
 
 
80612
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80613
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80614
#include "CExprResolveH.ah"
 
80615
#endif
 
80616
namespace Puma {
 
80617
 
 
80618
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65810
80619
class CT_OperatorName : public CT_SpecialName {
65811
 
#line 65812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80620
#line 80621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80621
  friend class ::CCExprResolve;
 
80622
  friend class ::CExprResolve;
65812
80623
  friend class ::WinIfExists;
65813
80624
  friend class ::WinImportHandler;
65814
80625
  friend class ::WinMacros;
65815
 
  friend class ::CMatchSyntax;
65816
 
  friend class ::ExtGnu;
 
80626
  friend class ::WinAsm;
 
80627
  friend class ::WinDeclSpecs;
 
80628
  friend class ::WinMemberExplSpec;
 
80629
  friend class ::WinTypeKeywords;
 
80630
  friend class ::WinFriend;
65817
80631
  friend class ::ExtAC;
65818
80632
  friend class ::ExtACBuilderCoupling;
65819
80633
  friend class ::ExtACSyntaxCoupling;
65820
80634
  friend class ::ExtACTree;
65821
80635
  friend class ::ExtACKeywords;
65822
 
  friend class ::WinAsm;
65823
 
  friend class ::WinDeclSpecs;
65824
 
  friend class ::WinMemberExplSpec;
65825
 
  friend class ::WinTypeKeywords;
 
80636
  friend class ::ExtGnu;
65826
80637
  friend class ::PragmaOnceUnitState;
65827
80638
  friend class ::PragmaOnce;
65828
 
  friend class ::CCExprResolve;
65829
 
  friend class ::CExprResolve;
 
80639
  friend class ::CMatchSyntax;
65830
80640
 
65831
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80641
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65832
80642
 
65833
80643
  int _oper;
65834
80644
 
65835
80645
public:
65836
 
  enum { // complex operators
65837
 
    FCT_CALL = -100,
65838
 
    SUBSCRIPT,
65839
 
    NEW_ARRAY,
65840
 
    DEL_ARRAY
 
80646
  /** Complex operator types. */
 
80647
  enum { 
 
80648
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
80649
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
80650
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
80651
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
65841
80652
  };
65842
80653
 
65843
80654
public:
65844
 
  CT_OperatorName (CTree *);
65845
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
80655
  /** Constructor.
 
80656
   *  \param op The token containing the operator. */
 
80657
  CT_OperatorName (CTree *op);
 
80658
  /** Constructor.
 
80659
   *  \param f The operator function keyword 'operator'.
 
80660
   *  \param op The token containing the operator. 
 
80661
   *  \param o The token of '[' or '('.
 
80662
   *  \param c The token of ']' or ')'. */
 
80663
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
80664
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65846
80665
  static const char *NodeId ();
 
80666
  /** Get the name of the node. Can be compared with NodeId(). */
65847
80667
  const char *NodeName () const { return NodeId (); }
 
80668
  /** Get the operator type (either the token type or one of 
 
80669
   *  the complex operator types). */
65848
80670
  int Operator () const { return _oper; }
65849
 
  // special new / delete with reusing memory
 
80671
 
 
80672
public:
 
80673
  /** Own new operator reusing memory. */
65850
80674
  void *operator new (size_t);
65851
 
  void  operator delete (void *);
 
80675
  /** Own delete operator. */
 
80676
  void operator delete (void *);
65852
80677
   private:
65853
80678
  typedef CT_OperatorName CCExprResolveExpr;
65854
80679
 
65855
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80680
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65856
80681
 public :
65857
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80682
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65858
80683
  typedef CT_OperatorName CExprResolveExpr;
65859
80684
 
65860
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80685
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65861
80686
 public :
65862
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65863
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80687
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80688
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65864
80689
};
65865
80690
 
 
80691
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
80692
 *  Tree node representing the name of a conversion function. */
65866
80693
 
65867
 
#line 65868 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80694
#line 80695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65868
80695
} // closed Puma
 
80696
class CCExprResolve;
 
80697
class CExprResolve;
65869
80698
class WinIfExists;
65870
80699
class WinImportHandler;
65871
80700
class WinMacros;
65872
 
class CMatchSyntax;
65873
 
class ExtGnu;
 
80701
class WinAsm;
 
80702
class WinDeclSpecs;
 
80703
class WinMemberExplSpec;
 
80704
class WinTypeKeywords;
 
80705
class WinFriend;
65874
80706
class ExtAC;
65875
80707
class ExtACBuilderCoupling;
65876
80708
class ExtACSyntaxCoupling;
65877
80709
class ExtACTree;
65878
80710
class ExtACKeywords;
65879
 
class WinAsm;
65880
 
class WinDeclSpecs;
65881
 
class WinMemberExplSpec;
65882
 
class WinTypeKeywords;
 
80711
class ExtGnu;
65883
80712
class PragmaOnceUnitState;
65884
80713
class PragmaOnce;
65885
 
class CCExprResolve;
65886
 
class CExprResolve;
65887
 
namespace Puma {
65888
 
 
65889
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80714
class CMatchSyntax;
 
80715
namespace Puma {
 
80716
 
 
80717
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80718
 
 
80719
#line 80720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80720
} // closed Puma
 
80721
 
 
80722
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80723
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80724
#include "CCExprResolveH.ah"
 
80725
#endif
 
80726
namespace Puma {
 
80727
 
 
80728
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80729
 
 
80730
#line 80731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80731
} // closed Puma
 
80732
 
 
80733
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80734
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80735
#include "CExprResolveH.ah"
 
80736
#endif
 
80737
namespace Puma {
 
80738
 
 
80739
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65890
80740
class CT_ConversionName : public CT_SpecialName {
65891
 
#line 65892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80741
#line 80742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80742
  friend class ::CCExprResolve;
 
80743
  friend class ::CExprResolve;
65892
80744
  friend class ::WinIfExists;
65893
80745
  friend class ::WinImportHandler;
65894
80746
  friend class ::WinMacros;
65895
 
  friend class ::CMatchSyntax;
65896
 
  friend class ::ExtGnu;
 
80747
  friend class ::WinAsm;
 
80748
  friend class ::WinDeclSpecs;
 
80749
  friend class ::WinMemberExplSpec;
 
80750
  friend class ::WinTypeKeywords;
 
80751
  friend class ::WinFriend;
65897
80752
  friend class ::ExtAC;
65898
80753
  friend class ::ExtACBuilderCoupling;
65899
80754
  friend class ::ExtACSyntaxCoupling;
65900
80755
  friend class ::ExtACTree;
65901
80756
  friend class ::ExtACKeywords;
65902
 
  friend class ::WinAsm;
65903
 
  friend class ::WinDeclSpecs;
65904
 
  friend class ::WinMemberExplSpec;
65905
 
  friend class ::WinTypeKeywords;
 
80757
  friend class ::ExtGnu;
65906
80758
  friend class ::PragmaOnceUnitState;
65907
80759
  friend class ::PragmaOnce;
65908
 
  friend class ::CCExprResolve;
65909
 
  friend class ::CExprResolve;
 
80760
  friend class ::CMatchSyntax;
65910
80761
 
65911
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80762
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65912
80763
 
65913
80764
public:
65914
 
  CT_ConversionName (CTree *, CTree *);
 
80765
  /** Constructor.
 
80766
   *  \param f The operator function keyword 'operator'.
 
80767
   *  \param t The sub-tree containing the conversion type. */
 
80768
  CT_ConversionName (CTree *f, CTree *t);
 
80769
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65915
80770
  static const char *NodeId ();
 
80771
  /** Get the name of the node. Can be compared with NodeId(). */
65916
80772
  const char *NodeName () const { return NodeId (); }
 
80773
  /** Get the conversion type. */
65917
80774
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
65918
 
  // special new / delete with reusing memory
 
80775
 
 
80776
public:
 
80777
  /** Own new operator reusing memory. */
65919
80778
  void *operator new (size_t);
65920
 
  void  operator delete (void *);
 
80779
  /** Own delete operator. */
 
80780
  void operator delete (void *);
65921
80781
   private:
65922
80782
  typedef CT_ConversionName CCExprResolveExpr;
65923
80783
 
65924
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80784
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65925
80785
 public :
65926
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80786
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65927
80787
  typedef CT_ConversionName CExprResolveExpr;
65928
80788
 
65929
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80789
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65930
80790
 public :
65931
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65932
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80791
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80792
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65933
80793
};
65934
80794
 
 
80795
/** \class CT_QualName CTree.h Puma/CTree.h
 
80796
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
65935
80797
 
65936
 
#line 65937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80798
#line 80799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
65937
80799
} // closed Puma
 
80800
class CCExprResolve;
 
80801
class CExprResolve;
65938
80802
class WinIfExists;
65939
80803
class WinImportHandler;
65940
80804
class WinMacros;
65941
 
class CMatchSyntax;
65942
 
class ExtGnu;
 
80805
class WinAsm;
 
80806
class WinDeclSpecs;
 
80807
class WinMemberExplSpec;
 
80808
class WinTypeKeywords;
 
80809
class WinFriend;
65943
80810
class ExtAC;
65944
80811
class ExtACBuilderCoupling;
65945
80812
class ExtACSyntaxCoupling;
65946
80813
class ExtACTree;
65947
80814
class ExtACKeywords;
65948
 
class WinAsm;
65949
 
class WinDeclSpecs;
65950
 
class WinMemberExplSpec;
65951
 
class WinTypeKeywords;
 
80815
class ExtGnu;
65952
80816
class PragmaOnceUnitState;
65953
80817
class PragmaOnce;
65954
 
class CCExprResolve;
65955
 
class CExprResolve;
65956
 
namespace Puma {
65957
 
 
65958
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80818
class CMatchSyntax;
 
80819
namespace Puma {
 
80820
 
 
80821
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80822
 
 
80823
#line 80824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80824
} // closed Puma
 
80825
 
 
80826
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80827
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80828
#include "CCExprResolveH.ah"
 
80829
#endif
 
80830
namespace Puma {
 
80831
 
 
80832
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80833
 
 
80834
#line 80835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80835
} // closed Puma
 
80836
 
 
80837
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80838
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80839
#include "CExprResolveH.ah"
 
80840
#endif
 
80841
namespace Puma {
 
80842
 
 
80843
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65959
80844
class CT_QualName : public CT_SimpleName {
65960
 
#line 65961 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80845
#line 80846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80846
  friend class ::CCExprResolve;
 
80847
  friend class ::CExprResolve;
65961
80848
  friend class ::WinIfExists;
65962
80849
  friend class ::WinImportHandler;
65963
80850
  friend class ::WinMacros;
65964
 
  friend class ::CMatchSyntax;
65965
 
  friend class ::ExtGnu;
 
80851
  friend class ::WinAsm;
 
80852
  friend class ::WinDeclSpecs;
 
80853
  friend class ::WinMemberExplSpec;
 
80854
  friend class ::WinTypeKeywords;
 
80855
  friend class ::WinFriend;
65966
80856
  friend class ::ExtAC;
65967
80857
  friend class ::ExtACBuilderCoupling;
65968
80858
  friend class ::ExtACSyntaxCoupling;
65969
80859
  friend class ::ExtACTree;
65970
80860
  friend class ::ExtACKeywords;
65971
 
  friend class ::WinAsm;
65972
 
  friend class ::WinDeclSpecs;
65973
 
  friend class ::WinMemberExplSpec;
65974
 
  friend class ::WinTypeKeywords;
 
80861
  friend class ::ExtGnu;
65975
80862
  friend class ::PragmaOnceUnitState;
65976
80863
  friend class ::PragmaOnce;
65977
 
  friend class ::CCExprResolve;
65978
 
  friend class ::CExprResolve;
 
80864
  friend class ::CMatchSyntax;
65979
80865
 
65980
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80866
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65981
80867
 
65982
80868
public:
 
80869
  /** Constructor.
 
80870
   *  \param size The initial number sub-names plus separators. */
65983
80871
  CT_QualName (int size = 3) : 
65984
80872
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
80873
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65985
80874
  static const char *NodeId ();
 
80875
  /** Get the name of the node. Can be compared with NodeId(). */
65986
80876
  const char *NodeName () const { return NodeId (); }
65987
 
  void print (ostream &) const;
 
80877
  /** Print the qualified name on the given stream. 
 
80878
   *  \param os The output stream. */
 
80879
  void print (ostream &os) const;
 
80880
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
65988
80881
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
80882
  /** Get the string containing the last name of the qualified name. */
65989
80883
  const char *Text () const { return Name ()->Text (); }
 
80884
  /** Get the type of the last name. */
65990
80885
  CTypeInfo *Type () const { return Name ()->Type (); }
 
80886
  /** Get the value of the last name. */
65991
80887
  CExprValue *Value () const { return Name ()->Value (); }
 
80888
  /** Get the semantic value object of the last name. */
65992
80889
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
80890
  /** Get the semantic information object of the last name. */
65993
80891
  CSemObject *SemObject () const { return Name ()->SemObject (); }
65994
 
  // special new / delete with reusing memory
 
80892
 
 
80893
public:
 
80894
  /** Own new operator reusing memory. */
65995
80895
  void *operator new (size_t);
65996
 
  void  operator delete (void *);
 
80896
  /** Own delete operator. */
 
80897
  void operator delete (void *);
65997
80898
   private:
65998
80899
  typedef CT_QualName CCExprResolveExpr;
65999
80900
 
66000
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80901
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66001
80902
 public :
66002
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80903
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66003
80904
  typedef CT_QualName CExprResolveExpr;
66004
80905
 
66005
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80906
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66006
80907
 public :
66007
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66008
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80908
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80909
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66009
80910
};
66010
80911
 
 
80912
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
80913
 *  Tree node representing a qualified name with introducing name separator,
 
80914
 *  e.g. ::X::Y::Z. */
66011
80915
 
66012
 
#line 66013 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80916
#line 80917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66013
80917
} // closed Puma
 
80918
class CCExprResolve;
 
80919
class CExprResolve;
66014
80920
class WinIfExists;
66015
80921
class WinImportHandler;
66016
80922
class WinMacros;
66017
 
class CMatchSyntax;
66018
 
class ExtGnu;
 
80923
class WinAsm;
 
80924
class WinDeclSpecs;
 
80925
class WinMemberExplSpec;
 
80926
class WinTypeKeywords;
 
80927
class WinFriend;
66019
80928
class ExtAC;
66020
80929
class ExtACBuilderCoupling;
66021
80930
class ExtACSyntaxCoupling;
66022
80931
class ExtACTree;
66023
80932
class ExtACKeywords;
66024
 
class WinAsm;
66025
 
class WinDeclSpecs;
66026
 
class WinMemberExplSpec;
66027
 
class WinTypeKeywords;
 
80933
class ExtGnu;
66028
80934
class PragmaOnceUnitState;
66029
80935
class PragmaOnce;
66030
 
class CCExprResolve;
66031
 
class CExprResolve;
66032
 
namespace Puma {
66033
 
 
66034
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80936
class CMatchSyntax;
 
80937
namespace Puma {
 
80938
 
 
80939
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80940
 
 
80941
#line 80942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80942
} // closed Puma
 
80943
 
 
80944
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80945
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80946
#include "CCExprResolveH.ah"
 
80947
#endif
 
80948
namespace Puma {
 
80949
 
 
80950
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80951
 
 
80952
#line 80953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80953
} // closed Puma
 
80954
 
 
80955
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80956
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80957
#include "CExprResolveH.ah"
 
80958
#endif
 
80959
namespace Puma {
 
80960
 
 
80961
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66035
80962
class CT_RootQualName : public CT_QualName {
66036
 
#line 66037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
80963
#line 80964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
80964
  friend class ::CCExprResolve;
 
80965
  friend class ::CExprResolve;
66037
80966
  friend class ::WinIfExists;
66038
80967
  friend class ::WinImportHandler;
66039
80968
  friend class ::WinMacros;
66040
 
  friend class ::CMatchSyntax;
66041
 
  friend class ::ExtGnu;
 
80969
  friend class ::WinAsm;
 
80970
  friend class ::WinDeclSpecs;
 
80971
  friend class ::WinMemberExplSpec;
 
80972
  friend class ::WinTypeKeywords;
 
80973
  friend class ::WinFriend;
66042
80974
  friend class ::ExtAC;
66043
80975
  friend class ::ExtACBuilderCoupling;
66044
80976
  friend class ::ExtACSyntaxCoupling;
66045
80977
  friend class ::ExtACTree;
66046
80978
  friend class ::ExtACKeywords;
66047
 
  friend class ::WinAsm;
66048
 
  friend class ::WinDeclSpecs;
66049
 
  friend class ::WinMemberExplSpec;
66050
 
  friend class ::WinTypeKeywords;
 
80979
  friend class ::ExtGnu;
66051
80980
  friend class ::PragmaOnceUnitState;
66052
80981
  friend class ::PragmaOnce;
66053
 
  friend class ::CCExprResolve;
66054
 
  friend class ::CExprResolve;
 
80982
  friend class ::CMatchSyntax;
66055
80983
 
66056
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80984
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66057
80985
 
66058
80986
public:
 
80987
  /** Constructor.
 
80988
   *  \param size Initial number of sub-name plus separator. */
66059
80989
  CT_RootQualName (int size = 2) : 
66060
80990
    CT_QualName (size) { AddProperties (INTRO); }
 
80991
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66061
80992
  static const char *NodeId ();
 
80993
  /** Get the name of the node. Can be compared with NodeId(). */
66062
80994
  const char *NodeName () const { return NodeId (); }
66063
 
  // special new / delete with reusing memory
 
80995
 
 
80996
public:
 
80997
  /** Own new operator reusing memory. */
66064
80998
  void *operator new (size_t);
66065
 
  void  operator delete (void *);
 
80999
  /** Own delete operator. */
 
81000
  void operator delete (void *);
66066
81001
   private:
66067
81002
  typedef CT_RootQualName CCExprResolveExpr;
66068
81003
 
66069
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81004
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66070
81005
 public :
66071
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81006
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66072
81007
  typedef CT_RootQualName CExprResolveExpr;
66073
81008
 
66074
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81009
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66075
81010
 public :
66076
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66077
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81011
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81012
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66078
81013
};
66079
81014
 
 
81015
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
81016
 *  Tree node representing a binary expression, e.g. a+b. */
66080
81017
 
66081
 
#line 66082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81018
#line 81019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66082
81019
} // closed Puma
 
81020
class CCExprResolve;
 
81021
class CExprResolve;
66083
81022
class WinIfExists;
66084
81023
class WinImportHandler;
66085
81024
class WinMacros;
66086
 
class CMatchSyntax;
66087
 
class ExtGnu;
 
81025
class WinAsm;
 
81026
class WinDeclSpecs;
 
81027
class WinMemberExplSpec;
 
81028
class WinTypeKeywords;
 
81029
class WinFriend;
66088
81030
class ExtAC;
66089
81031
class ExtACBuilderCoupling;
66090
81032
class ExtACSyntaxCoupling;
66091
81033
class ExtACTree;
66092
81034
class ExtACKeywords;
66093
 
class WinAsm;
66094
 
class WinDeclSpecs;
66095
 
class WinMemberExplSpec;
66096
 
class WinTypeKeywords;
 
81035
class ExtGnu;
66097
81036
class PragmaOnceUnitState;
66098
81037
class PragmaOnce;
66099
 
class CCExprResolve;
66100
 
class CExprResolve;
66101
 
namespace Puma {
66102
 
 
66103
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66104
 
class CT_BinaryExpr : public CT_Expression {
66105
 
#line 66106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81038
class CMatchSyntax;
 
81039
namespace Puma {
 
81040
 
 
81041
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81042
 
 
81043
#line 81044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81044
} // closed Puma
 
81045
 
 
81046
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81047
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81048
#include "CCExprResolveH.ah"
 
81049
#endif
 
81050
namespace Puma {
 
81051
 
 
81052
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81053
 
 
81054
#line 81055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81055
} // closed Puma
 
81056
 
 
81057
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81058
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81059
#include "CExprResolveH.ah"
 
81060
#endif
 
81061
namespace Puma {
 
81062
 
 
81063
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81064
class CT_BinaryExpr : public CT_Call {
 
81065
#line 81066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81066
  friend class ::CCExprResolve;
 
81067
  friend class ::CExprResolve;
66106
81068
  friend class ::WinIfExists;
66107
81069
  friend class ::WinImportHandler;
66108
81070
  friend class ::WinMacros;
66109
 
  friend class ::CMatchSyntax;
66110
 
  friend class ::ExtGnu;
 
81071
  friend class ::WinAsm;
 
81072
  friend class ::WinDeclSpecs;
 
81073
  friend class ::WinMemberExplSpec;
 
81074
  friend class ::WinTypeKeywords;
 
81075
  friend class ::WinFriend;
66111
81076
  friend class ::ExtAC;
66112
81077
  friend class ::ExtACBuilderCoupling;
66113
81078
  friend class ::ExtACSyntaxCoupling;
66114
81079
  friend class ::ExtACTree;
66115
81080
  friend class ::ExtACKeywords;
66116
 
  friend class ::WinAsm;
66117
 
  friend class ::WinDeclSpecs;
66118
 
  friend class ::WinMemberExplSpec;
66119
 
  friend class ::WinTypeKeywords;
 
81081
  friend class ::ExtGnu;
66120
81082
  friend class ::PragmaOnceUnitState;
66121
81083
  friend class ::PragmaOnce;
66122
 
  friend class ::CCExprResolve;
66123
 
  friend class ::CExprResolve;
 
81084
  friend class ::CMatchSyntax;
66124
81085
 
66125
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81086
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66126
81087
 
66127
81088
  CTree *sons[3]; // expr, oper, expr
66128
81089
 
66129
81090
public:
 
81091
  /** Constructor. 
 
81092
   *  \param l Left hand side of the expression. 
 
81093
   *  \param o The operator token. 
 
81094
   *  \param r Right hand side of the expression. */
66130
81095
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
66131
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
81096
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
66132
81097
  }
 
81098
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66133
81099
  static const char *NodeId ();
 
81100
  /** Get the name of the node. Can be compared with NodeId(). */
66134
81101
  const char *NodeName () const { return NodeId (); }
 
81102
  /** Get the number of sons. */
66135
81103
  int Sons () const { return 3; }
 
81104
  /** Get the n-th son.
 
81105
   *  \param n The index of the son.
 
81106
   *  \return The n-th son or NULL. */
66136
81107
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
81108
  /** Replace a son.
 
81109
   *  \param old_son The son to replace.
 
81110
   *  \param new_son The new son. */
66137
81111
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66138
81112
    CTree::ReplaceSon (sons, 3, old_son, new_son);
66139
81113
  }
66140
81114
   private:
66141
81115
  typedef CT_BinaryExpr CCExprResolveExpr;
66142
81116
 
66143
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81117
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66144
81118
 public :
66145
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81119
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66146
81120
  typedef CT_BinaryExpr CExprResolveExpr;
66147
81121
 
66148
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81122
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66149
81123
 public :
66150
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66151
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81124
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81125
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66152
81126
};
66153
81127
 
 
81128
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
81129
 *  Tree node representing a member pointer expression, e.g. a->b. */
66154
81130
 
66155
 
#line 66156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81131
#line 81132 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66156
81132
} // closed Puma
 
81133
class CCExprResolve;
 
81134
class CExprResolve;
66157
81135
class WinIfExists;
66158
81136
class WinImportHandler;
66159
81137
class WinMacros;
66160
 
class CMatchSyntax;
66161
 
class ExtGnu;
 
81138
class WinAsm;
 
81139
class WinDeclSpecs;
 
81140
class WinMemberExplSpec;
 
81141
class WinTypeKeywords;
 
81142
class WinFriend;
66162
81143
class ExtAC;
66163
81144
class ExtACBuilderCoupling;
66164
81145
class ExtACSyntaxCoupling;
66165
81146
class ExtACTree;
66166
81147
class ExtACKeywords;
66167
 
class WinAsm;
66168
 
class WinDeclSpecs;
66169
 
class WinMemberExplSpec;
66170
 
class WinTypeKeywords;
 
81148
class ExtGnu;
66171
81149
class PragmaOnceUnitState;
66172
81150
class PragmaOnce;
66173
 
class CCExprResolve;
66174
 
class CExprResolve;
66175
 
namespace Puma {
66176
 
 
66177
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66178
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
66179
 
#line 66180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81151
class CMatchSyntax;
 
81152
namespace Puma {
 
81153
 
 
81154
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81155
 
 
81156
#line 81157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81157
} // closed Puma
 
81158
 
 
81159
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81160
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81161
#include "CCExprResolveH.ah"
 
81162
#endif
 
81163
namespace Puma {
 
81164
 
 
81165
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81166
 
 
81167
#line 81168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81168
} // closed Puma
 
81169
 
 
81170
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81171
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81172
#include "CExprResolveH.ah"
 
81173
#endif
 
81174
namespace Puma {
 
81175
 
 
81176
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81177
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
81178
#line 81179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81179
  friend class ::CCExprResolve;
 
81180
  friend class ::CExprResolve;
66180
81181
  friend class ::WinIfExists;
66181
81182
  friend class ::WinImportHandler;
66182
81183
  friend class ::WinMacros;
66183
 
  friend class ::CMatchSyntax;
66184
 
  friend class ::ExtGnu;
 
81184
  friend class ::WinAsm;
 
81185
  friend class ::WinDeclSpecs;
 
81186
  friend class ::WinMemberExplSpec;
 
81187
  friend class ::WinTypeKeywords;
 
81188
  friend class ::WinFriend;
66185
81189
  friend class ::ExtAC;
66186
81190
  friend class ::ExtACBuilderCoupling;
66187
81191
  friend class ::ExtACSyntaxCoupling;
66188
81192
  friend class ::ExtACTree;
66189
81193
  friend class ::ExtACKeywords;
66190
 
  friend class ::WinAsm;
66191
 
  friend class ::WinDeclSpecs;
66192
 
  friend class ::WinMemberExplSpec;
66193
 
  friend class ::WinTypeKeywords;
 
81194
  friend class ::ExtGnu;
66194
81195
  friend class ::PragmaOnceUnitState;
66195
81196
  friend class ::PragmaOnce;
66196
 
  friend class ::CCExprResolve;
66197
 
  friend class ::CExprResolve;
66198
 
 
66199
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66200
 
 
 
81197
  friend class ::CMatchSyntax;
 
81198
 
 
81199
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81200
 
 
81201
  CTree *sons[3]; // expr, oper, expr
 
81202
  
66201
81203
public:
66202
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
66203
 
    CT_BinaryExpr (e, o, i) {}
 
81204
  /** Constructor.
 
81205
   *  \param e Expression on which to call the member.
 
81206
   *  \param o The arrow operator token.
 
81207
   *  \param i The member name. */
 
81208
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
81209
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
81210
  }
 
81211
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66204
81212
  static const char *NodeId ();
 
81213
  /** Get the name of the node. Can be compared with NodeId(). */
66205
81214
  const char *NodeName () const { return NodeId (); }
66206
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
81215
  /** Get the number of sons. */
 
81216
  int Sons () const { return 3; }
 
81217
  /** Get the n-th son.
 
81218
   *  \param n The index of the son.
 
81219
   *  \return The n-th son or NULL. */
 
81220
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
81221
  /** Replace a son.
 
81222
   *  \param old_son The son to replace.
 
81223
   *  \param new_son The new son. */
 
81224
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
81225
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
81226
  }
66207
81227
   private:
66208
81228
  typedef CT_MembPtrExpr CCExprResolveExpr;
66209
81229
 
66210
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81230
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66211
81231
 public :
66212
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81232
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66213
81233
  typedef CT_MembPtrExpr CExprResolveExpr;
66214
81234
 
66215
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81235
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66216
81236
 public :
66217
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66218
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81237
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81238
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66219
81239
};
66220
81240
 
 
81241
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
81242
 *  Tree node representing a member reference expression, e.g. a.b. */
66221
81243
 
66222
 
#line 66223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81244
#line 81245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66223
81245
} // closed Puma
 
81246
class CCExprResolve;
 
81247
class CExprResolve;
66224
81248
class WinIfExists;
66225
81249
class WinImportHandler;
66226
81250
class WinMacros;
66227
 
class CMatchSyntax;
66228
 
class ExtGnu;
 
81251
class WinAsm;
 
81252
class WinDeclSpecs;
 
81253
class WinMemberExplSpec;
 
81254
class WinTypeKeywords;
 
81255
class WinFriend;
66229
81256
class ExtAC;
66230
81257
class ExtACBuilderCoupling;
66231
81258
class ExtACSyntaxCoupling;
66232
81259
class ExtACTree;
66233
81260
class ExtACKeywords;
66234
 
class WinAsm;
66235
 
class WinDeclSpecs;
66236
 
class WinMemberExplSpec;
66237
 
class WinTypeKeywords;
 
81261
class ExtGnu;
66238
81262
class PragmaOnceUnitState;
66239
81263
class PragmaOnce;
66240
 
class CCExprResolve;
66241
 
class CExprResolve;
66242
 
namespace Puma {
66243
 
 
66244
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81264
class CMatchSyntax;
 
81265
namespace Puma {
 
81266
 
 
81267
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81268
 
 
81269
#line 81270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81270
} // closed Puma
 
81271
 
 
81272
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81273
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81274
#include "CCExprResolveH.ah"
 
81275
#endif
 
81276
namespace Puma {
 
81277
 
 
81278
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81279
 
 
81280
#line 81281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81281
} // closed Puma
 
81282
 
 
81283
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81284
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81285
#include "CExprResolveH.ah"
 
81286
#endif
 
81287
namespace Puma {
 
81288
 
 
81289
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66245
81290
class CT_MembRefExpr : public CT_MembPtrExpr {
66246
 
#line 66247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81291
#line 81292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81292
  friend class ::CCExprResolve;
 
81293
  friend class ::CExprResolve;
66247
81294
  friend class ::WinIfExists;
66248
81295
  friend class ::WinImportHandler;
66249
81296
  friend class ::WinMacros;
66250
 
  friend class ::CMatchSyntax;
66251
 
  friend class ::ExtGnu;
 
81297
  friend class ::WinAsm;
 
81298
  friend class ::WinDeclSpecs;
 
81299
  friend class ::WinMemberExplSpec;
 
81300
  friend class ::WinTypeKeywords;
 
81301
  friend class ::WinFriend;
66252
81302
  friend class ::ExtAC;
66253
81303
  friend class ::ExtACBuilderCoupling;
66254
81304
  friend class ::ExtACSyntaxCoupling;
66255
81305
  friend class ::ExtACTree;
66256
81306
  friend class ::ExtACKeywords;
66257
 
  friend class ::WinAsm;
66258
 
  friend class ::WinDeclSpecs;
66259
 
  friend class ::WinMemberExplSpec;
66260
 
  friend class ::WinTypeKeywords;
 
81307
  friend class ::ExtGnu;
66261
81308
  friend class ::PragmaOnceUnitState;
66262
81309
  friend class ::PragmaOnce;
66263
 
  friend class ::CCExprResolve;
66264
 
  friend class ::CExprResolve;
 
81310
  friend class ::CMatchSyntax;
66265
81311
 
66266
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81312
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66267
81313
 
66268
81314
public:
 
81315
  /** Constructor.
 
81316
   *  \param e Expression on which to call the member.
 
81317
   *  \param o The dot operator.
 
81318
   *  \param i The member name. */
66269
81319
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
66270
81320
    CT_MembPtrExpr (e, o, i) {}
 
81321
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66271
81322
  static const char *NodeId ();
 
81323
  /** Get the name of the node. Can be compared with NodeId(). */
66272
81324
  const char *NodeName () const { return NodeId (); }
66273
81325
   private:
66274
81326
  typedef CT_MembRefExpr CCExprResolveExpr;
66275
81327
 
66276
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66277
81329
 public :
66278
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81330
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66279
81331
  typedef CT_MembRefExpr CExprResolveExpr;
66280
81332
 
66281
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81333
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66282
81334
 public :
66283
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66284
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81335
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81336
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66285
81337
};
66286
81338
 
 
81339
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
81340
 *  Base class for tree nodes representing unary expressions. */
66287
81341
 
66288
 
#line 66289 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81342
#line 81343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66289
81343
} // closed Puma
 
81344
class CCExprResolve;
 
81345
class CExprResolve;
66290
81346
class WinIfExists;
66291
81347
class WinImportHandler;
66292
81348
class WinMacros;
66293
 
class CMatchSyntax;
66294
 
class ExtGnu;
 
81349
class WinAsm;
 
81350
class WinDeclSpecs;
 
81351
class WinMemberExplSpec;
 
81352
class WinTypeKeywords;
 
81353
class WinFriend;
66295
81354
class ExtAC;
66296
81355
class ExtACBuilderCoupling;
66297
81356
class ExtACSyntaxCoupling;
66298
81357
class ExtACTree;
66299
81358
class ExtACKeywords;
66300
 
class WinAsm;
66301
 
class WinDeclSpecs;
66302
 
class WinMemberExplSpec;
66303
 
class WinTypeKeywords;
 
81359
class ExtGnu;
66304
81360
class PragmaOnceUnitState;
66305
81361
class PragmaOnce;
66306
 
class CCExprResolve;
66307
 
class CExprResolve;
66308
 
namespace Puma {
66309
 
 
66310
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66311
 
class CT_UnaryExpr : public CT_Expression {
66312
 
#line 66313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81362
class CMatchSyntax;
 
81363
namespace Puma {
 
81364
 
 
81365
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81366
 
 
81367
#line 81368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81368
} // closed Puma
 
81369
 
 
81370
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81371
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81372
#include "CCExprResolveH.ah"
 
81373
#endif
 
81374
namespace Puma {
 
81375
 
 
81376
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81377
 
 
81378
#line 81379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81379
} // closed Puma
 
81380
 
 
81381
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81382
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81383
#include "CExprResolveH.ah"
 
81384
#endif
 
81385
namespace Puma {
 
81386
 
 
81387
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81388
class CT_UnaryExpr : public CT_Call {
 
81389
#line 81390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81390
  friend class ::CCExprResolve;
 
81391
  friend class ::CExprResolve;
66313
81392
  friend class ::WinIfExists;
66314
81393
  friend class ::WinImportHandler;
66315
81394
  friend class ::WinMacros;
66316
 
  friend class ::CMatchSyntax;
66317
 
  friend class ::ExtGnu;
 
81395
  friend class ::WinAsm;
 
81396
  friend class ::WinDeclSpecs;
 
81397
  friend class ::WinMemberExplSpec;
 
81398
  friend class ::WinTypeKeywords;
 
81399
  friend class ::WinFriend;
66318
81400
  friend class ::ExtAC;
66319
81401
  friend class ::ExtACBuilderCoupling;
66320
81402
  friend class ::ExtACSyntaxCoupling;
66321
81403
  friend class ::ExtACTree;
66322
81404
  friend class ::ExtACKeywords;
66323
 
  friend class ::WinAsm;
66324
 
  friend class ::WinDeclSpecs;
66325
 
  friend class ::WinMemberExplSpec;
66326
 
  friend class ::WinTypeKeywords;
 
81405
  friend class ::ExtGnu;
66327
81406
  friend class ::PragmaOnceUnitState;
66328
81407
  friend class ::PragmaOnce;
66329
 
  friend class ::CCExprResolve;
66330
 
  friend class ::CExprResolve;
 
81408
  friend class ::CMatchSyntax;
66331
81409
 
66332
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81410
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66333
81411
 
66334
81412
  CTree *sons[2]; // oper, expr
66335
81413
 
66336
81414
public:
66337
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
81415
  /** Constructor.
 
81416
   *  \param o The unary operator.
 
81417
   *  \param e The expression on which the operator is invoked. */
 
81418
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
81419
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66338
81420
  static const char *NodeId ();
 
81421
  /** Get the name of the node. Can be compared with NodeId(). */
66339
81422
  const char *NodeName () const { return NodeId (); }
 
81423
  /** Get the number of sons. */
66340
81424
  int Sons () const { return 2; }
 
81425
  /** Get the n-th son.
 
81426
   *  \param n The index of the son.
 
81427
   *  \return The n-th son or NULL. */
66341
81428
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
81429
  /** Replace a son.
 
81430
   *  \param old_son The son to replace.
 
81431
   *  \param new_son The new son. */
66342
81432
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66343
81433
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66344
81434
  }
 
81435
  /** Get the expression node. */
66345
81436
  CTree *Expr () const { return sons[1]; }
66346
81437
   private:
66347
81438
  typedef CT_UnaryExpr CCExprResolveExpr;
66348
81439
 
66349
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81440
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66350
81441
 public :
66351
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81442
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66352
81443
  typedef CT_UnaryExpr CExprResolveExpr;
66353
81444
 
66354
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81445
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66355
81446
 public :
66356
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66357
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81447
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81448
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66358
81449
};
66359
81450
 
 
81451
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
81452
 *  Tree node representing a postfix expression, e.g. a++. */
66360
81453
 
66361
 
#line 66362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81454
#line 81455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66362
81455
} // closed Puma
 
81456
class CCExprResolve;
 
81457
class CExprResolve;
66363
81458
class WinIfExists;
66364
81459
class WinImportHandler;
66365
81460
class WinMacros;
66366
 
class CMatchSyntax;
66367
 
class ExtGnu;
 
81461
class WinAsm;
 
81462
class WinDeclSpecs;
 
81463
class WinMemberExplSpec;
 
81464
class WinTypeKeywords;
 
81465
class WinFriend;
66368
81466
class ExtAC;
66369
81467
class ExtACBuilderCoupling;
66370
81468
class ExtACSyntaxCoupling;
66371
81469
class ExtACTree;
66372
81470
class ExtACKeywords;
66373
 
class WinAsm;
66374
 
class WinDeclSpecs;
66375
 
class WinMemberExplSpec;
66376
 
class WinTypeKeywords;
 
81471
class ExtGnu;
66377
81472
class PragmaOnceUnitState;
66378
81473
class PragmaOnce;
66379
 
class CCExprResolve;
66380
 
class CExprResolve;
66381
 
namespace Puma {
66382
 
 
66383
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81474
class CMatchSyntax;
 
81475
namespace Puma {
 
81476
 
 
81477
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81478
 
 
81479
#line 81480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81480
} // closed Puma
 
81481
 
 
81482
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81483
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81484
#include "CCExprResolveH.ah"
 
81485
#endif
 
81486
namespace Puma {
 
81487
 
 
81488
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81489
 
 
81490
#line 81491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81491
} // closed Puma
 
81492
 
 
81493
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81494
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81495
#include "CExprResolveH.ah"
 
81496
#endif
 
81497
namespace Puma {
 
81498
 
 
81499
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66384
81500
class CT_PostfixExpr : public CT_UnaryExpr {
66385
 
#line 66386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81501
#line 81502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81502
  friend class ::CCExprResolve;
 
81503
  friend class ::CExprResolve;
66386
81504
  friend class ::WinIfExists;
66387
81505
  friend class ::WinImportHandler;
66388
81506
  friend class ::WinMacros;
66389
 
  friend class ::CMatchSyntax;
66390
 
  friend class ::ExtGnu;
 
81507
  friend class ::WinAsm;
 
81508
  friend class ::WinDeclSpecs;
 
81509
  friend class ::WinMemberExplSpec;
 
81510
  friend class ::WinTypeKeywords;
 
81511
  friend class ::WinFriend;
66391
81512
  friend class ::ExtAC;
66392
81513
  friend class ::ExtACBuilderCoupling;
66393
81514
  friend class ::ExtACSyntaxCoupling;
66394
81515
  friend class ::ExtACTree;
66395
81516
  friend class ::ExtACKeywords;
66396
 
  friend class ::WinAsm;
66397
 
  friend class ::WinDeclSpecs;
66398
 
  friend class ::WinMemberExplSpec;
66399
 
  friend class ::WinTypeKeywords;
 
81517
  friend class ::ExtGnu;
66400
81518
  friend class ::PragmaOnceUnitState;
66401
81519
  friend class ::PragmaOnce;
66402
 
  friend class ::CCExprResolve;
66403
 
  friend class ::CExprResolve;
 
81520
  friend class ::CMatchSyntax;
66404
81521
 
66405
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81522
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66406
81523
 
66407
81524
public:
 
81525
  /** Constructor.
 
81526
   *  \param e The expression on which to invoke the operator. 
 
81527
   *  \param o The postfix operator. */
66408
81528
  CT_PostfixExpr (CTree *e, CTree *o) :
66409
81529
    CT_UnaryExpr (e, o) {}
 
81530
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66410
81531
  static const char *NodeId ();
 
81532
  /** Get the name of the node. Can be compared with NodeId(). */
66411
81533
  const char *NodeName () const { return NodeId (); }
66412
81534
   private:
66413
81535
  typedef CT_PostfixExpr CCExprResolveExpr;
66414
81536
 
66415
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81537
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66416
81538
 public :
66417
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81539
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66418
81540
  typedef CT_PostfixExpr CExprResolveExpr;
66419
81541
 
66420
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81542
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66421
81543
 public :
66422
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66423
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81544
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81545
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66424
81546
};
66425
81547
 
 
81548
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
81549
 *  Tree node representing an address expression, e.g. &a. */
66426
81550
 
66427
 
#line 66428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81551
#line 81552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66428
81552
} // closed Puma
 
81553
class CCExprResolve;
 
81554
class CExprResolve;
66429
81555
class WinIfExists;
66430
81556
class WinImportHandler;
66431
81557
class WinMacros;
66432
 
class CMatchSyntax;
66433
 
class ExtGnu;
 
81558
class WinAsm;
 
81559
class WinDeclSpecs;
 
81560
class WinMemberExplSpec;
 
81561
class WinTypeKeywords;
 
81562
class WinFriend;
66434
81563
class ExtAC;
66435
81564
class ExtACBuilderCoupling;
66436
81565
class ExtACSyntaxCoupling;
66437
81566
class ExtACTree;
66438
81567
class ExtACKeywords;
66439
 
class WinAsm;
66440
 
class WinDeclSpecs;
66441
 
class WinMemberExplSpec;
66442
 
class WinTypeKeywords;
 
81568
class ExtGnu;
66443
81569
class PragmaOnceUnitState;
66444
81570
class PragmaOnce;
66445
 
class CCExprResolve;
66446
 
class CExprResolve;
66447
 
namespace Puma {
66448
 
 
66449
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81571
class CMatchSyntax;
 
81572
namespace Puma {
 
81573
 
 
81574
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81575
 
 
81576
#line 81577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81577
} // closed Puma
 
81578
 
 
81579
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81580
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81581
#include "CCExprResolveH.ah"
 
81582
#endif
 
81583
namespace Puma {
 
81584
 
 
81585
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81586
 
 
81587
#line 81588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81588
} // closed Puma
 
81589
 
 
81590
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81591
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81592
#include "CExprResolveH.ah"
 
81593
#endif
 
81594
namespace Puma {
 
81595
 
 
81596
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66450
81597
class CT_AddrExpr : public CT_UnaryExpr {
66451
 
#line 66452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81598
#line 81599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81599
  friend class ::CCExprResolve;
 
81600
  friend class ::CExprResolve;
66452
81601
  friend class ::WinIfExists;
66453
81602
  friend class ::WinImportHandler;
66454
81603
  friend class ::WinMacros;
66455
 
  friend class ::CMatchSyntax;
66456
 
  friend class ::ExtGnu;
 
81604
  friend class ::WinAsm;
 
81605
  friend class ::WinDeclSpecs;
 
81606
  friend class ::WinMemberExplSpec;
 
81607
  friend class ::WinTypeKeywords;
 
81608
  friend class ::WinFriend;
66457
81609
  friend class ::ExtAC;
66458
81610
  friend class ::ExtACBuilderCoupling;
66459
81611
  friend class ::ExtACSyntaxCoupling;
66460
81612
  friend class ::ExtACTree;
66461
81613
  friend class ::ExtACKeywords;
66462
 
  friend class ::WinAsm;
66463
 
  friend class ::WinDeclSpecs;
66464
 
  friend class ::WinMemberExplSpec;
66465
 
  friend class ::WinTypeKeywords;
 
81614
  friend class ::ExtGnu;
66466
81615
  friend class ::PragmaOnceUnitState;
66467
81616
  friend class ::PragmaOnce;
66468
 
  friend class ::CCExprResolve;
66469
 
  friend class ::CExprResolve;
 
81617
  friend class ::CMatchSyntax;
66470
81618
 
66471
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81619
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66472
81620
 
66473
81621
public:
 
81622
  /** Constructor.
 
81623
   *  \param o The address operator, i.e. '&'.
 
81624
   *  \param e The expression from which to take the address. */
66474
81625
  CT_AddrExpr (CTree *o, CTree *e) :
66475
81626
    CT_UnaryExpr (o, e) {}
 
81627
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66476
81628
  static const char *NodeId ();
 
81629
  /** Get the name of the node. Can be compared with NodeId(). */
66477
81630
  const char *NodeName () const { return NodeId (); }
66478
81631
   private:
66479
81632
  typedef CT_AddrExpr CCExprResolveExpr;
66480
81633
 
66481
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81634
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66482
81635
 public :
66483
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81636
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66484
81637
  typedef CT_AddrExpr CExprResolveExpr;
66485
81638
 
66486
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81639
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66487
81640
 public :
66488
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66489
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81641
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81642
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66490
81643
};
66491
81644
 
 
81645
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
81646
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
66492
81647
 
66493
 
#line 66494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81648
#line 81649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66494
81649
} // closed Puma
 
81650
class CCExprResolve;
 
81651
class CExprResolve;
66495
81652
class WinIfExists;
66496
81653
class WinImportHandler;
66497
81654
class WinMacros;
66498
 
class CMatchSyntax;
66499
 
class ExtGnu;
 
81655
class WinAsm;
 
81656
class WinDeclSpecs;
 
81657
class WinMemberExplSpec;
 
81658
class WinTypeKeywords;
 
81659
class WinFriend;
66500
81660
class ExtAC;
66501
81661
class ExtACBuilderCoupling;
66502
81662
class ExtACSyntaxCoupling;
66503
81663
class ExtACTree;
66504
81664
class ExtACKeywords;
66505
 
class WinAsm;
66506
 
class WinDeclSpecs;
66507
 
class WinMemberExplSpec;
66508
 
class WinTypeKeywords;
 
81665
class ExtGnu;
66509
81666
class PragmaOnceUnitState;
66510
81667
class PragmaOnce;
66511
 
class CCExprResolve;
66512
 
class CExprResolve;
66513
 
namespace Puma {
66514
 
 
66515
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81668
class CMatchSyntax;
 
81669
namespace Puma {
 
81670
 
 
81671
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81672
 
 
81673
#line 81674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81674
} // closed Puma
 
81675
 
 
81676
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81677
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81678
#include "CCExprResolveH.ah"
 
81679
#endif
 
81680
namespace Puma {
 
81681
 
 
81682
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81683
 
 
81684
#line 81685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81685
} // closed Puma
 
81686
 
 
81687
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81688
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81689
#include "CExprResolveH.ah"
 
81690
#endif
 
81691
namespace Puma {
 
81692
 
 
81693
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66516
81694
class CT_DerefExpr : public CT_UnaryExpr {
66517
 
#line 66518 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81695
#line 81696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81696
  friend class ::CCExprResolve;
 
81697
  friend class ::CExprResolve;
66518
81698
  friend class ::WinIfExists;
66519
81699
  friend class ::WinImportHandler;
66520
81700
  friend class ::WinMacros;
66521
 
  friend class ::CMatchSyntax;
66522
 
  friend class ::ExtGnu;
 
81701
  friend class ::WinAsm;
 
81702
  friend class ::WinDeclSpecs;
 
81703
  friend class ::WinMemberExplSpec;
 
81704
  friend class ::WinTypeKeywords;
 
81705
  friend class ::WinFriend;
66523
81706
  friend class ::ExtAC;
66524
81707
  friend class ::ExtACBuilderCoupling;
66525
81708
  friend class ::ExtACSyntaxCoupling;
66526
81709
  friend class ::ExtACTree;
66527
81710
  friend class ::ExtACKeywords;
66528
 
  friend class ::WinAsm;
66529
 
  friend class ::WinDeclSpecs;
66530
 
  friend class ::WinMemberExplSpec;
66531
 
  friend class ::WinTypeKeywords;
 
81711
  friend class ::ExtGnu;
66532
81712
  friend class ::PragmaOnceUnitState;
66533
81713
  friend class ::PragmaOnce;
66534
 
  friend class ::CCExprResolve;
66535
 
  friend class ::CExprResolve;
 
81714
  friend class ::CMatchSyntax;
66536
81715
 
66537
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81716
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66538
81717
 
66539
81718
public:
 
81719
  /** Constructor.
 
81720
   *  \param o The dereferencing operator, i.e. '*'.
 
81721
   *  \param e The expression to dereference. */
66540
81722
  CT_DerefExpr (CTree *o, CTree *e) :
66541
81723
    CT_UnaryExpr (o, e) {}
 
81724
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66542
81725
  static const char *NodeId ();
 
81726
  /** Get the name of the node. Can be compared with NodeId(). */
66543
81727
  const char *NodeName () const { return NodeId (); }
66544
81728
   private:
66545
81729
  typedef CT_DerefExpr CCExprResolveExpr;
66546
81730
 
66547
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81731
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66548
81732
 public :
66549
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81733
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66550
81734
  typedef CT_DerefExpr CExprResolveExpr;
66551
81735
 
66552
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81736
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66553
81737
 public :
66554
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66555
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81738
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81739
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66556
81740
};
66557
81741
 
 
81742
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
81743
 *  Tree node representing a delete expression, e.g. delete a. */
66558
81744
 
66559
 
#line 66560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81745
#line 81746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66560
81746
} // closed Puma
 
81747
class CCExprResolve;
 
81748
class CExprResolve;
66561
81749
class WinIfExists;
66562
81750
class WinImportHandler;
66563
81751
class WinMacros;
66564
 
class CMatchSyntax;
66565
 
class ExtGnu;
 
81752
class WinAsm;
 
81753
class WinDeclSpecs;
 
81754
class WinMemberExplSpec;
 
81755
class WinTypeKeywords;
 
81756
class WinFriend;
66566
81757
class ExtAC;
66567
81758
class ExtACBuilderCoupling;
66568
81759
class ExtACSyntaxCoupling;
66569
81760
class ExtACTree;
66570
81761
class ExtACKeywords;
66571
 
class WinAsm;
66572
 
class WinDeclSpecs;
66573
 
class WinMemberExplSpec;
66574
 
class WinTypeKeywords;
 
81762
class ExtGnu;
66575
81763
class PragmaOnceUnitState;
66576
81764
class PragmaOnce;
66577
 
class CCExprResolve;
66578
 
class CExprResolve;
66579
 
namespace Puma {
66580
 
 
66581
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81765
class CMatchSyntax;
 
81766
namespace Puma {
 
81767
 
 
81768
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81769
 
 
81770
#line 81771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81771
} // closed Puma
 
81772
 
 
81773
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81774
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81775
#include "CCExprResolveH.ah"
 
81776
#endif
 
81777
namespace Puma {
 
81778
 
 
81779
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81780
 
 
81781
#line 81782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81782
} // closed Puma
 
81783
 
 
81784
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81785
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81786
#include "CExprResolveH.ah"
 
81787
#endif
 
81788
namespace Puma {
 
81789
 
 
81790
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66582
81791
class CT_DeleteExpr : public CT_Expression, public CSemObject {
66583
 
#line 66584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81792
#line 81793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81793
  friend class ::CCExprResolve;
 
81794
  friend class ::CExprResolve;
66584
81795
  friend class ::WinIfExists;
66585
81796
  friend class ::WinImportHandler;
66586
81797
  friend class ::WinMacros;
66587
 
  friend class ::CMatchSyntax;
66588
 
  friend class ::ExtGnu;
 
81798
  friend class ::WinAsm;
 
81799
  friend class ::WinDeclSpecs;
 
81800
  friend class ::WinMemberExplSpec;
 
81801
  friend class ::WinTypeKeywords;
 
81802
  friend class ::WinFriend;
66589
81803
  friend class ::ExtAC;
66590
81804
  friend class ::ExtACBuilderCoupling;
66591
81805
  friend class ::ExtACSyntaxCoupling;
66592
81806
  friend class ::ExtACTree;
66593
81807
  friend class ::ExtACKeywords;
66594
 
  friend class ::WinAsm;
66595
 
  friend class ::WinDeclSpecs;
66596
 
  friend class ::WinMemberExplSpec;
66597
 
  friend class ::WinTypeKeywords;
 
81808
  friend class ::ExtGnu;
66598
81809
  friend class ::PragmaOnceUnitState;
66599
81810
  friend class ::PragmaOnce;
66600
 
  friend class ::CCExprResolve;
66601
 
  friend class ::CExprResolve;
 
81811
  friend class ::CMatchSyntax;
66602
81812
 
66603
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81813
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66604
81814
 
66605
81815
  CTree *sons[2]; // oper, expr
66606
81816
 
66607
81817
public:
66608
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
81818
  /** Constructor.
 
81819
   *  \param op The delete operator.
 
81820
   *  \param e The expression representing the object to delete. */
 
81821
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
81822
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66609
81823
  static const char *NodeId ();
 
81824
  /** Get the name of the node. Can be compared with NodeId(). */
66610
81825
  const char *NodeName () const { return NodeId (); }
 
81826
  /** Get the number of sons. */
66611
81827
  int Sons () const { return 2; }
 
81828
  /** Get the n-th son.
 
81829
   *  \param n The index of the son.
 
81830
   *  \return The n-th son or NULL. */
66612
81831
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
81832
  /** Replace a son.
 
81833
   *  \param old_son The son to replace.
 
81834
   *  \param new_son The new son. */
66613
81835
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66614
81836
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66615
81837
  }
 
81838
  /** Get the expression. */
66616
81839
  CTree *Expr () const { return sons[1]; }
 
81840
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
66617
81841
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
81842
  /** Get the semantic information object. */
66618
81843
  CSemObject *SemObject () const { return (CSemObject*)this; }
66619
81844
   private:
66620
81845
  typedef CT_DeleteExpr CCExprResolveExpr;
66621
81846
 
66622
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81847
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66623
81848
 public :
66624
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81849
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66625
81850
  typedef CT_DeleteExpr CExprResolveExpr;
66626
81851
 
66627
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81852
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66628
81853
 public :
66629
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66630
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81854
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81855
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66631
81856
};
66632
81857
 
 
81858
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
81859
 *  Tree node representing a new expression, e.g. new A(). */
66633
81860
 
66634
 
#line 66635 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81861
#line 81862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66635
81862
} // closed Puma
 
81863
class CCExprResolve;
 
81864
class CExprResolve;
66636
81865
class WinIfExists;
66637
81866
class WinImportHandler;
66638
81867
class WinMacros;
66639
 
class CMatchSyntax;
66640
 
class ExtGnu;
 
81868
class WinAsm;
 
81869
class WinDeclSpecs;
 
81870
class WinMemberExplSpec;
 
81871
class WinTypeKeywords;
 
81872
class WinFriend;
66641
81873
class ExtAC;
66642
81874
class ExtACBuilderCoupling;
66643
81875
class ExtACSyntaxCoupling;
66644
81876
class ExtACTree;
66645
81877
class ExtACKeywords;
66646
 
class WinAsm;
66647
 
class WinDeclSpecs;
66648
 
class WinMemberExplSpec;
66649
 
class WinTypeKeywords;
 
81878
class ExtGnu;
66650
81879
class PragmaOnceUnitState;
66651
81880
class PragmaOnce;
66652
 
class CCExprResolve;
66653
 
class CExprResolve;
66654
 
namespace Puma {
66655
 
 
66656
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81881
class CMatchSyntax;
 
81882
namespace Puma {
 
81883
 
 
81884
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81885
 
 
81886
#line 81887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81887
} // closed Puma
 
81888
 
 
81889
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81890
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81891
#include "CCExprResolveH.ah"
 
81892
#endif
 
81893
namespace Puma {
 
81894
 
 
81895
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81896
 
 
81897
#line 81898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81898
} // closed Puma
 
81899
 
 
81900
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81901
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81902
#include "CExprResolveH.ah"
 
81903
#endif
 
81904
namespace Puma {
 
81905
 
 
81906
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66657
81907
class CT_NewExpr : public CT_Expression, public CSemObject {
66658
 
#line 66659 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81908
#line 81909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
81909
  friend class ::CCExprResolve;
 
81910
  friend class ::CExprResolve;
66659
81911
  friend class ::WinIfExists;
66660
81912
  friend class ::WinImportHandler;
66661
81913
  friend class ::WinMacros;
66662
 
  friend class ::CMatchSyntax;
66663
 
  friend class ::ExtGnu;
 
81914
  friend class ::WinAsm;
 
81915
  friend class ::WinDeclSpecs;
 
81916
  friend class ::WinMemberExplSpec;
 
81917
  friend class ::WinTypeKeywords;
 
81918
  friend class ::WinFriend;
66664
81919
  friend class ::ExtAC;
66665
81920
  friend class ::ExtACBuilderCoupling;
66666
81921
  friend class ::ExtACSyntaxCoupling;
66667
81922
  friend class ::ExtACTree;
66668
81923
  friend class ::ExtACKeywords;
66669
 
  friend class ::WinAsm;
66670
 
  friend class ::WinDeclSpecs;
66671
 
  friend class ::WinMemberExplSpec;
66672
 
  friend class ::WinTypeKeywords;
 
81924
  friend class ::ExtGnu;
66673
81925
  friend class ::PragmaOnceUnitState;
66674
81926
  friend class ::PragmaOnce;
66675
 
  friend class ::CCExprResolve;
66676
 
  friend class ::CExprResolve;
 
81927
  friend class ::CMatchSyntax;
66677
81928
 
66678
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81929
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66679
81930
 
66680
81931
  CTree *sons[6]; // oper, placement, open, type, close, init
66681
81932
 
66682
81933
public:
 
81934
  /** Constructor.
 
81935
   *  \param op The new operator.
 
81936
   *  \param p The optional placement expression.
 
81937
   *  \param o The optional left parenthesis around the type identifier.
 
81938
   *  \param t The type identifier specifying the type of the object to create.
 
81939
   *  \param c The optional right parenthesis around the type identifier.
 
81940
   *  \param i The optional initializer. */
66683
81941
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
66684
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
81942
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
81943
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
66685
81944
  }
 
81945
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66686
81946
  static const char *NodeId ();
 
81947
  /** Get the name of the node. Can be compared with NodeId(). */
66687
81948
  const char *NodeName () const { return NodeId (); }
 
81949
  /** Get the number of sons. */
66688
81950
  int Sons () const { return CTree::Sons (sons, 6); }
 
81951
  /** Get the n-th son.
 
81952
   *  \param n The index of the son.
 
81953
   *  \return The n-th son or NULL. */
66689
81954
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
81955
  /** Replace a son.
 
81956
   *  \param old_son The son to replace.
 
81957
   *  \param new_son The new son. */
66690
81958
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66691
81959
    CTree::ReplaceSon (sons, 6, old_son, new_son);
66692
81960
  }
 
81961
  /** Get the operator name. */
66693
81962
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
81963
  /** Get the placement expression. */
66694
81964
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
81965
  /** Get the initializer. */
66695
81966
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
81967
  /** Get the type of the object to create. */
66696
81968
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
81969
  /** Get the semantic information object. */
66697
81970
  CSemObject *SemObject () const { return (CSemObject*)this; }
66698
81971
   private:
66699
81972
  typedef CT_NewExpr CCExprResolveExpr;
66700
81973
 
66701
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81974
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66702
81975
 public :
66703
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81976
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66704
81977
  typedef CT_NewExpr CExprResolveExpr;
66705
81978
 
66706
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81979
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66707
81980
 public :
66708
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66709
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81981
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81982
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66710
81983
};
66711
81984
 
 
81985
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
81986
 *  Tree node representing an if-then expression, 
 
81987
 *  e.g. a>0?a:b or a?:b. */
66712
81988
 
66713
 
#line 66714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
81989
#line 81990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66714
81990
} // closed Puma
 
81991
class CCExprResolve;
 
81992
class CExprResolve;
66715
81993
class WinIfExists;
66716
81994
class WinImportHandler;
66717
81995
class WinMacros;
66718
 
class CMatchSyntax;
66719
 
class ExtGnu;
 
81996
class WinAsm;
 
81997
class WinDeclSpecs;
 
81998
class WinMemberExplSpec;
 
81999
class WinTypeKeywords;
 
82000
class WinFriend;
66720
82001
class ExtAC;
66721
82002
class ExtACBuilderCoupling;
66722
82003
class ExtACSyntaxCoupling;
66723
82004
class ExtACTree;
66724
82005
class ExtACKeywords;
66725
 
class WinAsm;
66726
 
class WinDeclSpecs;
66727
 
class WinMemberExplSpec;
66728
 
class WinTypeKeywords;
 
82006
class ExtGnu;
66729
82007
class PragmaOnceUnitState;
66730
82008
class PragmaOnce;
66731
 
class CCExprResolve;
66732
 
class CExprResolve;
66733
 
namespace Puma {
66734
 
 
66735
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82009
class CMatchSyntax;
 
82010
namespace Puma {
 
82011
 
 
82012
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82013
 
 
82014
#line 82015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82015
} // closed Puma
 
82016
 
 
82017
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82018
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82019
#include "CCExprResolveH.ah"
 
82020
#endif
 
82021
namespace Puma {
 
82022
 
 
82023
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82024
 
 
82025
#line 82026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82026
} // closed Puma
 
82027
 
 
82028
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82029
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82030
#include "CExprResolveH.ah"
 
82031
#endif
 
82032
namespace Puma {
 
82033
 
 
82034
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66736
82035
class CT_IfThenExpr : public CT_Expression {
66737
 
#line 66738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82036
#line 82037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82037
  friend class ::CCExprResolve;
 
82038
  friend class ::CExprResolve;
66738
82039
  friend class ::WinIfExists;
66739
82040
  friend class ::WinImportHandler;
66740
82041
  friend class ::WinMacros;
66741
 
  friend class ::CMatchSyntax;
66742
 
  friend class ::ExtGnu;
 
82042
  friend class ::WinAsm;
 
82043
  friend class ::WinDeclSpecs;
 
82044
  friend class ::WinMemberExplSpec;
 
82045
  friend class ::WinTypeKeywords;
 
82046
  friend class ::WinFriend;
66743
82047
  friend class ::ExtAC;
66744
82048
  friend class ::ExtACBuilderCoupling;
66745
82049
  friend class ::ExtACSyntaxCoupling;
66746
82050
  friend class ::ExtACTree;
66747
82051
  friend class ::ExtACKeywords;
66748
 
  friend class ::WinAsm;
66749
 
  friend class ::WinDeclSpecs;
66750
 
  friend class ::WinMemberExplSpec;
66751
 
  friend class ::WinTypeKeywords;
 
82052
  friend class ::ExtGnu;
66752
82053
  friend class ::PragmaOnceUnitState;
66753
82054
  friend class ::PragmaOnce;
66754
 
  friend class ::CCExprResolve;
66755
 
  friend class ::CExprResolve;
 
82055
  friend class ::CMatchSyntax;
66756
82056
 
66757
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82057
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66758
82058
 
66759
82059
  CTree *sons[5]; // cond, oper, left, colon, right
66760
82060
 
66761
82061
public:
 
82062
  /** Constructor.
 
82063
   *  \param c1 The condition expression.
 
82064
   *  \param o The question mark operator. 
 
82065
   *  \param l The expression to the left of the colon.
 
82066
   *  \param c2 The colon operator.
 
82067
   *  \param r The expression to the right of the colon. */ 
66762
82068
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
66763
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
82069
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
82070
    AddSon (sons[3], c2); AddSon (sons[4], r);
66764
82071
  }
 
82072
  /** Constructor.
 
82073
   *  \param c1 The condition expression.
 
82074
   *  \param o The question mark operator. 
 
82075
   *  \param c2 The colon operator.
 
82076
   *  \param r The expression to the right of the colon. */ 
66765
82077
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
66766
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
82078
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
82079
    AddSon (sons[3], c2); AddSon (sons[4], r);
66767
82080
  }
 
82081
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66768
82082
  static const char *NodeId ();
 
82083
  /** Get the name of the node. Can be compared with NodeId(). */
66769
82084
  const char *NodeName () const { return NodeId (); }
 
82085
  /** Get the number of sons. */
66770
82086
  int Sons () const { return CTree::Sons (sons, 5); }
 
82087
  /** Get the n-th son.
 
82088
   *  \param n The index of the son.
 
82089
   *  \return The n-th son or NULL. */
66771
82090
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
82091
  /** Get the condition expression. */
66772
82092
  CTree *Condition () const { return sons[0]; }
 
82093
  /** Get the left expression (condition=true). */
66773
82094
  CTree *LeftOperand () const { return sons[2]; }
 
82095
  /** Get the right expression (condition=false). */
66774
82096
  CTree *RightOperand () const { return sons[4]; }
 
82097
  /** Replace a son.
 
82098
   *  \param old_son The son to replace.
 
82099
   *  \param new_son The new son. */
66775
82100
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66776
82101
    CTree::ReplaceSon (sons, 5, old_son, new_son);
66777
82102
  }
66778
82103
   private:
66779
82104
  typedef CT_IfThenExpr CCExprResolveExpr;
66780
82105
 
66781
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82106
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66782
82107
 public :
66783
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82108
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66784
82109
  typedef CT_IfThenExpr CExprResolveExpr;
66785
82110
 
66786
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82111
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66787
82112
 public :
66788
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66789
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82113
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82114
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66790
82115
};
66791
82116
 
 
82117
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
82118
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
66792
82119
 
66793
 
#line 66794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82120
#line 82121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66794
82121
} // closed Puma
 
82122
class CCExprResolve;
 
82123
class CExprResolve;
66795
82124
class WinIfExists;
66796
82125
class WinImportHandler;
66797
82126
class WinMacros;
66798
 
class CMatchSyntax;
66799
 
class ExtGnu;
 
82127
class WinAsm;
 
82128
class WinDeclSpecs;
 
82129
class WinMemberExplSpec;
 
82130
class WinTypeKeywords;
 
82131
class WinFriend;
66800
82132
class ExtAC;
66801
82133
class ExtACBuilderCoupling;
66802
82134
class ExtACSyntaxCoupling;
66803
82135
class ExtACTree;
66804
82136
class ExtACKeywords;
66805
 
class WinAsm;
66806
 
class WinDeclSpecs;
66807
 
class WinMemberExplSpec;
66808
 
class WinTypeKeywords;
 
82137
class ExtGnu;
66809
82138
class PragmaOnceUnitState;
66810
82139
class PragmaOnce;
66811
 
class CCExprResolve;
66812
 
class CExprResolve;
66813
 
namespace Puma {
66814
 
 
66815
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82140
class CMatchSyntax;
 
82141
namespace Puma {
 
82142
 
 
82143
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82144
 
 
82145
#line 82146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82146
} // closed Puma
 
82147
 
 
82148
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82149
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82150
#include "CCExprResolveH.ah"
 
82151
#endif
 
82152
namespace Puma {
 
82153
 
 
82154
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82155
 
 
82156
#line 82157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82157
} // closed Puma
 
82158
 
 
82159
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82160
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82161
#include "CExprResolveH.ah"
 
82162
#endif
 
82163
namespace Puma {
 
82164
 
 
82165
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66816
82166
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
66817
 
#line 66818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82167
#line 82168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82168
  friend class ::CCExprResolve;
 
82169
  friend class ::CExprResolve;
66818
82170
  friend class ::WinIfExists;
66819
82171
  friend class ::WinImportHandler;
66820
82172
  friend class ::WinMacros;
66821
 
  friend class ::CMatchSyntax;
66822
 
  friend class ::ExtGnu;
 
82173
  friend class ::WinAsm;
 
82174
  friend class ::WinDeclSpecs;
 
82175
  friend class ::WinMemberExplSpec;
 
82176
  friend class ::WinTypeKeywords;
 
82177
  friend class ::WinFriend;
66823
82178
  friend class ::ExtAC;
66824
82179
  friend class ::ExtACBuilderCoupling;
66825
82180
  friend class ::ExtACSyntaxCoupling;
66826
82181
  friend class ::ExtACTree;
66827
82182
  friend class ::ExtACKeywords;
66828
 
  friend class ::WinAsm;
66829
 
  friend class ::WinDeclSpecs;
66830
 
  friend class ::WinMemberExplSpec;
66831
 
  friend class ::WinTypeKeywords;
 
82183
  friend class ::ExtGnu;
66832
82184
  friend class ::PragmaOnceUnitState;
66833
82185
  friend class ::PragmaOnce;
66834
 
  friend class ::CCExprResolve;
66835
 
  friend class ::CExprResolve;
 
82186
  friend class ::CMatchSyntax;
66836
82187
 
66837
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82188
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66838
82189
 
66839
82190
  CTree *sons[4]; // open, type, close, init
66840
82191
 
66841
82192
public:
 
82193
  /** Constructor.
 
82194
   *  \param r Left parenthesis of the type name.
 
82195
   *  \param t The type name.
 
82196
   *  \param cr Right parenthesis of the type name.
 
82197
   *  \param i The initializer list. */
66842
82198
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
66843
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
82199
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
82200
    AddSon (sons[2], cr); AddSon (sons[3], i);
66844
82201
  }
 
82202
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66845
82203
  static const char *NodeId ();
 
82204
  /** Get the name of the node. Can be compared with NodeId(). */
66846
82205
  const char *NodeName () const { return NodeId (); }
 
82206
  /** Get the number of sons. */
66847
82207
  int Sons () const { return 4; }
 
82208
  /** Get the n-th son.
 
82209
   *  \param n The index of the son.
 
82210
   *  \return The n-th son or NULL. */
66848
82211
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
82212
  /** Replace a son.
 
82213
   *  \param old_son The son to replace.
 
82214
   *  \param new_son The new son. */
66849
82215
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66850
82216
    CTree::ReplaceSon (sons, 4, old_son, new_son);
66851
82217
  }
 
82218
  /** Get the type name. */
66852
82219
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
82220
  /** Get the initializer list. */
66853
82221
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
82222
  /** Get the semantic information object. */
66854
82223
  CSemObject *SemObject () const { return (CSemObject*)this; }
66855
82224
   private:
66856
82225
  typedef CT_CmpdLiteral CCExprResolveExpr;
66857
82226
 
66858
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82227
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66859
82228
 public :
66860
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82229
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66861
82230
  typedef CT_CmpdLiteral CExprResolveExpr;
66862
82231
 
66863
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82232
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66864
82233
 public :
66865
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66866
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82234
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82235
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66867
82236
};
66868
82237
 
 
82238
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
82239
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
66869
82240
 
66870
 
#line 66871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82241
#line 82242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66871
82242
} // closed Puma
 
82243
class CCExprResolve;
 
82244
class CExprResolve;
66872
82245
class WinIfExists;
66873
82246
class WinImportHandler;
66874
82247
class WinMacros;
66875
 
class CMatchSyntax;
66876
 
class ExtGnu;
 
82248
class WinAsm;
 
82249
class WinDeclSpecs;
 
82250
class WinMemberExplSpec;
 
82251
class WinTypeKeywords;
 
82252
class WinFriend;
66877
82253
class ExtAC;
66878
82254
class ExtACBuilderCoupling;
66879
82255
class ExtACSyntaxCoupling;
66880
82256
class ExtACTree;
66881
82257
class ExtACKeywords;
66882
 
class WinAsm;
66883
 
class WinDeclSpecs;
66884
 
class WinMemberExplSpec;
66885
 
class WinTypeKeywords;
 
82258
class ExtGnu;
66886
82259
class PragmaOnceUnitState;
66887
82260
class PragmaOnce;
66888
 
class CCExprResolve;
66889
 
class CExprResolve;
66890
 
namespace Puma {
66891
 
 
66892
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82261
class CMatchSyntax;
 
82262
namespace Puma {
 
82263
 
 
82264
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82265
 
 
82266
#line 82267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82267
} // closed Puma
 
82268
 
 
82269
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82270
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82271
#include "CCExprResolveH.ah"
 
82272
#endif
 
82273
namespace Puma {
 
82274
 
 
82275
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82276
 
 
82277
#line 82278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82278
} // closed Puma
 
82279
 
 
82280
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82281
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82282
#include "CExprResolveH.ah"
 
82283
#endif
 
82284
namespace Puma {
 
82285
 
 
82286
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66893
82287
class CT_ConstructExpr : public CT_Expression, public CSemObject {
66894
 
#line 66895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82288
#line 82289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82289
  friend class ::CCExprResolve;
 
82290
  friend class ::CExprResolve;
66895
82291
  friend class ::WinIfExists;
66896
82292
  friend class ::WinImportHandler;
66897
82293
  friend class ::WinMacros;
66898
 
  friend class ::CMatchSyntax;
66899
 
  friend class ::ExtGnu;
 
82294
  friend class ::WinAsm;
 
82295
  friend class ::WinDeclSpecs;
 
82296
  friend class ::WinMemberExplSpec;
 
82297
  friend class ::WinTypeKeywords;
 
82298
  friend class ::WinFriend;
66900
82299
  friend class ::ExtAC;
66901
82300
  friend class ::ExtACBuilderCoupling;
66902
82301
  friend class ::ExtACSyntaxCoupling;
66903
82302
  friend class ::ExtACTree;
66904
82303
  friend class ::ExtACKeywords;
66905
 
  friend class ::WinAsm;
66906
 
  friend class ::WinDeclSpecs;
66907
 
  friend class ::WinMemberExplSpec;
66908
 
  friend class ::WinTypeKeywords;
 
82304
  friend class ::ExtGnu;
66909
82305
  friend class ::PragmaOnceUnitState;
66910
82306
  friend class ::PragmaOnce;
66911
 
  friend class ::CCExprResolve;
66912
 
  friend class ::CExprResolve;
 
82307
  friend class ::CMatchSyntax;
66913
82308
 
66914
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82309
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66915
82310
 
66916
82311
  CTree *sons[2]; // type, init
66917
82312
 
66918
82313
public:
66919
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
82314
  /** Constructor.
 
82315
   *  \param t The type name.
 
82316
   *  \param i The initializer list. */
 
82317
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
82318
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66920
82319
  static const char *NodeId ();
 
82320
  /** Get the name of the node. Can be compared with NodeId(). */
66921
82321
  const char *NodeName () const { return NodeId (); }
 
82322
  /** Get the number of sons. */
66922
82323
  int Sons () const { return 2; }
 
82324
  /** Get the n-th son.
 
82325
   *  \param n The index of the son.
 
82326
   *  \return The n-th son or NULL. */
66923
82327
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
82328
  /** Replace a son.
 
82329
   *  \param old_son The son to replace.
 
82330
   *  \param new_son The new son. */
66924
82331
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66925
82332
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66926
82333
  }
 
82334
  /** Get the type name. */
66927
82335
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
82336
  /** Get the initializer. */
66928
82337
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
82338
  /** Get the semantic information object. */
66929
82339
  CSemObject *SemObject () const { return (CSemObject*)this; }
66930
82340
   private:
66931
82341
  typedef CT_ConstructExpr CCExprResolveExpr;
66932
82342
 
66933
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82343
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66934
82344
 public :
66935
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82345
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66936
82346
  typedef CT_ConstructExpr CExprResolveExpr;
66937
82347
 
66938
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82348
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66939
82349
 public :
66940
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66941
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82350
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82351
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66942
82352
};
66943
82353
 
 
82354
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
82355
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
66944
82356
 
66945
 
#line 66946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82357
#line 82358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
66946
82358
} // closed Puma
 
82359
class CCExprResolve;
 
82360
class CExprResolve;
66947
82361
class WinIfExists;
66948
82362
class WinImportHandler;
66949
82363
class WinMacros;
66950
 
class CMatchSyntax;
66951
 
class ExtGnu;
 
82364
class WinAsm;
 
82365
class WinDeclSpecs;
 
82366
class WinMemberExplSpec;
 
82367
class WinTypeKeywords;
 
82368
class WinFriend;
66952
82369
class ExtAC;
66953
82370
class ExtACBuilderCoupling;
66954
82371
class ExtACSyntaxCoupling;
66955
82372
class ExtACTree;
66956
82373
class ExtACKeywords;
66957
 
class WinAsm;
66958
 
class WinDeclSpecs;
66959
 
class WinMemberExplSpec;
66960
 
class WinTypeKeywords;
 
82374
class ExtGnu;
66961
82375
class PragmaOnceUnitState;
66962
82376
class PragmaOnce;
66963
 
class CCExprResolve;
66964
 
class CExprResolve;
66965
 
namespace Puma {
66966
 
 
66967
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82377
class CMatchSyntax;
 
82378
namespace Puma {
 
82379
 
 
82380
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82381
 
 
82382
#line 82383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82383
} // closed Puma
 
82384
 
 
82385
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82386
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82387
#include "CCExprResolveH.ah"
 
82388
#endif
 
82389
namespace Puma {
 
82390
 
 
82391
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82392
 
 
82393
#line 82394 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82394
} // closed Puma
 
82395
 
 
82396
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82397
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82398
#include "CExprResolveH.ah"
 
82399
#endif
 
82400
namespace Puma {
 
82401
 
 
82402
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66968
82403
class CT_ThrowExpr : public CT_Expression {
66969
 
#line 66970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82404
#line 82405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82405
  friend class ::CCExprResolve;
 
82406
  friend class ::CExprResolve;
66970
82407
  friend class ::WinIfExists;
66971
82408
  friend class ::WinImportHandler;
66972
82409
  friend class ::WinMacros;
66973
 
  friend class ::CMatchSyntax;
66974
 
  friend class ::ExtGnu;
 
82410
  friend class ::WinAsm;
 
82411
  friend class ::WinDeclSpecs;
 
82412
  friend class ::WinMemberExplSpec;
 
82413
  friend class ::WinTypeKeywords;
 
82414
  friend class ::WinFriend;
66975
82415
  friend class ::ExtAC;
66976
82416
  friend class ::ExtACBuilderCoupling;
66977
82417
  friend class ::ExtACSyntaxCoupling;
66978
82418
  friend class ::ExtACTree;
66979
82419
  friend class ::ExtACKeywords;
66980
 
  friend class ::WinAsm;
66981
 
  friend class ::WinDeclSpecs;
66982
 
  friend class ::WinMemberExplSpec;
66983
 
  friend class ::WinTypeKeywords;
 
82420
  friend class ::ExtGnu;
66984
82421
  friend class ::PragmaOnceUnitState;
66985
82422
  friend class ::PragmaOnce;
66986
 
  friend class ::CCExprResolve;
66987
 
  friend class ::CExprResolve;
 
82423
  friend class ::CMatchSyntax;
66988
82424
 
66989
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82425
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66990
82426
 
66991
82427
  CTree *sons[2]; // throw, expr
66992
82428
 
66993
82429
public:
66994
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
82430
  /** Constructor.
 
82431
   *  \param t The 'throw' keyword.
 
82432
   *  \param e The expression. */
 
82433
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
82434
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66995
82435
  static const char *NodeId ();
 
82436
  /** Get the name of the node. Can be compared with NodeId(). */
66996
82437
  const char *NodeName () const { return NodeId (); }
 
82438
  /** Get the number of sons. */
66997
82439
  int Sons () const { return CTree::Sons (sons, 2); }
 
82440
  /** Get the n-th son.
 
82441
   *  \param n The index of the son.
 
82442
   *  \return The n-th son or NULL. */
66998
82443
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
82444
  /** Replace a son.
 
82445
   *  \param old_son The son to replace.
 
82446
   *  \param new_son The new son. */
66999
82447
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67000
82448
    CTree::ReplaceSon (sons, 2, old_son, new_son);
67001
82449
  }
 
82450
  /** Get the expression. */
67002
82451
  CTree *Expr () const { return sons[1]; }
67003
82452
   private:
67004
82453
  typedef CT_ThrowExpr CCExprResolveExpr;
67005
82454
 
67006
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82455
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67007
82456
 public :
67008
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82457
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67009
82458
  typedef CT_ThrowExpr CExprResolveExpr;
67010
82459
 
67011
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82460
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67012
82461
 public :
67013
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67014
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82462
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82463
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67015
82464
};
67016
82465
 
 
82466
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
82467
 *  Tree node representing an index expression. */
67017
82468
 
67018
 
#line 67019 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82469
#line 82470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67019
82470
} // closed Puma
 
82471
class CCExprResolve;
 
82472
class CExprResolve;
67020
82473
class WinIfExists;
67021
82474
class WinImportHandler;
67022
82475
class WinMacros;
67023
 
class CMatchSyntax;
67024
 
class ExtGnu;
 
82476
class WinAsm;
 
82477
class WinDeclSpecs;
 
82478
class WinMemberExplSpec;
 
82479
class WinTypeKeywords;
 
82480
class WinFriend;
67025
82481
class ExtAC;
67026
82482
class ExtACBuilderCoupling;
67027
82483
class ExtACSyntaxCoupling;
67028
82484
class ExtACTree;
67029
82485
class ExtACKeywords;
67030
 
class WinAsm;
67031
 
class WinDeclSpecs;
67032
 
class WinMemberExplSpec;
67033
 
class WinTypeKeywords;
 
82486
class ExtGnu;
67034
82487
class PragmaOnceUnitState;
67035
82488
class PragmaOnce;
67036
 
class CCExprResolve;
67037
 
class CExprResolve;
67038
 
namespace Puma {
67039
 
 
67040
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67041
 
class CT_IndexExpr : public CT_Expression {
67042
 
#line 67043 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82489
class CMatchSyntax;
 
82490
namespace Puma {
 
82491
 
 
82492
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82493
 
 
82494
#line 82495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82495
} // closed Puma
 
82496
 
 
82497
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82498
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82499
#include "CCExprResolveH.ah"
 
82500
#endif
 
82501
namespace Puma {
 
82502
 
 
82503
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82504
 
 
82505
#line 82506 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82506
} // closed Puma
 
82507
 
 
82508
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82509
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82510
#include "CExprResolveH.ah"
 
82511
#endif
 
82512
namespace Puma {
 
82513
 
 
82514
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82515
class CT_IndexExpr : public CT_Call {
 
82516
#line 82517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82517
  friend class ::CCExprResolve;
 
82518
  friend class ::CExprResolve;
67043
82519
  friend class ::WinIfExists;
67044
82520
  friend class ::WinImportHandler;
67045
82521
  friend class ::WinMacros;
67046
 
  friend class ::CMatchSyntax;
67047
 
  friend class ::ExtGnu;
 
82522
  friend class ::WinAsm;
 
82523
  friend class ::WinDeclSpecs;
 
82524
  friend class ::WinMemberExplSpec;
 
82525
  friend class ::WinTypeKeywords;
 
82526
  friend class ::WinFriend;
67048
82527
  friend class ::ExtAC;
67049
82528
  friend class ::ExtACBuilderCoupling;
67050
82529
  friend class ::ExtACSyntaxCoupling;
67051
82530
  friend class ::ExtACTree;
67052
82531
  friend class ::ExtACKeywords;
67053
 
  friend class ::WinAsm;
67054
 
  friend class ::WinDeclSpecs;
67055
 
  friend class ::WinMemberExplSpec;
67056
 
  friend class ::WinTypeKeywords;
 
82532
  friend class ::ExtGnu;
67057
82533
  friend class ::PragmaOnceUnitState;
67058
82534
  friend class ::PragmaOnce;
67059
 
  friend class ::CCExprResolve;
67060
 
  friend class ::CExprResolve;
 
82535
  friend class ::CMatchSyntax;
67061
82536
 
67062
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82537
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67063
82538
 
67064
82539
  CTree *sons[4]; // expr, open, index, close
67065
82540
 
67066
82541
public:
 
82542
  /** Constructor.
 
82543
   *  \param e The expression on which to invoke the index operator.
 
82544
   *  \param o Left parenthesis of the index expression.
 
82545
   *  \param i The index expression. 
 
82546
   *  \param c Right parenthesis of the index expression. */
67067
82547
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
67068
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
82548
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
82549
    AddSon (sons[2], i); AddSon (sons[3], c);
67069
82550
  }
 
82551
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67070
82552
  static const char *NodeId ();
 
82553
  /** Get the name of the node. Can be compared with NodeId(). */
67071
82554
  const char *NodeName () const { return NodeId (); }
 
82555
  /** Get the number of sons. */
67072
82556
  int Sons () const { return 4; }
 
82557
  /** Get the n-th son.
 
82558
   *  \param n The index of the son.
 
82559
   *  \return The n-th son or NULL. */
67073
82560
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
82561
  /** Replace a son.
 
82562
   *  \param old_son The son to replace.
 
82563
   *  \param new_son The new son. */
67074
82564
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67075
82565
    CTree::ReplaceSon (sons, 4, old_son, new_son);
67076
82566
  }
67077
82567
   private:
67078
82568
  typedef CT_IndexExpr CCExprResolveExpr;
67079
82569
 
67080
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82570
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67081
82571
 public :
67082
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82572
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67083
82573
  typedef CT_IndexExpr CExprResolveExpr;
67084
82574
 
67085
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82575
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67086
82576
 public :
67087
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67088
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82577
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82578
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67089
82579
};
67090
82580
 
 
82581
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
82582
 *  Tree node representing a function call expression, e.g. f(i). */
67091
82583
 
67092
 
#line 67093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82584
#line 82585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67093
82585
} // closed Puma
 
82586
class CCExprResolve;
 
82587
class CExprResolve;
67094
82588
class WinIfExists;
67095
82589
class WinImportHandler;
67096
82590
class WinMacros;
67097
 
class CMatchSyntax;
67098
 
class ExtGnu;
 
82591
class WinAsm;
 
82592
class WinDeclSpecs;
 
82593
class WinMemberExplSpec;
 
82594
class WinTypeKeywords;
 
82595
class WinFriend;
67099
82596
class ExtAC;
67100
82597
class ExtACBuilderCoupling;
67101
82598
class ExtACSyntaxCoupling;
67102
82599
class ExtACTree;
67103
82600
class ExtACKeywords;
67104
 
class WinAsm;
67105
 
class WinDeclSpecs;
67106
 
class WinMemberExplSpec;
67107
 
class WinTypeKeywords;
 
82601
class ExtGnu;
67108
82602
class PragmaOnceUnitState;
67109
82603
class PragmaOnce;
67110
 
class CCExprResolve;
67111
 
class CExprResolve;
67112
 
namespace Puma {
67113
 
 
67114
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67115
 
class CT_CallExpr : public CT_Expression, public CSemObject {
67116
 
#line 67117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82604
class CMatchSyntax;
 
82605
namespace Puma {
 
82606
 
 
82607
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82608
 
 
82609
#line 82610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82610
} // closed Puma
 
82611
 
 
82612
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82613
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82614
#include "CCExprResolveH.ah"
 
82615
#endif
 
82616
namespace Puma {
 
82617
 
 
82618
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82619
 
 
82620
#line 82621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82621
} // closed Puma
 
82622
 
 
82623
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82624
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82625
#include "CExprResolveH.ah"
 
82626
#endif
 
82627
namespace Puma {
 
82628
 
 
82629
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82630
class CT_CallExpr : public CT_Call {
 
82631
#line 82632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82632
  friend class ::CCExprResolve;
 
82633
  friend class ::CExprResolve;
67117
82634
  friend class ::WinIfExists;
67118
82635
  friend class ::WinImportHandler;
67119
82636
  friend class ::WinMacros;
67120
 
  friend class ::CMatchSyntax;
67121
 
  friend class ::ExtGnu;
 
82637
  friend class ::WinAsm;
 
82638
  friend class ::WinDeclSpecs;
 
82639
  friend class ::WinMemberExplSpec;
 
82640
  friend class ::WinTypeKeywords;
 
82641
  friend class ::WinFriend;
67122
82642
  friend class ::ExtAC;
67123
82643
  friend class ::ExtACBuilderCoupling;
67124
82644
  friend class ::ExtACSyntaxCoupling;
67125
82645
  friend class ::ExtACTree;
67126
82646
  friend class ::ExtACKeywords;
67127
 
  friend class ::WinAsm;
67128
 
  friend class ::WinDeclSpecs;
67129
 
  friend class ::WinMemberExplSpec;
67130
 
  friend class ::WinTypeKeywords;
 
82647
  friend class ::ExtGnu;
67131
82648
  friend class ::PragmaOnceUnitState;
67132
82649
  friend class ::PragmaOnce;
67133
 
  friend class ::CCExprResolve;
67134
 
  friend class ::CExprResolve;
 
82650
  friend class ::CMatchSyntax;
67135
82651
 
67136
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82652
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67137
82653
 
67138
82654
  CTree *sons[2]; // expr, args
67139
82655
 
67140
82656
public:
67141
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
67142
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
82657
  /** Constructor.
 
82658
   *  \param e The expression on which the call is invoked. */
 
82659
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
82660
  /** Constructor.
 
82661
   *  \param e The expression on which the call is invoked.
 
82662
   *  \param l The argument list of the call. */
 
82663
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
82664
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67143
82665
  static const char *NodeId ();
 
82666
  /** Get the name of the node. Can be compared with NodeId(). */
67144
82667
  const char *NodeName () const { return NodeId (); }
 
82668
  /** Get the number of sons. */
67145
82669
  int Sons () const { return CTree::Sons (sons, 2); }
 
82670
  /** Get the n-th son.
 
82671
   *  \param n The index of the son.
 
82672
   *  \return The n-th son or NULL. */
67146
82673
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
82674
  /** Replace a son.
 
82675
   *  \param old_son The son to replace.
 
82676
   *  \param new_son The new son. */
67147
82677
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67148
82678
    CTree::ReplaceSon (sons, 2, old_son, new_son);
67149
82679
  }
67150
82680
  CTree *Expr () const { return sons[0]; }
67151
82681
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
67152
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
67153
82682
   private:
67154
82683
  typedef CT_CallExpr CCExprResolveExpr;
67155
82684
 
67156
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82685
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67157
82686
 public :
67158
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82687
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67159
82688
  typedef CT_CallExpr CExprResolveExpr;
67160
82689
 
67161
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82690
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67162
82691
 public :
67163
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67164
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82692
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82693
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67165
82694
};
67166
82695
 
 
82696
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
82697
 *  Tree node representing a cast expression, e.g. (int)a. */
67167
82698
 
67168
 
#line 67169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82699
#line 82700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67169
82700
} // closed Puma
 
82701
class CCExprResolve;
 
82702
class CExprResolve;
67170
82703
class WinIfExists;
67171
82704
class WinImportHandler;
67172
82705
class WinMacros;
67173
 
class CMatchSyntax;
67174
 
class ExtGnu;
 
82706
class WinAsm;
 
82707
class WinDeclSpecs;
 
82708
class WinMemberExplSpec;
 
82709
class WinTypeKeywords;
 
82710
class WinFriend;
67175
82711
class ExtAC;
67176
82712
class ExtACBuilderCoupling;
67177
82713
class ExtACSyntaxCoupling;
67178
82714
class ExtACTree;
67179
82715
class ExtACKeywords;
67180
 
class WinAsm;
67181
 
class WinDeclSpecs;
67182
 
class WinMemberExplSpec;
67183
 
class WinTypeKeywords;
 
82716
class ExtGnu;
67184
82717
class PragmaOnceUnitState;
67185
82718
class PragmaOnce;
67186
 
class CCExprResolve;
67187
 
class CExprResolve;
67188
 
namespace Puma {
67189
 
 
67190
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82719
class CMatchSyntax;
 
82720
namespace Puma {
 
82721
 
 
82722
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82723
 
 
82724
#line 82725 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82725
} // closed Puma
 
82726
 
 
82727
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82728
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82729
#include "CCExprResolveH.ah"
 
82730
#endif
 
82731
namespace Puma {
 
82732
 
 
82733
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82734
 
 
82735
#line 82736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82736
} // closed Puma
 
82737
 
 
82738
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82739
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82740
#include "CExprResolveH.ah"
 
82741
#endif
 
82742
namespace Puma {
 
82743
 
 
82744
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67191
82745
class CT_CastExpr : public CT_Expression {
67192
 
#line 67193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82746
#line 82747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82747
  friend class ::CCExprResolve;
 
82748
  friend class ::CExprResolve;
67193
82749
  friend class ::WinIfExists;
67194
82750
  friend class ::WinImportHandler;
67195
82751
  friend class ::WinMacros;
67196
 
  friend class ::CMatchSyntax;
67197
 
  friend class ::ExtGnu;
 
82752
  friend class ::WinAsm;
 
82753
  friend class ::WinDeclSpecs;
 
82754
  friend class ::WinMemberExplSpec;
 
82755
  friend class ::WinTypeKeywords;
 
82756
  friend class ::WinFriend;
67198
82757
  friend class ::ExtAC;
67199
82758
  friend class ::ExtACBuilderCoupling;
67200
82759
  friend class ::ExtACSyntaxCoupling;
67201
82760
  friend class ::ExtACTree;
67202
82761
  friend class ::ExtACKeywords;
67203
 
  friend class ::WinAsm;
67204
 
  friend class ::WinDeclSpecs;
67205
 
  friend class ::WinMemberExplSpec;
67206
 
  friend class ::WinTypeKeywords;
 
82762
  friend class ::ExtGnu;
67207
82763
  friend class ::PragmaOnceUnitState;
67208
82764
  friend class ::PragmaOnce;
67209
 
  friend class ::CCExprResolve;
67210
 
  friend class ::CExprResolve;
 
82765
  friend class ::CMatchSyntax;
67211
82766
 
67212
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82767
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67213
82768
 
67214
82769
  CTree *sons[4]; // open, type, close, expr
67215
82770
 
67216
82771
public:
 
82772
  /** Constructor.
 
82773
   *  \param o Left parenthesis of the type name.
 
82774
   *  \param t The type to cast to.
 
82775
   *  \param c Right parenthesis of the type name. 
 
82776
   *  \param e The expression to cast. */
67217
82777
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
67218
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
82778
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
82779
    AddSon (sons[2], c); AddSon (sons[3], e);
67219
82780
  }
 
82781
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67220
82782
  static const char *NodeId ();
 
82783
  /** Get the name of the node. Can be compared with NodeId(). */
67221
82784
  const char *NodeName () const { return NodeId (); }
 
82785
  /** Get the number of sons. */
67222
82786
  int Sons () const { return 4; }
 
82787
  /** Get the n-th son.
 
82788
   *  \param n The index of the son.
 
82789
   *  \return The n-th son or NULL. */
67223
82790
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
82791
  /** Replace a son.
 
82792
   *  \param old_son The son to replace.
 
82793
   *  \param new_son The new son. */
67224
82794
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67225
82795
    CTree::ReplaceSon (sons, 4, old_son, new_son);
67226
82796
  }
 
82797
  /** Get the casted expression. */
67227
82798
  CTree *Expr () const { return sons[3]; }
 
82799
  /** Get the type to cast to. */
67228
82800
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
67229
82801
   private:
67230
82802
  typedef CT_CastExpr CCExprResolveExpr;
67231
82803
 
67232
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82804
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67233
82805
 public :
67234
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82806
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67235
82807
  typedef CT_CastExpr CExprResolveExpr;
67236
82808
 
67237
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82809
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67238
82810
 public :
67239
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67240
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82811
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82812
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67241
82813
};
67242
82814
 
 
82815
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
82816
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
67243
82817
 
67244
 
#line 67245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82818
#line 82819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67245
82819
} // closed Puma
 
82820
class CCExprResolve;
 
82821
class CExprResolve;
67246
82822
class WinIfExists;
67247
82823
class WinImportHandler;
67248
82824
class WinMacros;
67249
 
class CMatchSyntax;
67250
 
class ExtGnu;
 
82825
class WinAsm;
 
82826
class WinDeclSpecs;
 
82827
class WinMemberExplSpec;
 
82828
class WinTypeKeywords;
 
82829
class WinFriend;
67251
82830
class ExtAC;
67252
82831
class ExtACBuilderCoupling;
67253
82832
class ExtACSyntaxCoupling;
67254
82833
class ExtACTree;
67255
82834
class ExtACKeywords;
67256
 
class WinAsm;
67257
 
class WinDeclSpecs;
67258
 
class WinMemberExplSpec;
67259
 
class WinTypeKeywords;
 
82835
class ExtGnu;
67260
82836
class PragmaOnceUnitState;
67261
82837
class PragmaOnce;
67262
 
class CCExprResolve;
67263
 
class CExprResolve;
67264
 
namespace Puma {
67265
 
 
67266
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82838
class CMatchSyntax;
 
82839
namespace Puma {
 
82840
 
 
82841
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82842
 
 
82843
#line 82844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82844
} // closed Puma
 
82845
 
 
82846
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82847
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82848
#include "CCExprResolveH.ah"
 
82849
#endif
 
82850
namespace Puma {
 
82851
 
 
82852
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82853
 
 
82854
#line 82855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82855
} // closed Puma
 
82856
 
 
82857
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82858
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82859
#include "CExprResolveH.ah"
 
82860
#endif
 
82861
namespace Puma {
 
82862
 
 
82863
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67267
82864
class CT_StaticCast : public CT_Expression {
67268
 
#line 67269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82865
#line 82866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82866
  friend class ::CCExprResolve;
 
82867
  friend class ::CExprResolve;
67269
82868
  friend class ::WinIfExists;
67270
82869
  friend class ::WinImportHandler;
67271
82870
  friend class ::WinMacros;
67272
 
  friend class ::CMatchSyntax;
67273
 
  friend class ::ExtGnu;
 
82871
  friend class ::WinAsm;
 
82872
  friend class ::WinDeclSpecs;
 
82873
  friend class ::WinMemberExplSpec;
 
82874
  friend class ::WinTypeKeywords;
 
82875
  friend class ::WinFriend;
67274
82876
  friend class ::ExtAC;
67275
82877
  friend class ::ExtACBuilderCoupling;
67276
82878
  friend class ::ExtACSyntaxCoupling;
67277
82879
  friend class ::ExtACTree;
67278
82880
  friend class ::ExtACKeywords;
67279
 
  friend class ::WinAsm;
67280
 
  friend class ::WinDeclSpecs;
67281
 
  friend class ::WinMemberExplSpec;
67282
 
  friend class ::WinTypeKeywords;
 
82881
  friend class ::ExtGnu;
67283
82882
  friend class ::PragmaOnceUnitState;
67284
82883
  friend class ::PragmaOnce;
67285
 
  friend class ::CCExprResolve;
67286
 
  friend class ::CExprResolve;
 
82884
  friend class ::CMatchSyntax;
67287
82885
 
67288
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82886
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67289
82887
 
67290
82888
  CTree *sons[5]; // cast, open, type, close, expr
67291
82889
 
67292
82890
public:
 
82891
  /** Constructor.
 
82892
   *  \param cst The cast operator, i.e. 'static_cast'.
 
82893
   *  \param o Left arrow bracket of the type name.
 
82894
   *  \param t The type to cast to.
 
82895
   *  \param c Right array bracket of the type name.
 
82896
   *  \param e The expression to cast. */
67293
82897
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
67294
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
82898
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
82899
    AddSon (sons[3], c); AddSon (sons[4], e);
67295
82900
  }
 
82901
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67296
82902
  static const char *NodeId ();
 
82903
  /** Get the name of the node. Can be compared with NodeId(). */
67297
82904
  const char *NodeName () const { return NodeId (); }
 
82905
  /** Get the number of sons. */
67298
82906
  int Sons () const { return 5; }
 
82907
  /** Get the n-th son.
 
82908
   *  \param n The index of the son.
 
82909
   *  \return The n-th son or NULL. */
67299
82910
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
82911
  /** Replace a son.
 
82912
   *  \param old_son The son to replace.
 
82913
   *  \param new_son The new son. */
67300
82914
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67301
82915
    CTree::ReplaceSon (sons, 5, old_son, new_son);
67302
82916
  }
 
82917
  /** Get the casted expression. */
67303
82918
  CTree *Expr () const { return sons[4]; }
 
82919
  /** Get the type to cast to. */
67304
82920
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
67305
82921
   private:
67306
82922
  typedef CT_StaticCast CCExprResolveExpr;
67307
82923
 
67308
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82924
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67309
82925
 public :
67310
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82926
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67311
82927
  typedef CT_StaticCast CExprResolveExpr;
67312
82928
 
67313
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82929
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67314
82930
 public :
67315
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67316
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82931
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82932
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67317
82933
};
67318
82934
 
 
82935
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
82936
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
67319
82937
 
67320
 
#line 67321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82938
#line 82939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67321
82939
} // closed Puma
 
82940
class CCExprResolve;
 
82941
class CExprResolve;
67322
82942
class WinIfExists;
67323
82943
class WinImportHandler;
67324
82944
class WinMacros;
67325
 
class CMatchSyntax;
67326
 
class ExtGnu;
 
82945
class WinAsm;
 
82946
class WinDeclSpecs;
 
82947
class WinMemberExplSpec;
 
82948
class WinTypeKeywords;
 
82949
class WinFriend;
67327
82950
class ExtAC;
67328
82951
class ExtACBuilderCoupling;
67329
82952
class ExtACSyntaxCoupling;
67330
82953
class ExtACTree;
67331
82954
class ExtACKeywords;
67332
 
class WinAsm;
67333
 
class WinDeclSpecs;
67334
 
class WinMemberExplSpec;
67335
 
class WinTypeKeywords;
 
82955
class ExtGnu;
67336
82956
class PragmaOnceUnitState;
67337
82957
class PragmaOnce;
67338
 
class CCExprResolve;
67339
 
class CExprResolve;
67340
 
namespace Puma {
67341
 
 
67342
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82958
class CMatchSyntax;
 
82959
namespace Puma {
 
82960
 
 
82961
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82962
 
 
82963
#line 82964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82964
} // closed Puma
 
82965
 
 
82966
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82967
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82968
#include "CCExprResolveH.ah"
 
82969
#endif
 
82970
namespace Puma {
 
82971
 
 
82972
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82973
 
 
82974
#line 82975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82975
} // closed Puma
 
82976
 
 
82977
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82978
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82979
#include "CExprResolveH.ah"
 
82980
#endif
 
82981
namespace Puma {
 
82982
 
 
82983
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67343
82984
class CT_ConstCast : public CT_StaticCast {
67344
 
#line 67345 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
82985
#line 82986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
82986
  friend class ::CCExprResolve;
 
82987
  friend class ::CExprResolve;
67345
82988
  friend class ::WinIfExists;
67346
82989
  friend class ::WinImportHandler;
67347
82990
  friend class ::WinMacros;
67348
 
  friend class ::CMatchSyntax;
67349
 
  friend class ::ExtGnu;
 
82991
  friend class ::WinAsm;
 
82992
  friend class ::WinDeclSpecs;
 
82993
  friend class ::WinMemberExplSpec;
 
82994
  friend class ::WinTypeKeywords;
 
82995
  friend class ::WinFriend;
67350
82996
  friend class ::ExtAC;
67351
82997
  friend class ::ExtACBuilderCoupling;
67352
82998
  friend class ::ExtACSyntaxCoupling;
67353
82999
  friend class ::ExtACTree;
67354
83000
  friend class ::ExtACKeywords;
67355
 
  friend class ::WinAsm;
67356
 
  friend class ::WinDeclSpecs;
67357
 
  friend class ::WinMemberExplSpec;
67358
 
  friend class ::WinTypeKeywords;
 
83001
  friend class ::ExtGnu;
67359
83002
  friend class ::PragmaOnceUnitState;
67360
83003
  friend class ::PragmaOnce;
67361
 
  friend class ::CCExprResolve;
67362
 
  friend class ::CExprResolve;
 
83004
  friend class ::CMatchSyntax;
67363
83005
 
67364
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83006
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67365
83007
 
67366
83008
public:
 
83009
  /** Constructor.
 
83010
   *  \param cst The cast operator, i.e. 'const_cast'.
 
83011
   *  \param o Left arrow bracket of the type name.
 
83012
   *  \param t The type to cast to.
 
83013
   *  \param c Right array bracket of the type name.
 
83014
   *  \param e The expression to cast. */
67367
83015
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
67368
83016
    CT_StaticCast (cst, o, t, c, e) {}
 
83017
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67369
83018
  static const char *NodeId ();
 
83019
  /** Get the name of the node. Can be compared with NodeId(). */
67370
83020
  const char *NodeName () const { return NodeId (); }
67371
83021
   private:
67372
83022
  typedef CT_ConstCast CCExprResolveExpr;
67373
83023
 
67374
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83024
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67375
83025
 public :
67376
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83026
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67377
83027
  typedef CT_ConstCast CExprResolveExpr;
67378
83028
 
67379
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83029
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67380
83030
 public :
67381
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67382
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83031
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83032
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67383
83033
};
67384
83034
 
 
83035
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
83036
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
67385
83037
 
67386
 
#line 67387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83038
#line 83039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67387
83039
} // closed Puma
 
83040
class CCExprResolve;
 
83041
class CExprResolve;
67388
83042
class WinIfExists;
67389
83043
class WinImportHandler;
67390
83044
class WinMacros;
67391
 
class CMatchSyntax;
67392
 
class ExtGnu;
 
83045
class WinAsm;
 
83046
class WinDeclSpecs;
 
83047
class WinMemberExplSpec;
 
83048
class WinTypeKeywords;
 
83049
class WinFriend;
67393
83050
class ExtAC;
67394
83051
class ExtACBuilderCoupling;
67395
83052
class ExtACSyntaxCoupling;
67396
83053
class ExtACTree;
67397
83054
class ExtACKeywords;
67398
 
class WinAsm;
67399
 
class WinDeclSpecs;
67400
 
class WinMemberExplSpec;
67401
 
class WinTypeKeywords;
 
83055
class ExtGnu;
67402
83056
class PragmaOnceUnitState;
67403
83057
class PragmaOnce;
67404
 
class CCExprResolve;
67405
 
class CExprResolve;
67406
 
namespace Puma {
67407
 
 
67408
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83058
class CMatchSyntax;
 
83059
namespace Puma {
 
83060
 
 
83061
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83062
 
 
83063
#line 83064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83064
} // closed Puma
 
83065
 
 
83066
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83067
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83068
#include "CCExprResolveH.ah"
 
83069
#endif
 
83070
namespace Puma {
 
83071
 
 
83072
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83073
 
 
83074
#line 83075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83075
} // closed Puma
 
83076
 
 
83077
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83078
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83079
#include "CExprResolveH.ah"
 
83080
#endif
 
83081
namespace Puma {
 
83082
 
 
83083
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67409
83084
class CT_ReintCast : public CT_StaticCast {
67410
 
#line 67411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83085
#line 83086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83086
  friend class ::CCExprResolve;
 
83087
  friend class ::CExprResolve;
67411
83088
  friend class ::WinIfExists;
67412
83089
  friend class ::WinImportHandler;
67413
83090
  friend class ::WinMacros;
67414
 
  friend class ::CMatchSyntax;
67415
 
  friend class ::ExtGnu;
 
83091
  friend class ::WinAsm;
 
83092
  friend class ::WinDeclSpecs;
 
83093
  friend class ::WinMemberExplSpec;
 
83094
  friend class ::WinTypeKeywords;
 
83095
  friend class ::WinFriend;
67416
83096
  friend class ::ExtAC;
67417
83097
  friend class ::ExtACBuilderCoupling;
67418
83098
  friend class ::ExtACSyntaxCoupling;
67419
83099
  friend class ::ExtACTree;
67420
83100
  friend class ::ExtACKeywords;
67421
 
  friend class ::WinAsm;
67422
 
  friend class ::WinDeclSpecs;
67423
 
  friend class ::WinMemberExplSpec;
67424
 
  friend class ::WinTypeKeywords;
 
83101
  friend class ::ExtGnu;
67425
83102
  friend class ::PragmaOnceUnitState;
67426
83103
  friend class ::PragmaOnce;
67427
 
  friend class ::CCExprResolve;
67428
 
  friend class ::CExprResolve;
 
83104
  friend class ::CMatchSyntax;
67429
83105
 
67430
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83106
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67431
83107
 
67432
83108
public:
 
83109
  /** Constructor.
 
83110
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
83111
   *  \param o Left arrow bracket of the type name.
 
83112
   *  \param t The type to cast to.
 
83113
   *  \param c Right array bracket of the type name.
 
83114
   *  \param e The expression to cast. */
67433
83115
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
67434
83116
    CT_StaticCast (cst, o, t, c, e) {}
 
83117
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67435
83118
  static const char *NodeId ();
 
83119
  /** Get the name of the node. Can be compared with NodeId(). */
67436
83120
  const char *NodeName () const { return NodeId (); }
67437
83121
   private:
67438
83122
  typedef CT_ReintCast CCExprResolveExpr;
67439
83123
 
67440
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83124
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67441
83125
 public :
67442
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83126
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67443
83127
  typedef CT_ReintCast CExprResolveExpr;
67444
83128
 
67445
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83129
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67446
83130
 public :
67447
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67448
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83131
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83132
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67449
83133
};
67450
83134
 
 
83135
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
83136
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
67451
83137
 
67452
 
#line 67453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83138
#line 83139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67453
83139
} // closed Puma
 
83140
class CCExprResolve;
 
83141
class CExprResolve;
67454
83142
class WinIfExists;
67455
83143
class WinImportHandler;
67456
83144
class WinMacros;
67457
 
class CMatchSyntax;
67458
 
class ExtGnu;
 
83145
class WinAsm;
 
83146
class WinDeclSpecs;
 
83147
class WinMemberExplSpec;
 
83148
class WinTypeKeywords;
 
83149
class WinFriend;
67459
83150
class ExtAC;
67460
83151
class ExtACBuilderCoupling;
67461
83152
class ExtACSyntaxCoupling;
67462
83153
class ExtACTree;
67463
83154
class ExtACKeywords;
67464
 
class WinAsm;
67465
 
class WinDeclSpecs;
67466
 
class WinMemberExplSpec;
67467
 
class WinTypeKeywords;
 
83155
class ExtGnu;
67468
83156
class PragmaOnceUnitState;
67469
83157
class PragmaOnce;
67470
 
class CCExprResolve;
67471
 
class CExprResolve;
67472
 
namespace Puma {
67473
 
 
67474
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83158
class CMatchSyntax;
 
83159
namespace Puma {
 
83160
 
 
83161
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83162
 
 
83163
#line 83164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83164
} // closed Puma
 
83165
 
 
83166
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83167
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83168
#include "CCExprResolveH.ah"
 
83169
#endif
 
83170
namespace Puma {
 
83171
 
 
83172
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83173
 
 
83174
#line 83175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83175
} // closed Puma
 
83176
 
 
83177
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83178
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83179
#include "CExprResolveH.ah"
 
83180
#endif
 
83181
namespace Puma {
 
83182
 
 
83183
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67475
83184
class CT_DynamicCast : public CT_StaticCast {
67476
 
#line 67477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83185
#line 83186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83186
  friend class ::CCExprResolve;
 
83187
  friend class ::CExprResolve;
67477
83188
  friend class ::WinIfExists;
67478
83189
  friend class ::WinImportHandler;
67479
83190
  friend class ::WinMacros;
67480
 
  friend class ::CMatchSyntax;
67481
 
  friend class ::ExtGnu;
 
83191
  friend class ::WinAsm;
 
83192
  friend class ::WinDeclSpecs;
 
83193
  friend class ::WinMemberExplSpec;
 
83194
  friend class ::WinTypeKeywords;
 
83195
  friend class ::WinFriend;
67482
83196
  friend class ::ExtAC;
67483
83197
  friend class ::ExtACBuilderCoupling;
67484
83198
  friend class ::ExtACSyntaxCoupling;
67485
83199
  friend class ::ExtACTree;
67486
83200
  friend class ::ExtACKeywords;
67487
 
  friend class ::WinAsm;
67488
 
  friend class ::WinDeclSpecs;
67489
 
  friend class ::WinMemberExplSpec;
67490
 
  friend class ::WinTypeKeywords;
 
83201
  friend class ::ExtGnu;
67491
83202
  friend class ::PragmaOnceUnitState;
67492
83203
  friend class ::PragmaOnce;
67493
 
  friend class ::CCExprResolve;
67494
 
  friend class ::CExprResolve;
 
83204
  friend class ::CMatchSyntax;
67495
83205
 
67496
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83206
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67497
83207
 
67498
83208
public:
 
83209
  /** Constructor.
 
83210
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
83211
   *  \param o Left arrow bracket of the type name.
 
83212
   *  \param t The type to cast to.
 
83213
   *  \param c Right array bracket of the type name.
 
83214
   *  \param e The expression to cast. */
67499
83215
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
67500
83216
    CT_StaticCast (cst, o, t, c, e) {}
 
83217
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67501
83218
  static const char *NodeId ();
 
83219
  /** Get the name of the node. Can be compared with NodeId(). */
67502
83220
  const char *NodeName () const { return NodeId (); }
67503
83221
   private:
67504
83222
  typedef CT_DynamicCast CCExprResolveExpr;
67505
83223
 
67506
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83224
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67507
83225
 public :
67508
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83226
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67509
83227
  typedef CT_DynamicCast CExprResolveExpr;
67510
83228
 
67511
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83229
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67512
83230
 public :
67513
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67514
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83231
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83232
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67515
83233
};
67516
83234
 
 
83235
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
83236
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
83237
 *  where 1.2 is implicitely casted from float to int. */
67517
83238
 
67518
 
#line 67519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83239
#line 83240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67519
83240
} // closed Puma
 
83241
class CCExprResolve;
 
83242
class CExprResolve;
67520
83243
class WinIfExists;
67521
83244
class WinImportHandler;
67522
83245
class WinMacros;
67523
 
class CMatchSyntax;
67524
 
class ExtGnu;
 
83246
class WinAsm;
 
83247
class WinDeclSpecs;
 
83248
class WinMemberExplSpec;
 
83249
class WinTypeKeywords;
 
83250
class WinFriend;
67525
83251
class ExtAC;
67526
83252
class ExtACBuilderCoupling;
67527
83253
class ExtACSyntaxCoupling;
67528
83254
class ExtACTree;
67529
83255
class ExtACKeywords;
67530
 
class WinAsm;
67531
 
class WinDeclSpecs;
67532
 
class WinMemberExplSpec;
67533
 
class WinTypeKeywords;
 
83256
class ExtGnu;
67534
83257
class PragmaOnceUnitState;
67535
83258
class PragmaOnce;
67536
 
class CCExprResolve;
67537
 
class CExprResolve;
67538
 
namespace Puma {
67539
 
 
67540
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83259
class CMatchSyntax;
 
83260
namespace Puma {
 
83261
 
 
83262
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83263
 
 
83264
#line 83265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83265
} // closed Puma
 
83266
 
 
83267
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83268
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83269
#include "CCExprResolveH.ah"
 
83270
#endif
 
83271
namespace Puma {
 
83272
 
 
83273
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83274
 
 
83275
#line 83276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83276
} // closed Puma
 
83277
 
 
83278
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83279
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83280
#include "CExprResolveH.ah"
 
83281
#endif
 
83282
namespace Puma {
 
83283
 
 
83284
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67541
83285
class CT_ImplicitCast : public CT_Expression {
67542
 
#line 67543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83286
#line 83287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83287
  friend class ::CCExprResolve;
 
83288
  friend class ::CExprResolve;
67543
83289
  friend class ::WinIfExists;
67544
83290
  friend class ::WinImportHandler;
67545
83291
  friend class ::WinMacros;
67546
 
  friend class ::CMatchSyntax;
67547
 
  friend class ::ExtGnu;
 
83292
  friend class ::WinAsm;
 
83293
  friend class ::WinDeclSpecs;
 
83294
  friend class ::WinMemberExplSpec;
 
83295
  friend class ::WinTypeKeywords;
 
83296
  friend class ::WinFriend;
67548
83297
  friend class ::ExtAC;
67549
83298
  friend class ::ExtACBuilderCoupling;
67550
83299
  friend class ::ExtACSyntaxCoupling;
67551
83300
  friend class ::ExtACTree;
67552
83301
  friend class ::ExtACKeywords;
67553
 
  friend class ::WinAsm;
67554
 
  friend class ::WinDeclSpecs;
67555
 
  friend class ::WinMemberExplSpec;
67556
 
  friend class ::WinTypeKeywords;
 
83302
  friend class ::ExtGnu;
67557
83303
  friend class ::PragmaOnceUnitState;
67558
83304
  friend class ::PragmaOnce;
67559
 
  friend class ::CCExprResolve;
67560
 
  friend class ::CExprResolve;
 
83305
  friend class ::CMatchSyntax;
67561
83306
 
67562
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83307
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67563
83308
 
67564
83309
  CTree *_expr; // casted expression
67565
83310
 
67566
83311
public:
67567
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
83312
  /** Constructor.
 
83313
   *  \param e The expression that is implicitely casted. */
 
83314
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
83315
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67568
83316
  static const char *NodeId ();
 
83317
  /** Get the name of the node. Can be compared with NodeId(). */
67569
83318
  const char *NodeName () const { return NodeId (); }
 
83319
  /** Get the number of sons. */
67570
83320
  int Sons () const { return 1; }
 
83321
  /** Get the n-th son.
 
83322
   *  \param n The index of the son.
 
83323
   *  \return The n-th son or NULL. */
67571
83324
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
83325
  /** Get the casted expression. */
67572
83326
  CTree *Expr () const { return _expr; }
 
83327
  /** Replace a son.
 
83328
   *  \param old_son The son to replace.
 
83329
   *  \param new_son The new son. */
67573
83330
  void ReplaceSon (CTree *old_son, CTree *new_son) 
67574
 
   { if (old_son == _expr) _expr = new_son; }
 
83331
   { CTree::ReplaceSon (_expr, old_son, new_son); }
67575
83332
   private:
67576
83333
  typedef CT_ImplicitCast CCExprResolveExpr;
67577
83334
 
67578
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83335
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67579
83336
 public :
67580
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83337
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67581
83338
  typedef CT_ImplicitCast CExprResolveExpr;
67582
83339
 
67583
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83340
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67584
83341
 public :
67585
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67586
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83342
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83343
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67587
83344
};
67588
83345
 
 
83346
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
83347
 *  Tree node representing a typeid expression, e.g. typeid(X). */
67589
83348
 
67590
 
#line 67591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83349
#line 83350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67591
83350
} // closed Puma
 
83351
class CCExprResolve;
 
83352
class CExprResolve;
67592
83353
class WinIfExists;
67593
83354
class WinImportHandler;
67594
83355
class WinMacros;
67595
 
class CMatchSyntax;
67596
 
class ExtGnu;
 
83356
class WinAsm;
 
83357
class WinDeclSpecs;
 
83358
class WinMemberExplSpec;
 
83359
class WinTypeKeywords;
 
83360
class WinFriend;
67597
83361
class ExtAC;
67598
83362
class ExtACBuilderCoupling;
67599
83363
class ExtACSyntaxCoupling;
67600
83364
class ExtACTree;
67601
83365
class ExtACKeywords;
67602
 
class WinAsm;
67603
 
class WinDeclSpecs;
67604
 
class WinMemberExplSpec;
67605
 
class WinTypeKeywords;
 
83366
class ExtGnu;
67606
83367
class PragmaOnceUnitState;
67607
83368
class PragmaOnce;
67608
 
class CCExprResolve;
67609
 
class CExprResolve;
67610
 
namespace Puma {
67611
 
 
67612
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83369
class CMatchSyntax;
 
83370
namespace Puma {
 
83371
 
 
83372
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83373
 
 
83374
#line 83375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83375
} // closed Puma
 
83376
 
 
83377
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83378
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83379
#include "CCExprResolveH.ah"
 
83380
#endif
 
83381
namespace Puma {
 
83382
 
 
83383
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83384
 
 
83385
#line 83386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83386
} // closed Puma
 
83387
 
 
83388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83390
#include "CExprResolveH.ah"
 
83391
#endif
 
83392
namespace Puma {
 
83393
 
 
83394
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67613
83395
class CT_TypeidExpr : public CT_Expression {
67614
 
#line 67615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83396
#line 83397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83397
  friend class ::CCExprResolve;
 
83398
  friend class ::CExprResolve;
67615
83399
  friend class ::WinIfExists;
67616
83400
  friend class ::WinImportHandler;
67617
83401
  friend class ::WinMacros;
67618
 
  friend class ::CMatchSyntax;
67619
 
  friend class ::ExtGnu;
 
83402
  friend class ::WinAsm;
 
83403
  friend class ::WinDeclSpecs;
 
83404
  friend class ::WinMemberExplSpec;
 
83405
  friend class ::WinTypeKeywords;
 
83406
  friend class ::WinFriend;
67620
83407
  friend class ::ExtAC;
67621
83408
  friend class ::ExtACBuilderCoupling;
67622
83409
  friend class ::ExtACSyntaxCoupling;
67623
83410
  friend class ::ExtACTree;
67624
83411
  friend class ::ExtACKeywords;
67625
 
  friend class ::WinAsm;
67626
 
  friend class ::WinDeclSpecs;
67627
 
  friend class ::WinMemberExplSpec;
67628
 
  friend class ::WinTypeKeywords;
 
83412
  friend class ::ExtGnu;
67629
83413
  friend class ::PragmaOnceUnitState;
67630
83414
  friend class ::PragmaOnce;
67631
 
  friend class ::CCExprResolve;
67632
 
  friend class ::CExprResolve;
 
83415
  friend class ::CMatchSyntax;
67633
83416
 
67634
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83417
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67635
83418
 
67636
83419
  CTree *sons[4]; // typeid, open, type_id/expr, close
67637
83420
 
67638
83421
public:
 
83422
  /** Constructor.
 
83423
   *  \param tid The 'typeid' operator.
 
83424
   *  \param o The left parenthesis of the type name or expression.
 
83425
   *  \param e The expression or type name for which to get the type identifier.
 
83426
   *  \param c The right parenthesis of the type name or expression. */
67639
83427
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
67640
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
83428
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
83429
    AddSon (sons[2], e); AddSon (sons[3], c);
67641
83430
  }
 
83431
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67642
83432
  static const char *NodeId ();
 
83433
  /** Get the name of the node. Can be compared with NodeId(). */
67643
83434
  const char *NodeName () const { return NodeId (); }
 
83435
  /** Get the number of sons. */
67644
83436
  int Sons () const { return 4; }
 
83437
  /** Get the n-th son.
 
83438
   *  \param n The index of the son.
 
83439
   *  \return The n-th son or NULL. */
67645
83440
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
83441
  /** Replace a son.
 
83442
   *  \param old_son The son to replace.
 
83443
   *  \param new_son The new son. */
67646
83444
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67647
83445
    CTree::ReplaceSon (sons, 4, old_son, new_son);
67648
83446
  }
 
83447
  /** Get the typeid argument, i.e. the expression or type name for
 
83448
   *  which to get the type identifier. */
67649
83449
  CTree *Arg () const { return sons[2]; }
67650
83450
   private:
67651
83451
  typedef CT_TypeidExpr CCExprResolveExpr;
67652
83452
 
67653
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83453
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67654
83454
 public :
67655
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83455
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67656
83456
  typedef CT_TypeidExpr CExprResolveExpr;
67657
83457
 
67658
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83458
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67659
83459
 public :
67660
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67661
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83460
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83461
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67662
83462
};
67663
83463
 
 
83464
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
83465
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
67664
83466
 
67665
 
#line 67666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83467
#line 83468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67666
83468
} // closed Puma
 
83469
class CCExprResolve;
 
83470
class CExprResolve;
67667
83471
class WinIfExists;
67668
83472
class WinImportHandler;
67669
83473
class WinMacros;
67670
 
class CMatchSyntax;
67671
 
class ExtGnu;
 
83474
class WinAsm;
 
83475
class WinDeclSpecs;
 
83476
class WinMemberExplSpec;
 
83477
class WinTypeKeywords;
 
83478
class WinFriend;
67672
83479
class ExtAC;
67673
83480
class ExtACBuilderCoupling;
67674
83481
class ExtACSyntaxCoupling;
67675
83482
class ExtACTree;
67676
83483
class ExtACKeywords;
67677
 
class WinAsm;
67678
 
class WinDeclSpecs;
67679
 
class WinMemberExplSpec;
67680
 
class WinTypeKeywords;
 
83484
class ExtGnu;
67681
83485
class PragmaOnceUnitState;
67682
83486
class PragmaOnce;
67683
 
class CCExprResolve;
67684
 
class CExprResolve;
67685
 
namespace Puma {
67686
 
 
67687
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83487
class CMatchSyntax;
 
83488
namespace Puma {
 
83489
 
 
83490
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83491
 
 
83492
#line 83493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83493
} // closed Puma
 
83494
 
 
83495
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83496
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83497
#include "CCExprResolveH.ah"
 
83498
#endif
 
83499
namespace Puma {
 
83500
 
 
83501
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83502
 
 
83503
#line 83504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83504
} // closed Puma
 
83505
 
 
83506
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83507
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83508
#include "CExprResolveH.ah"
 
83509
#endif
 
83510
namespace Puma {
 
83511
 
 
83512
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67688
83513
class CT_SizeofExpr : public CT_Expression {
67689
 
#line 67690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83514
#line 83515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83515
  friend class ::CCExprResolve;
 
83516
  friend class ::CExprResolve;
67690
83517
  friend class ::WinIfExists;
67691
83518
  friend class ::WinImportHandler;
67692
83519
  friend class ::WinMacros;
67693
 
  friend class ::CMatchSyntax;
67694
 
  friend class ::ExtGnu;
 
83520
  friend class ::WinAsm;
 
83521
  friend class ::WinDeclSpecs;
 
83522
  friend class ::WinMemberExplSpec;
 
83523
  friend class ::WinTypeKeywords;
 
83524
  friend class ::WinFriend;
67695
83525
  friend class ::ExtAC;
67696
83526
  friend class ::ExtACBuilderCoupling;
67697
83527
  friend class ::ExtACSyntaxCoupling;
67698
83528
  friend class ::ExtACTree;
67699
83529
  friend class ::ExtACKeywords;
67700
 
  friend class ::WinAsm;
67701
 
  friend class ::WinDeclSpecs;
67702
 
  friend class ::WinMemberExplSpec;
67703
 
  friend class ::WinTypeKeywords;
 
83530
  friend class ::ExtGnu;
67704
83531
  friend class ::PragmaOnceUnitState;
67705
83532
  friend class ::PragmaOnce;
67706
 
  friend class ::CCExprResolve;
67707
 
  friend class ::CExprResolve;
 
83533
  friend class ::CMatchSyntax;
67708
83534
 
67709
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83535
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67710
83536
 
67711
83537
  CTree *sons[5]; // key, open, type, close, expr
67712
83538
 
67713
83539
public:
 
83540
  /** Constructor.
 
83541
   *  \param k The 'sizeof' keyword.
 
83542
   *  \param o Left parenthesis around the type name.
 
83543
   *  \param t The type from which to get the size.
 
83544
   *  \param c Right parenthesis around the type name. */
67714
83545
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
67715
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
83546
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
83547
    AddSon (sons[3], c); AddSon (sons[4], 0);
67716
83548
  }
 
83549
  /** Constructor.
 
83550
   *  \param k The 'sizeof' keyword.
 
83551
   *  \param e The expression from which to get the size. */
67717
83552
  CT_SizeofExpr (CTree *k, CTree *e) {
67718
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
83553
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
83554
    AddSon (sons[3], 0); AddSon (sons[4], e);
67719
83555
  }
 
83556
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67720
83557
  static const char *NodeId ();
 
83558
  /** Get the name of the node. Can be compared with NodeId(). */
67721
83559
  const char *NodeName () const { return NodeId (); }
 
83560
  /** Get the number of sons. */
67722
83561
  int Sons () const { return CTree::Sons (sons, 5); }
 
83562
  /** Get the n-th son.
 
83563
   *  \param n The index of the son.
 
83564
   *  \return The n-th son or NULL. */
67723
83565
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
83566
  /** Replace a son.
 
83567
   *  \param old_son The son to replace.
 
83568
   *  \param new_son The new son. */
67724
83569
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67725
83570
    CTree::ReplaceSon (sons, 5, old_son, new_son);
67726
83571
  }
 
83572
  /** Get the expression. */
67727
83573
  CTree *Expr () const { return sons[4]; }
 
83574
  /** Get the type name. */
67728
83575
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
67729
83576
   private:
67730
83577
  typedef CT_SizeofExpr CCExprResolveExpr;
67731
83578
 
67732
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83579
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67733
83580
 public :
67734
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83581
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67735
83582
  typedef CT_SizeofExpr CExprResolveExpr;
67736
83583
 
67737
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83584
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67738
83585
 public :
67739
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67740
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83586
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83587
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67741
83588
};
67742
83589
 
 
83590
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
83591
 *  Tree node representing an index designator, i.e. [1]. */
67743
83592
 
67744
 
#line 67745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83593
#line 83594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67745
83594
} // closed Puma
 
83595
class CCExprResolve;
 
83596
class CExprResolve;
67746
83597
class WinIfExists;
67747
83598
class WinImportHandler;
67748
83599
class WinMacros;
67749
 
class CMatchSyntax;
67750
 
class ExtGnu;
 
83600
class WinAsm;
 
83601
class WinDeclSpecs;
 
83602
class WinMemberExplSpec;
 
83603
class WinTypeKeywords;
 
83604
class WinFriend;
67751
83605
class ExtAC;
67752
83606
class ExtACBuilderCoupling;
67753
83607
class ExtACSyntaxCoupling;
67754
83608
class ExtACTree;
67755
83609
class ExtACKeywords;
67756
 
class WinAsm;
67757
 
class WinDeclSpecs;
67758
 
class WinMemberExplSpec;
67759
 
class WinTypeKeywords;
 
83610
class ExtGnu;
67760
83611
class PragmaOnceUnitState;
67761
83612
class PragmaOnce;
67762
 
class CCExprResolve;
67763
 
class CExprResolve;
67764
 
namespace Puma {
67765
 
 
67766
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83613
class CMatchSyntax;
 
83614
namespace Puma {
 
83615
 
 
83616
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83617
 
 
83618
#line 83619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83619
} // closed Puma
 
83620
 
 
83621
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83622
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83623
#include "CCExprResolveH.ah"
 
83624
#endif
 
83625
namespace Puma {
 
83626
 
 
83627
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83628
 
 
83629
#line 83630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83630
} // closed Puma
 
83631
 
 
83632
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83633
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83634
#include "CExprResolveH.ah"
 
83635
#endif
 
83636
namespace Puma {
 
83637
 
 
83638
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67767
83639
class CT_IndexDesignator : public CT_Expression {
67768
 
#line 67769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83640
#line 83641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83641
  friend class ::CCExprResolve;
 
83642
  friend class ::CExprResolve;
67769
83643
  friend class ::WinIfExists;
67770
83644
  friend class ::WinImportHandler;
67771
83645
  friend class ::WinMacros;
67772
 
  friend class ::CMatchSyntax;
67773
 
  friend class ::ExtGnu;
 
83646
  friend class ::WinAsm;
 
83647
  friend class ::WinDeclSpecs;
 
83648
  friend class ::WinMemberExplSpec;
 
83649
  friend class ::WinTypeKeywords;
 
83650
  friend class ::WinFriend;
67774
83651
  friend class ::ExtAC;
67775
83652
  friend class ::ExtACBuilderCoupling;
67776
83653
  friend class ::ExtACSyntaxCoupling;
67777
83654
  friend class ::ExtACTree;
67778
83655
  friend class ::ExtACKeywords;
67779
 
  friend class ::WinAsm;
67780
 
  friend class ::WinDeclSpecs;
67781
 
  friend class ::WinMemberExplSpec;
67782
 
  friend class ::WinTypeKeywords;
 
83656
  friend class ::ExtGnu;
67783
83657
  friend class ::PragmaOnceUnitState;
67784
83658
  friend class ::PragmaOnce;
67785
 
  friend class ::CCExprResolve;
67786
 
  friend class ::CExprResolve;
 
83659
  friend class ::CMatchSyntax;
67787
83660
 
67788
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83661
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67789
83662
 
67790
83663
  CTree *sons[3]; // open, index, close
67791
83664
 
67792
83665
public:
 
83666
  /** Constructor.
 
83667
   *  \param o Left bracket of the index designator.
 
83668
   *  \param i The index expression.
 
83669
   *  \param c Right bracket of the index designator. */
67793
83670
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
67794
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
83671
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
67795
83672
  }
 
83673
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67796
83674
  static const char *NodeId ();
 
83675
  /** Get the name of the node. Can be compared with NodeId(). */
67797
83676
  const char *NodeName () const { return NodeId (); }
 
83677
  /** Get the number of sons. */
67798
83678
  int Sons () const { return 3; }
 
83679
  /** Get the n-th son.
 
83680
   *  \param n The index of the son.
 
83681
   *  \return The n-th son or NULL. */
67799
83682
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
83683
  /** Replace a son.
 
83684
   *  \param old_son The son to replace.
 
83685
   *  \param new_son The new son. */
67800
83686
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67801
83687
    CTree::ReplaceSon (sons, 3, old_son, new_son);
67802
83688
  }
67803
83689
   private:
67804
83690
  typedef CT_IndexDesignator CCExprResolveExpr;
67805
83691
 
67806
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83692
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67807
83693
 public :
67808
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83694
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67809
83695
  typedef CT_IndexDesignator CExprResolveExpr;
67810
83696
 
67811
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83697
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67812
83698
 public :
67813
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67814
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83699
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83700
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67815
83701
};
67816
83702
 
 
83703
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
83704
 *  Tree node representing a member designator, e.g. .a. */
67817
83705
 
67818
 
#line 67819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83706
#line 83707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67819
83707
} // closed Puma
 
83708
class CCExprResolve;
 
83709
class CExprResolve;
67820
83710
class WinIfExists;
67821
83711
class WinImportHandler;
67822
83712
class WinMacros;
67823
 
class CMatchSyntax;
67824
 
class ExtGnu;
 
83713
class WinAsm;
 
83714
class WinDeclSpecs;
 
83715
class WinMemberExplSpec;
 
83716
class WinTypeKeywords;
 
83717
class WinFriend;
67825
83718
class ExtAC;
67826
83719
class ExtACBuilderCoupling;
67827
83720
class ExtACSyntaxCoupling;
67828
83721
class ExtACTree;
67829
83722
class ExtACKeywords;
67830
 
class WinAsm;
67831
 
class WinDeclSpecs;
67832
 
class WinMemberExplSpec;
67833
 
class WinTypeKeywords;
 
83723
class ExtGnu;
67834
83724
class PragmaOnceUnitState;
67835
83725
class PragmaOnce;
67836
 
class CCExprResolve;
67837
 
class CExprResolve;
67838
 
namespace Puma {
67839
 
 
67840
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83726
class CMatchSyntax;
 
83727
namespace Puma {
 
83728
 
 
83729
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83730
 
 
83731
#line 83732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83732
} // closed Puma
 
83733
 
 
83734
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83735
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83736
#include "CCExprResolveH.ah"
 
83737
#endif
 
83738
namespace Puma {
 
83739
 
 
83740
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83741
 
 
83742
#line 83743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83743
} // closed Puma
 
83744
 
 
83745
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83746
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83747
#include "CExprResolveH.ah"
 
83748
#endif
 
83749
namespace Puma {
 
83750
 
 
83751
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67841
83752
class CT_MembDesignator : public CT_Expression {
67842
 
#line 67843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83753
#line 83754 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83754
  friend class ::CCExprResolve;
 
83755
  friend class ::CExprResolve;
67843
83756
  friend class ::WinIfExists;
67844
83757
  friend class ::WinImportHandler;
67845
83758
  friend class ::WinMacros;
67846
 
  friend class ::CMatchSyntax;
67847
 
  friend class ::ExtGnu;
 
83759
  friend class ::WinAsm;
 
83760
  friend class ::WinDeclSpecs;
 
83761
  friend class ::WinMemberExplSpec;
 
83762
  friend class ::WinTypeKeywords;
 
83763
  friend class ::WinFriend;
67848
83764
  friend class ::ExtAC;
67849
83765
  friend class ::ExtACBuilderCoupling;
67850
83766
  friend class ::ExtACSyntaxCoupling;
67851
83767
  friend class ::ExtACTree;
67852
83768
  friend class ::ExtACKeywords;
67853
 
  friend class ::WinAsm;
67854
 
  friend class ::WinDeclSpecs;
67855
 
  friend class ::WinMemberExplSpec;
67856
 
  friend class ::WinTypeKeywords;
 
83769
  friend class ::ExtGnu;
67857
83770
  friend class ::PragmaOnceUnitState;
67858
83771
  friend class ::PragmaOnce;
67859
 
  friend class ::CCExprResolve;
67860
 
  friend class ::CExprResolve;
 
83772
  friend class ::CMatchSyntax;
67861
83773
 
67862
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83774
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67863
83775
 
67864
83776
  CTree *sons[2]; // dot, member
67865
83777
 
67866
83778
public:
67867
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
83779
  /** Constructor.
 
83780
   *  \param d The dot before the member name.
 
83781
   *  \param m The member name. */
 
83782
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
83783
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67868
83784
  static const char *NodeId ();
 
83785
  /** Get the name of the node. Can be compared with NodeId(). */
67869
83786
  const char *NodeName () const { return NodeId (); }
 
83787
  /** Get the number of sons. */
67870
83788
  int Sons () const { return 2; }
 
83789
  /** Get the n-th son.
 
83790
   *  \param n The index of the son.
 
83791
   *  \return The n-th son or NULL. */
67871
83792
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
83793
  /** Replace a son.
 
83794
   *  \param old_son The son to replace.
 
83795
   *  \param new_son The new son. */
67872
83796
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67873
83797
    CTree::ReplaceSon (sons, 2, old_son, new_son);
67874
83798
  }
67875
83799
   private:
67876
83800
  typedef CT_MembDesignator CCExprResolveExpr;
67877
83801
 
67878
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83802
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67879
83803
 public :
67880
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83804
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67881
83805
  typedef CT_MembDesignator CExprResolveExpr;
67882
83806
 
67883
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83807
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67884
83808
 public :
67885
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67886
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83809
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83810
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67887
83811
};
67888
83812
 
 
83813
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
83814
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
67889
83815
 
67890
 
#line 67891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83816
#line 83817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67891
83817
} // closed Puma
 
83818
class CCExprResolve;
 
83819
class CExprResolve;
67892
83820
class WinIfExists;
67893
83821
class WinImportHandler;
67894
83822
class WinMacros;
67895
 
class CMatchSyntax;
67896
 
class ExtGnu;
 
83823
class WinAsm;
 
83824
class WinDeclSpecs;
 
83825
class WinMemberExplSpec;
 
83826
class WinTypeKeywords;
 
83827
class WinFriend;
67897
83828
class ExtAC;
67898
83829
class ExtACBuilderCoupling;
67899
83830
class ExtACSyntaxCoupling;
67900
83831
class ExtACTree;
67901
83832
class ExtACKeywords;
67902
 
class WinAsm;
67903
 
class WinDeclSpecs;
67904
 
class WinMemberExplSpec;
67905
 
class WinTypeKeywords;
 
83833
class ExtGnu;
67906
83834
class PragmaOnceUnitState;
67907
83835
class PragmaOnce;
67908
 
class CCExprResolve;
67909
 
class CExprResolve;
 
83836
class CMatchSyntax;
67910
83837
namespace Puma {
67911
83838
 
67912
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83839
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67913
83840
class CT_DesignatorSeq : public CT_List, public CSemValue {
67914
 
#line 67915 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83841
#line 83842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83842
  friend class ::CCExprResolve;
 
83843
  friend class ::CExprResolve;
67915
83844
  friend class ::WinIfExists;
67916
83845
  friend class ::WinImportHandler;
67917
83846
  friend class ::WinMacros;
67918
 
  friend class ::CMatchSyntax;
67919
 
  friend class ::ExtGnu;
 
83847
  friend class ::WinAsm;
 
83848
  friend class ::WinDeclSpecs;
 
83849
  friend class ::WinMemberExplSpec;
 
83850
  friend class ::WinTypeKeywords;
 
83851
  friend class ::WinFriend;
67920
83852
  friend class ::ExtAC;
67921
83853
  friend class ::ExtACBuilderCoupling;
67922
83854
  friend class ::ExtACSyntaxCoupling;
67923
83855
  friend class ::ExtACTree;
67924
83856
  friend class ::ExtACKeywords;
67925
 
  friend class ::WinAsm;
67926
 
  friend class ::WinDeclSpecs;
67927
 
  friend class ::WinMemberExplSpec;
67928
 
  friend class ::WinTypeKeywords;
 
83857
  friend class ::ExtGnu;
67929
83858
  friend class ::PragmaOnceUnitState;
67930
83859
  friend class ::PragmaOnce;
67931
 
  friend class ::CCExprResolve;
67932
 
  friend class ::CExprResolve;
 
83860
  friend class ::CMatchSyntax;
67933
83861
 
67934
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83862
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67935
83863
 
67936
83864
public:
 
83865
  /** Constructor.
 
83866
   *  \param size Initial number of designators. */
67937
83867
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
83868
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67938
83869
  static const char *NodeId ();
 
83870
  /** Get the name of the node. Can be compared with NodeId(). */
67939
83871
  const char *NodeName () const { return NodeId (); }
67940
83872
 
 
83873
  /** Get the type of the entity to initialize. */
67941
83874
  CTypeInfo *Type () const { return type; }
 
83875
  /** Get the value of the entity to initialize. */
67942
83876
  CExprValue *Value () const { return value; }
 
83877
  /** Get the semantic value object. */
67943
83878
  CSemValue *SemValue () const { return (CSemValue*)this; }
67944
83879
};
67945
83880
 
67949
83884
/*                                                                           */
67950
83885
/*****************************************************************************/
67951
83886
 
 
83887
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
83888
 *  Base class for all tree nodes representing declaration specifiers. */
67952
83889
 
67953
 
#line 67954 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83890
#line 83891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
67954
83891
} // closed Puma
 
83892
class CCExprResolve;
 
83893
class CExprResolve;
67955
83894
class WinIfExists;
67956
83895
class WinImportHandler;
67957
83896
class WinMacros;
67958
 
class CMatchSyntax;
67959
 
class ExtGnu;
 
83897
class WinAsm;
 
83898
class WinDeclSpecs;
 
83899
class WinMemberExplSpec;
 
83900
class WinTypeKeywords;
 
83901
class WinFriend;
67960
83902
class ExtAC;
67961
83903
class ExtACBuilderCoupling;
67962
83904
class ExtACSyntaxCoupling;
67963
83905
class ExtACTree;
67964
83906
class ExtACKeywords;
67965
 
class WinAsm;
67966
 
class WinDeclSpecs;
67967
 
class WinMemberExplSpec;
67968
 
class WinTypeKeywords;
 
83907
class ExtGnu;
67969
83908
class PragmaOnceUnitState;
67970
83909
class PragmaOnce;
67971
 
class CCExprResolve;
67972
 
class CExprResolve;
 
83910
class CMatchSyntax;
67973
83911
namespace Puma {
67974
83912
 
67975
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83913
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67976
83914
class CT_DeclSpec : public CTree {
67977
 
#line 67978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83915
#line 83916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83916
  friend class ::CCExprResolve;
 
83917
  friend class ::CExprResolve;
67978
83918
  friend class ::WinIfExists;
67979
83919
  friend class ::WinImportHandler;
67980
83920
  friend class ::WinMacros;
67981
 
  friend class ::CMatchSyntax;
67982
 
  friend class ::ExtGnu;
 
83921
  friend class ::WinAsm;
 
83922
  friend class ::WinDeclSpecs;
 
83923
  friend class ::WinMemberExplSpec;
 
83924
  friend class ::WinTypeKeywords;
 
83925
  friend class ::WinFriend;
67983
83926
  friend class ::ExtAC;
67984
83927
  friend class ::ExtACBuilderCoupling;
67985
83928
  friend class ::ExtACSyntaxCoupling;
67986
83929
  friend class ::ExtACTree;
67987
83930
  friend class ::ExtACKeywords;
67988
 
  friend class ::WinAsm;
67989
 
  friend class ::WinDeclSpecs;
67990
 
  friend class ::WinMemberExplSpec;
67991
 
  friend class ::WinTypeKeywords;
 
83931
  friend class ::ExtGnu;
67992
83932
  friend class ::PragmaOnceUnitState;
67993
83933
  friend class ::PragmaOnce;
67994
 
  friend class ::CCExprResolve;
67995
 
  friend class ::CExprResolve;
 
83934
  friend class ::CMatchSyntax;
67996
83935
 
67997
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83936
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67998
83937
 
67999
83938
protected:
 
83939
  /** Constructor. */
68000
83940
  CT_DeclSpec () {}
68001
83941
};
68002
83942
 
 
83943
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
83944
 *  Tree node representing a primitive declaration specifier. */
68003
83945
 
68004
 
#line 68005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83946
#line 83947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68005
83947
} // closed Puma
 
83948
class CCExprResolve;
 
83949
class CExprResolve;
68006
83950
class WinIfExists;
68007
83951
class WinImportHandler;
68008
83952
class WinMacros;
68009
 
class CMatchSyntax;
68010
 
class ExtGnu;
 
83953
class WinAsm;
 
83954
class WinDeclSpecs;
 
83955
class WinMemberExplSpec;
 
83956
class WinTypeKeywords;
 
83957
class WinFriend;
68011
83958
class ExtAC;
68012
83959
class ExtACBuilderCoupling;
68013
83960
class ExtACSyntaxCoupling;
68014
83961
class ExtACTree;
68015
83962
class ExtACKeywords;
68016
 
class WinAsm;
68017
 
class WinDeclSpecs;
68018
 
class WinMemberExplSpec;
68019
 
class WinTypeKeywords;
 
83963
class ExtGnu;
68020
83964
class PragmaOnceUnitState;
68021
83965
class PragmaOnce;
68022
 
class CCExprResolve;
68023
 
class CExprResolve;
 
83966
class CMatchSyntax;
68024
83967
namespace Puma {
68025
83968
 
68026
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83969
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68027
83970
class CT_PrimDeclSpec : public CT_DeclSpec {
68028
 
#line 68029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
83971
#line 83972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
83972
  friend class ::CCExprResolve;
 
83973
  friend class ::CExprResolve;
68029
83974
  friend class ::WinIfExists;
68030
83975
  friend class ::WinImportHandler;
68031
83976
  friend class ::WinMacros;
68032
 
  friend class ::CMatchSyntax;
68033
 
  friend class ::ExtGnu;
 
83977
  friend class ::WinAsm;
 
83978
  friend class ::WinDeclSpecs;
 
83979
  friend class ::WinMemberExplSpec;
 
83980
  friend class ::WinTypeKeywords;
 
83981
  friend class ::WinFriend;
68034
83982
  friend class ::ExtAC;
68035
83983
  friend class ::ExtACBuilderCoupling;
68036
83984
  friend class ::ExtACSyntaxCoupling;
68037
83985
  friend class ::ExtACTree;
68038
83986
  friend class ::ExtACKeywords;
68039
 
  friend class ::WinAsm;
68040
 
  friend class ::WinDeclSpecs;
68041
 
  friend class ::WinMemberExplSpec;
68042
 
  friend class ::WinTypeKeywords;
 
83987
  friend class ::ExtGnu;
68043
83988
  friend class ::PragmaOnceUnitState;
68044
83989
  friend class ::PragmaOnce;
68045
 
  friend class ::CCExprResolve;
68046
 
  friend class ::CExprResolve;
 
83990
  friend class ::CMatchSyntax;
68047
83991
 
68048
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83992
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68049
83993
 
68050
83994
public:
68051
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
68052
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
68053
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
68054
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
68055
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
68056
 
              // AspectC++ specific type specifier
68057
 
              PDS_UNKNOWN_T,
68058
 
              // Win specific declaration specifiers
68059
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
68060
 
              PDS_UNKNOWN, PDS_NUM };
 
83995
  /** Declaration specifier types. */
 
83996
  enum Type { 
 
83997
    PDS_FRIEND,    /** friend */
 
83998
    PDS_TYPEDEF,   /** typedef */
 
83999
    PDS_AUTO,      /** auto */
 
84000
    PDS_REGISTER,  /** register */
 
84001
    PDS_STATIC,    /** static */
 
84002
    PDS_EXTERN,    /** extern */
 
84003
    PDS_MUTABLE,   /** mutable */
 
84004
    PDS_INLINE,    /** inline */
 
84005
    PDS_VIRTUAL,   /** virtual */
 
84006
    PDS_EXPLICIT,  /** explicit */
 
84007
    PDS_CONST,     /** const */
 
84008
    PDS_VOLATILE,  /** volatile */
 
84009
    PDS_RESTRICT,  /** restrict */
 
84010
    PDS_CHAR,      /** char */
 
84011
    PDS_WCHAR_T,   /** wchar_t */
 
84012
    PDS_BOOL,      /** bool */
 
84013
    PDS_SHORT,     /** short */
 
84014
    PDS_INT,       /** int */
 
84015
    PDS_LONG,      /** long */
 
84016
    PDS_SIGNED,    /** signed */
 
84017
    PDS_UNSIGNED,  /** unsigned */
 
84018
    PDS_FLOAT,     /** float */
 
84019
    PDS_DOUBLE,    /** double */
 
84020
    PDS_VOID,      /** void */
 
84021
    // AspectC++ specific type specifier
 
84022
    PDS_UNKNOWN_T, /** unknown_t */
 
84023
    // Win specific declaration specifiers
 
84024
    PDS_CDECL,     /** __cdecl */
 
84025
    PDS_STDCALL,   /** __stdcall */
 
84026
    PDS_FASTCALL,  /** __fastcall */
 
84027
    PDS_INT64,     /** __int64 */
 
84028
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
84029
    PDS_NUM        /** Number of declaration specifier types. */
 
84030
  };
68061
84031
 
68062
84032
private:
68063
84033
  Type _type;
68064
 
  CT_Token *_token;
 
84034
  CTree *_token; // has to be a CT_Token
68065
84035
 
68066
84036
  void determine_type ();
68067
84037
 
68068
84038
public:
68069
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
84039
  /** Constructor.
 
84040
   *  \param t The token containing the declaration specifier. */
 
84041
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
84042
  /** Constructor.
 
84043
   *  \param t The declaration specifier type. */
68070
84044
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
84045
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68071
84046
  static const char *NodeId ();
 
84047
  /** Get the name of the node. Can be compared with NodeId(). */
68072
84048
  const char *NodeName () const { return NodeId (); }
 
84049
  /** Get the number of sons. */
68073
84050
  int Sons () const { return _token ? 1 : 0; }
 
84051
  /** Get the n-th son.
 
84052
   *  \param n The index of the son.
 
84053
   *  \return The n-th son or NULL. */
68074
84054
  CTree *Son (int n) const 
68075
84055
   { return (n == 0) ? _token : (CTree*)0; }
 
84056
  /** Get the textual representation of the declaration specifier.
 
84057
   *  \return The string representation or " ". */
68076
84058
  const char *SpecText () const 
68077
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
84059
   { return _token ? _token->token ()->text () : " "; }
 
84060
  /** Get the declaration specifier type. */
68078
84061
  Type SpecType () const { return _type; }
 
84062
  /** Number of declaration specifier types. */
68079
84063
  static const int NumTypes = PDS_NUM;
 
84064
  /** Replace a son.
 
84065
   *  \param old_son The son to replace.
 
84066
   *  \param new_son The new son. */
 
84067
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
84068
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
84069
    determine_type ();
 
84070
  }
68080
84071
};
68081
84072
 
 
84073
/** \class CT_NamedType CTree.h Puma/CTree.h
 
84074
 *  Tree node representing a named type, e.g. (int*)a. 
 
84075
 *  where int* is a type with a generated name. */
68082
84076
 
68083
 
#line 68084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84077
#line 84078 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68084
84078
} // closed Puma
 
84079
class CCExprResolve;
 
84080
class CExprResolve;
68085
84081
class WinIfExists;
68086
84082
class WinImportHandler;
68087
84083
class WinMacros;
68088
 
class CMatchSyntax;
68089
 
class ExtGnu;
 
84084
class WinAsm;
 
84085
class WinDeclSpecs;
 
84086
class WinMemberExplSpec;
 
84087
class WinTypeKeywords;
 
84088
class WinFriend;
68090
84089
class ExtAC;
68091
84090
class ExtACBuilderCoupling;
68092
84091
class ExtACSyntaxCoupling;
68093
84092
class ExtACTree;
68094
84093
class ExtACKeywords;
68095
 
class WinAsm;
68096
 
class WinDeclSpecs;
68097
 
class WinMemberExplSpec;
68098
 
class WinTypeKeywords;
 
84094
class ExtGnu;
68099
84095
class PragmaOnceUnitState;
68100
84096
class PragmaOnce;
68101
 
class CCExprResolve;
68102
 
class CExprResolve;
 
84097
class CMatchSyntax;
68103
84098
namespace Puma {
68104
84099
 
68105
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84100
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68106
84101
class CT_NamedType : public CT_DeclSpec, public CSemObject {
68107
 
#line 68108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84102
#line 84103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84103
  friend class ::CCExprResolve;
 
84104
  friend class ::CExprResolve;
68108
84105
  friend class ::WinIfExists;
68109
84106
  friend class ::WinImportHandler;
68110
84107
  friend class ::WinMacros;
68111
 
  friend class ::CMatchSyntax;
68112
 
  friend class ::ExtGnu;
 
84108
  friend class ::WinAsm;
 
84109
  friend class ::WinDeclSpecs;
 
84110
  friend class ::WinMemberExplSpec;
 
84111
  friend class ::WinTypeKeywords;
 
84112
  friend class ::WinFriend;
68113
84113
  friend class ::ExtAC;
68114
84114
  friend class ::ExtACBuilderCoupling;
68115
84115
  friend class ::ExtACSyntaxCoupling;
68116
84116
  friend class ::ExtACTree;
68117
84117
  friend class ::ExtACKeywords;
68118
 
  friend class ::WinAsm;
68119
 
  friend class ::WinDeclSpecs;
68120
 
  friend class ::WinMemberExplSpec;
68121
 
  friend class ::WinTypeKeywords;
 
84118
  friend class ::ExtGnu;
68122
84119
  friend class ::PragmaOnceUnitState;
68123
84120
  friend class ::PragmaOnce;
68124
 
  friend class ::CCExprResolve;
68125
 
  friend class ::CExprResolve;
 
84121
  friend class ::CMatchSyntax;
68126
84122
 
68127
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84123
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68128
84124
 
68129
84125
  CTree *sons[2]; // declspecs, declarator
68130
84126
 
68131
84127
public:
68132
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
84128
  /** Constructor.
 
84129
   *  \param dss The declaration specifier sequence of the type.
 
84130
   *  \param d The type declarator. */
 
84131
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
84132
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68133
84133
  static const char *NodeId ();
 
84134
  /** Get the name of the node. Can be compared with NodeId(). */
68134
84135
  const char *NodeName () const { return NodeId (); }
 
84136
  /** Get the number of sons. */
68135
84137
  int Sons () const { return CTree::Sons (sons, 2); }
 
84138
  /** Get the n-th son.
 
84139
   *  \param n The index of the son.
 
84140
   *  \return The n-th son or NULL. */
68136
84141
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
84142
  /** Get the declarator. */
68137
84143
  CTree *Declarator () const { return sons[1]; }
 
84144
  /** Replace a son.
 
84145
   *  \param old_son The son to replace.
 
84146
   *  \param new_son The new son. */
68138
84147
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68139
84148
    CTree::ReplaceSon (sons, 2, old_son, new_son);
68140
84149
  }
 
84150
  /** Get the semantic information object. */
68141
84151
  CSemObject *SemObject () const { return (CSemObject*)this; }
68142
84152
};
68143
84153
      
 
84154
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
84155
 *  Tree node representing a class specifier, e.g. class X. */
68144
84156
 
68145
 
#line 68146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84157
#line 84158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68146
84158
} // closed Puma
 
84159
class CCExprResolve;
 
84160
class CExprResolve;
68147
84161
class WinIfExists;
68148
84162
class WinImportHandler;
68149
84163
class WinMacros;
68150
 
class CMatchSyntax;
68151
 
class ExtGnu;
 
84164
class WinAsm;
 
84165
class WinDeclSpecs;
 
84166
class WinMemberExplSpec;
 
84167
class WinTypeKeywords;
 
84168
class WinFriend;
68152
84169
class ExtAC;
68153
84170
class ExtACBuilderCoupling;
68154
84171
class ExtACSyntaxCoupling;
68155
84172
class ExtACTree;
68156
84173
class ExtACKeywords;
68157
 
class WinAsm;
68158
 
class WinDeclSpecs;
68159
 
class WinMemberExplSpec;
68160
 
class WinTypeKeywords;
 
84174
class ExtGnu;
68161
84175
class PragmaOnceUnitState;
68162
84176
class PragmaOnce;
68163
 
class CCExprResolve;
68164
 
class CExprResolve;
 
84177
class CMatchSyntax;
68165
84178
namespace Puma {
68166
84179
 
68167
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84180
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68168
84181
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
68169
 
#line 68170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84182
#line 84183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84183
  friend class ::CCExprResolve;
 
84184
  friend class ::CExprResolve;
68170
84185
  friend class ::WinIfExists;
68171
84186
  friend class ::WinImportHandler;
68172
84187
  friend class ::WinMacros;
68173
 
  friend class ::CMatchSyntax;
68174
 
  friend class ::ExtGnu;
 
84188
  friend class ::WinAsm;
 
84189
  friend class ::WinDeclSpecs;
 
84190
  friend class ::WinMemberExplSpec;
 
84191
  friend class ::WinTypeKeywords;
 
84192
  friend class ::WinFriend;
68175
84193
  friend class ::ExtAC;
68176
84194
  friend class ::ExtACBuilderCoupling;
68177
84195
  friend class ::ExtACSyntaxCoupling;
68178
84196
  friend class ::ExtACTree;
68179
84197
  friend class ::ExtACKeywords;
68180
 
  friend class ::WinAsm;
68181
 
  friend class ::WinDeclSpecs;
68182
 
  friend class ::WinMemberExplSpec;
68183
 
  friend class ::WinTypeKeywords;
 
84198
  friend class ::ExtGnu;
68184
84199
  friend class ::PragmaOnceUnitState;
68185
84200
  friend class ::PragmaOnce;
68186
 
  friend class ::CCExprResolve;
68187
 
  friend class ::CExprResolve;
 
84201
  friend class ::CMatchSyntax;
68188
84202
 
68189
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84203
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68190
84204
 
68191
84205
  CTree *sons[2]; // key, name
68192
84206
  
68193
84207
public:
68194
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
84208
  /** Constructor.
 
84209
   *  \param k The 'class' or 'struct' keyword.
 
84210
   *  \param n The class name. */
 
84211
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
84212
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68195
84213
  static const char *NodeId ();
 
84214
  /** Get the name of the node. Can be compared with NodeId(). */
68196
84215
  const char *NodeName () const { return NodeId (); }
 
84216
  /** Get the number of sons. */
68197
84217
  int Sons () const { return 2; }
 
84218
  /** Get the n-th son.
 
84219
   *  \param n The index of the son.
 
84220
   *  \return The n-th son or NULL. */
68198
84221
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
84222
  /** Get the class name. */
68199
84223
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
84224
  /** Get the semantic information object. */
68200
84225
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
84226
  /** Replace a son.
 
84227
   *  \param old_son The son to replace.
 
84228
   *  \param new_son The new son. */
68201
84229
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68202
84230
    CTree::ReplaceSon (sons, 2, old_son, new_son);
68203
84231
  }
68204
84232
};
68205
84233
 
 
84234
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
84235
 *  Tree node representing a union specifier, e.g. union X. */
68206
84236
 
68207
 
#line 68208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84237
#line 84238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68208
84238
} // closed Puma
 
84239
class CCExprResolve;
 
84240
class CExprResolve;
68209
84241
class WinIfExists;
68210
84242
class WinImportHandler;
68211
84243
class WinMacros;
68212
 
class CMatchSyntax;
68213
 
class ExtGnu;
 
84244
class WinAsm;
 
84245
class WinDeclSpecs;
 
84246
class WinMemberExplSpec;
 
84247
class WinTypeKeywords;
 
84248
class WinFriend;
68214
84249
class ExtAC;
68215
84250
class ExtACBuilderCoupling;
68216
84251
class ExtACSyntaxCoupling;
68217
84252
class ExtACTree;
68218
84253
class ExtACKeywords;
68219
 
class WinAsm;
68220
 
class WinDeclSpecs;
68221
 
class WinMemberExplSpec;
68222
 
class WinTypeKeywords;
 
84254
class ExtGnu;
68223
84255
class PragmaOnceUnitState;
68224
84256
class PragmaOnce;
68225
 
class CCExprResolve;
68226
 
class CExprResolve;
 
84257
class CMatchSyntax;
68227
84258
namespace Puma {
68228
84259
 
68229
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84260
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68230
84261
class CT_UnionSpec : public CT_ClassSpec {
68231
 
#line 68232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84262
#line 84263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84263
  friend class ::CCExprResolve;
 
84264
  friend class ::CExprResolve;
68232
84265
  friend class ::WinIfExists;
68233
84266
  friend class ::WinImportHandler;
68234
84267
  friend class ::WinMacros;
68235
 
  friend class ::CMatchSyntax;
68236
 
  friend class ::ExtGnu;
 
84268
  friend class ::WinAsm;
 
84269
  friend class ::WinDeclSpecs;
 
84270
  friend class ::WinMemberExplSpec;
 
84271
  friend class ::WinTypeKeywords;
 
84272
  friend class ::WinFriend;
68237
84273
  friend class ::ExtAC;
68238
84274
  friend class ::ExtACBuilderCoupling;
68239
84275
  friend class ::ExtACSyntaxCoupling;
68240
84276
  friend class ::ExtACTree;
68241
84277
  friend class ::ExtACKeywords;
68242
 
  friend class ::WinAsm;
68243
 
  friend class ::WinDeclSpecs;
68244
 
  friend class ::WinMemberExplSpec;
68245
 
  friend class ::WinTypeKeywords;
 
84278
  friend class ::ExtGnu;
68246
84279
  friend class ::PragmaOnceUnitState;
68247
84280
  friend class ::PragmaOnce;
68248
 
  friend class ::CCExprResolve;
68249
 
  friend class ::CExprResolve;
 
84281
  friend class ::CMatchSyntax;
68250
84282
 
68251
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84283
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68252
84284
 
68253
84285
public:
 
84286
  /** Constructor.
 
84287
   *  \param k The 'union' keyword.
 
84288
   *  \param n The name of the union. */
68254
84289
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
84290
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68255
84291
  static const char *NodeId ();
 
84292
  /** Get the name of the node. Can be compared with NodeId(). */
68256
84293
  const char *NodeName () const { return NodeId (); }
68257
84294
};
68258
84295
 
 
84296
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
84297
 *  Tree node representing an enumeration specifier, e.g. enum X. */
68259
84298
 
68260
 
#line 68261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84299
#line 84300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68261
84300
} // closed Puma
 
84301
class CCExprResolve;
 
84302
class CExprResolve;
68262
84303
class WinIfExists;
68263
84304
class WinImportHandler;
68264
84305
class WinMacros;
68265
 
class CMatchSyntax;
68266
 
class ExtGnu;
 
84306
class WinAsm;
 
84307
class WinDeclSpecs;
 
84308
class WinMemberExplSpec;
 
84309
class WinTypeKeywords;
 
84310
class WinFriend;
68267
84311
class ExtAC;
68268
84312
class ExtACBuilderCoupling;
68269
84313
class ExtACSyntaxCoupling;
68270
84314
class ExtACTree;
68271
84315
class ExtACKeywords;
68272
 
class WinAsm;
68273
 
class WinDeclSpecs;
68274
 
class WinMemberExplSpec;
68275
 
class WinTypeKeywords;
 
84316
class ExtGnu;
68276
84317
class PragmaOnceUnitState;
68277
84318
class PragmaOnce;
68278
 
class CCExprResolve;
68279
 
class CExprResolve;
 
84319
class CMatchSyntax;
68280
84320
namespace Puma {
68281
84321
 
68282
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84322
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68283
84323
class CT_EnumSpec : public CT_ClassSpec {
68284
 
#line 68285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84324
#line 84325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84325
  friend class ::CCExprResolve;
 
84326
  friend class ::CExprResolve;
68285
84327
  friend class ::WinIfExists;
68286
84328
  friend class ::WinImportHandler;
68287
84329
  friend class ::WinMacros;
68288
 
  friend class ::CMatchSyntax;
68289
 
  friend class ::ExtGnu;
 
84330
  friend class ::WinAsm;
 
84331
  friend class ::WinDeclSpecs;
 
84332
  friend class ::WinMemberExplSpec;
 
84333
  friend class ::WinTypeKeywords;
 
84334
  friend class ::WinFriend;
68290
84335
  friend class ::ExtAC;
68291
84336
  friend class ::ExtACBuilderCoupling;
68292
84337
  friend class ::ExtACSyntaxCoupling;
68293
84338
  friend class ::ExtACTree;
68294
84339
  friend class ::ExtACKeywords;
68295
 
  friend class ::WinAsm;
68296
 
  friend class ::WinDeclSpecs;
68297
 
  friend class ::WinMemberExplSpec;
68298
 
  friend class ::WinTypeKeywords;
 
84340
  friend class ::ExtGnu;
68299
84341
  friend class ::PragmaOnceUnitState;
68300
84342
  friend class ::PragmaOnce;
68301
 
  friend class ::CCExprResolve;
68302
 
  friend class ::CExprResolve;
 
84343
  friend class ::CMatchSyntax;
68303
84344
 
68304
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84345
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68305
84346
 
68306
84347
public:
 
84348
  /** Constructor.
 
84349
   *  \param k The 'enum' keyword. 
 
84350
   *  \param n The name of the enumeration. */
68307
84351
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
84352
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68308
84353
  static const char *NodeId ();
 
84354
  /** Get the name of the node. Can be compared with NodeId(). */
68309
84355
  const char *NodeName () const { return NodeId (); }
68310
84356
};
68311
84357
 
 
84358
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
84359
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
68312
84360
 
68313
 
#line 68314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84361
#line 84362 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68314
84362
} // closed Puma
 
84363
class CCExprResolve;
 
84364
class CExprResolve;
68315
84365
class WinIfExists;
68316
84366
class WinImportHandler;
68317
84367
class WinMacros;
68318
 
class CMatchSyntax;
68319
 
class ExtGnu;
 
84368
class WinAsm;
 
84369
class WinDeclSpecs;
 
84370
class WinMemberExplSpec;
 
84371
class WinTypeKeywords;
 
84372
class WinFriend;
68320
84373
class ExtAC;
68321
84374
class ExtACBuilderCoupling;
68322
84375
class ExtACSyntaxCoupling;
68323
84376
class ExtACTree;
68324
84377
class ExtACKeywords;
68325
 
class WinAsm;
68326
 
class WinDeclSpecs;
68327
 
class WinMemberExplSpec;
68328
 
class WinTypeKeywords;
 
84378
class ExtGnu;
68329
84379
class PragmaOnceUnitState;
68330
84380
class PragmaOnce;
68331
 
class CCExprResolve;
68332
 
class CExprResolve;
 
84381
class CMatchSyntax;
68333
84382
namespace Puma {
68334
84383
 
68335
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84384
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68336
84385
class CT_ExceptionSpec : public CT_DeclSpec {
68337
 
#line 68338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84386
#line 84387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84387
  friend class ::CCExprResolve;
 
84388
  friend class ::CExprResolve;
68338
84389
  friend class ::WinIfExists;
68339
84390
  friend class ::WinImportHandler;
68340
84391
  friend class ::WinMacros;
68341
 
  friend class ::CMatchSyntax;
68342
 
  friend class ::ExtGnu;
 
84392
  friend class ::WinAsm;
 
84393
  friend class ::WinDeclSpecs;
 
84394
  friend class ::WinMemberExplSpec;
 
84395
  friend class ::WinTypeKeywords;
 
84396
  friend class ::WinFriend;
68343
84397
  friend class ::ExtAC;
68344
84398
  friend class ::ExtACBuilderCoupling;
68345
84399
  friend class ::ExtACSyntaxCoupling;
68346
84400
  friend class ::ExtACTree;
68347
84401
  friend class ::ExtACKeywords;
68348
 
  friend class ::WinAsm;
68349
 
  friend class ::WinDeclSpecs;
68350
 
  friend class ::WinMemberExplSpec;
68351
 
  friend class ::WinTypeKeywords;
 
84402
  friend class ::ExtGnu;
68352
84403
  friend class ::PragmaOnceUnitState;
68353
84404
  friend class ::PragmaOnce;
68354
 
  friend class ::CCExprResolve;
68355
 
  friend class ::CExprResolve;
 
84405
  friend class ::CMatchSyntax;
68356
84406
 
68357
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84407
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68358
84408
 
68359
84409
  CTree *sons[2]; // throw, type_id_list
68360
84410
  
68361
84411
public:
68362
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
84412
  /** Constructor.
 
84413
   *  \param k The 'throw' keyword.
 
84414
   *  \param l The type list for the exception type to throw. */
 
84415
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
84416
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68363
84417
  static const char *NodeId ();
 
84418
  /** Get the name of the node. Can be compared with NodeId(). */
68364
84419
  const char *NodeName () const { return NodeId (); }
 
84420
  /** Get the number of sons. */
68365
84421
  int Sons () const { return 2; }
 
84422
  /** Get the n-th son.
 
84423
   *  \param n The index of the son.
 
84424
   *  \return The n-th son or NULL. */
68366
84425
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
84426
  /** Get the exception type list. */
68367
84427
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
84428
  /** Replace a son.
 
84429
   *  \param old_son The son to replace.
 
84430
   *  \param new_son The new son. */
68368
84431
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68369
84432
    CTree::ReplaceSon (sons, 2, old_son, new_son);
68370
84433
  }
68376
84439
/*                                                                           */
68377
84440
/*****************************************************************************/
68378
84441
 
 
84442
/** \class CT_Decl CTree.h Puma/CTree.h
 
84443
 *  Base class for all tree nodes representing declarations. */
68379
84444
 
68380
 
#line 68381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84445
#line 84446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68381
84446
} // closed Puma
 
84447
class CCExprResolve;
 
84448
class CExprResolve;
68382
84449
class WinIfExists;
68383
84450
class WinImportHandler;
68384
84451
class WinMacros;
68385
 
class CMatchSyntax;
68386
 
class ExtGnu;
 
84452
class WinAsm;
 
84453
class WinDeclSpecs;
 
84454
class WinMemberExplSpec;
 
84455
class WinTypeKeywords;
 
84456
class WinFriend;
68387
84457
class ExtAC;
68388
84458
class ExtACBuilderCoupling;
68389
84459
class ExtACSyntaxCoupling;
68390
84460
class ExtACTree;
68391
84461
class ExtACKeywords;
68392
 
class WinAsm;
68393
 
class WinDeclSpecs;
68394
 
class WinMemberExplSpec;
68395
 
class WinTypeKeywords;
 
84462
class ExtGnu;
68396
84463
class PragmaOnceUnitState;
68397
84464
class PragmaOnce;
68398
 
class CCExprResolve;
68399
 
class CExprResolve;
 
84465
class CMatchSyntax;
68400
84466
namespace Puma {
68401
84467
 
68402
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84468
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68403
84469
class CT_Decl : public CTree {
68404
 
#line 68405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84470
#line 84471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84471
  friend class ::CCExprResolve;
 
84472
  friend class ::CExprResolve;
68405
84473
  friend class ::WinIfExists;
68406
84474
  friend class ::WinImportHandler;
68407
84475
  friend class ::WinMacros;
68408
 
  friend class ::CMatchSyntax;
68409
 
  friend class ::ExtGnu;
 
84476
  friend class ::WinAsm;
 
84477
  friend class ::WinDeclSpecs;
 
84478
  friend class ::WinMemberExplSpec;
 
84479
  friend class ::WinTypeKeywords;
 
84480
  friend class ::WinFriend;
68410
84481
  friend class ::ExtAC;
68411
84482
  friend class ::ExtACBuilderCoupling;
68412
84483
  friend class ::ExtACSyntaxCoupling;
68413
84484
  friend class ::ExtACTree;
68414
84485
  friend class ::ExtACKeywords;
68415
 
  friend class ::WinAsm;
68416
 
  friend class ::WinDeclSpecs;
68417
 
  friend class ::WinMemberExplSpec;
68418
 
  friend class ::WinTypeKeywords;
 
84486
  friend class ::ExtGnu;
68419
84487
  friend class ::PragmaOnceUnitState;
68420
84488
  friend class ::PragmaOnce;
68421
 
  friend class ::CCExprResolve;
68422
 
  friend class ::CExprResolve;
 
84489
  friend class ::CMatchSyntax;
68423
84490
 
68424
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84491
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68425
84492
 
68426
84493
  CT_LinkageSpec *_linkage;
 
84494
  
68427
84495
protected:
 
84496
  /** Constructor. */
68428
84497
  CT_Decl () : _linkage (0) {}
 
84498
  
68429
84499
public:
 
84500
  /** Set the linkage of the declared entity.
 
84501
   *  \param l The linkage specifiers. */
68430
84502
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
84503
  /** Get the linkage specifiers. */
68431
84504
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
84505
  /** Get this. */
 
84506
  virtual CT_Decl *IsDeclaration () { return this; }
68432
84507
};
68433
84508
 
 
84509
/** \class CT_Program CTree.h Puma/CTree.h
 
84510
 *  Root node of C/C++ syntax tree. */
68434
84511
 
68435
 
#line 68436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84512
#line 84513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68436
84513
} // closed Puma
 
84514
class CCExprResolve;
 
84515
class CExprResolve;
68437
84516
class WinIfExists;
68438
84517
class WinImportHandler;
68439
84518
class WinMacros;
68440
 
class CMatchSyntax;
68441
 
class ExtGnu;
 
84519
class WinAsm;
 
84520
class WinDeclSpecs;
 
84521
class WinMemberExplSpec;
 
84522
class WinTypeKeywords;
 
84523
class WinFriend;
68442
84524
class ExtAC;
68443
84525
class ExtACBuilderCoupling;
68444
84526
class ExtACSyntaxCoupling;
68445
84527
class ExtACTree;
68446
84528
class ExtACKeywords;
68447
 
class WinAsm;
68448
 
class WinDeclSpecs;
68449
 
class WinMemberExplSpec;
68450
 
class WinTypeKeywords;
 
84529
class ExtGnu;
68451
84530
class PragmaOnceUnitState;
68452
84531
class PragmaOnce;
68453
 
class CCExprResolve;
68454
 
class CExprResolve;
 
84532
class CMatchSyntax;
68455
84533
namespace Puma {
68456
84534
 
68457
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84535
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68458
84536
class CT_Program : public CT_DeclList, public CSemScope {
68459
 
#line 68460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84537
#line 84538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84538
  friend class ::CCExprResolve;
 
84539
  friend class ::CExprResolve;
68460
84540
  friend class ::WinIfExists;
68461
84541
  friend class ::WinImportHandler;
68462
84542
  friend class ::WinMacros;
68463
 
  friend class ::CMatchSyntax;
68464
 
  friend class ::ExtGnu;
 
84543
  friend class ::WinAsm;
 
84544
  friend class ::WinDeclSpecs;
 
84545
  friend class ::WinMemberExplSpec;
 
84546
  friend class ::WinTypeKeywords;
 
84547
  friend class ::WinFriend;
68465
84548
  friend class ::ExtAC;
68466
84549
  friend class ::ExtACBuilderCoupling;
68467
84550
  friend class ::ExtACSyntaxCoupling;
68468
84551
  friend class ::ExtACTree;
68469
84552
  friend class ::ExtACKeywords;
68470
 
  friend class ::WinAsm;
68471
 
  friend class ::WinDeclSpecs;
68472
 
  friend class ::WinMemberExplSpec;
68473
 
  friend class ::WinTypeKeywords;
 
84553
  friend class ::ExtGnu;
68474
84554
  friend class ::PragmaOnceUnitState;
68475
84555
  friend class ::PragmaOnce;
68476
 
  friend class ::CCExprResolve;
68477
 
  friend class ::CExprResolve;
 
84556
  friend class ::CMatchSyntax;
68478
84557
 
68479
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84558
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68480
84559
 
68481
84560
public:
 
84561
  /** Constructor.
 
84562
   *  \param size The initial number of declarations in the program.
 
84563
   *  \param incr The initial increment count. */
68482
84564
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
84565
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68483
84566
  static const char *NodeId ();
 
84567
  /** Get the name of the node. Can be compared with NodeId(). */
68484
84568
  const char *NodeName () const { return NodeId (); }
 
84569
  /** Get the semantic scope object. */
 
84570
  CSemScope *SemScope () const { return (CSemScope*)this; }
68485
84571
};
68486
84572
   
 
84573
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
84574
 *  Tree node representing an object declaration, e.g. int *i. */
68487
84575
 
68488
 
#line 68489 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84576
#line 84577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68489
84577
} // closed Puma
 
84578
class CCExprResolve;
 
84579
class CExprResolve;
68490
84580
class WinIfExists;
68491
84581
class WinImportHandler;
68492
84582
class WinMacros;
68493
 
class CMatchSyntax;
68494
 
class ExtGnu;
 
84583
class WinAsm;
 
84584
class WinDeclSpecs;
 
84585
class WinMemberExplSpec;
 
84586
class WinTypeKeywords;
 
84587
class WinFriend;
68495
84588
class ExtAC;
68496
84589
class ExtACBuilderCoupling;
68497
84590
class ExtACSyntaxCoupling;
68498
84591
class ExtACTree;
68499
84592
class ExtACKeywords;
68500
 
class WinAsm;
68501
 
class WinDeclSpecs;
68502
 
class WinMemberExplSpec;
68503
 
class WinTypeKeywords;
 
84593
class ExtGnu;
68504
84594
class PragmaOnceUnitState;
68505
84595
class PragmaOnce;
68506
 
class CCExprResolve;
68507
 
class CExprResolve;
 
84596
class CMatchSyntax;
68508
84597
namespace Puma {
68509
84598
 
68510
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84599
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68511
84600
class CT_ObjDecl : public CT_Decl {
68512
 
#line 68513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84601
#line 84602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84602
  friend class ::CCExprResolve;
 
84603
  friend class ::CExprResolve;
68513
84604
  friend class ::WinIfExists;
68514
84605
  friend class ::WinImportHandler;
68515
84606
  friend class ::WinMacros;
68516
 
  friend class ::CMatchSyntax;
68517
 
  friend class ::ExtGnu;
 
84607
  friend class ::WinAsm;
 
84608
  friend class ::WinDeclSpecs;
 
84609
  friend class ::WinMemberExplSpec;
 
84610
  friend class ::WinTypeKeywords;
 
84611
  friend class ::WinFriend;
68518
84612
  friend class ::ExtAC;
68519
84613
  friend class ::ExtACBuilderCoupling;
68520
84614
  friend class ::ExtACSyntaxCoupling;
68521
84615
  friend class ::ExtACTree;
68522
84616
  friend class ::ExtACKeywords;
68523
 
  friend class ::WinAsm;
68524
 
  friend class ::WinDeclSpecs;
68525
 
  friend class ::WinMemberExplSpec;
68526
 
  friend class ::WinTypeKeywords;
 
84617
  friend class ::ExtGnu;
68527
84618
  friend class ::PragmaOnceUnitState;
68528
84619
  friend class ::PragmaOnce;
68529
 
  friend class ::CCExprResolve;
68530
 
  friend class ::CExprResolve;
 
84620
  friend class ::CMatchSyntax;
68531
84621
 
68532
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84622
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68533
84623
 
68534
84624
  CTree *sons[3]; // declspecs, declarators, colon
68535
84625
 
68536
84626
public:
 
84627
  /** Constructor.
 
84628
   *  \param dsl The declaration specifier sequence.
 
84629
   *  \param dl The declarator list.
 
84630
   *  \param c Optional colon. */
68537
84631
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
68538
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
84632
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
68539
84633
  }
 
84634
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68540
84635
  static const char *NodeId ();
 
84636
  /** Get the name of the node. Can be compared with NodeId(). */
68541
84637
  const char *NodeName () const { return NodeId (); }
 
84638
  /** Get the number of sons. */
68542
84639
  int Sons () const { return 3; }
 
84640
  /** Get the n-th son.
 
84641
   *  \param n The index of the son.
 
84642
   *  \return The n-th son or NULL. */
68543
84643
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
84644
  /** Get the declaration specifier sequence. */
68544
84645
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
84646
  /** Get the declarator list. */
68545
84647
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
84648
  /** Replace a son.
 
84649
   *  \param old_son The son to replace.
 
84650
   *  \param new_son The new son. */
68546
84651
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68547
84652
    CTree::ReplaceSon (sons, 3, old_son, new_son);
68548
84653
  }
68549
84654
};
68550
84655
 
 
84656
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
84657
 *  Tree node representing a template declaration. */
68551
84658
 
68552
 
#line 68553 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84659
#line 84660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68553
84660
} // closed Puma
 
84661
class CCExprResolve;
 
84662
class CExprResolve;
68554
84663
class WinIfExists;
68555
84664
class WinImportHandler;
68556
84665
class WinMacros;
68557
 
class CMatchSyntax;
68558
 
class ExtGnu;
 
84666
class WinAsm;
 
84667
class WinDeclSpecs;
 
84668
class WinMemberExplSpec;
 
84669
class WinTypeKeywords;
 
84670
class WinFriend;
68559
84671
class ExtAC;
68560
84672
class ExtACBuilderCoupling;
68561
84673
class ExtACSyntaxCoupling;
68562
84674
class ExtACTree;
68563
84675
class ExtACKeywords;
68564
 
class WinAsm;
68565
 
class WinDeclSpecs;
68566
 
class WinMemberExplSpec;
68567
 
class WinTypeKeywords;
 
84676
class ExtGnu;
68568
84677
class PragmaOnceUnitState;
68569
84678
class PragmaOnce;
68570
 
class CCExprResolve;
68571
 
class CExprResolve;
 
84679
class CMatchSyntax;
68572
84680
namespace Puma {
68573
84681
 
68574
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84682
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68575
84683
class CT_TemplateDecl : public CT_Decl, public CSemScope {
68576
 
#line 68577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84684
#line 84685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84685
  friend class ::CCExprResolve;
 
84686
  friend class ::CExprResolve;
68577
84687
  friend class ::WinIfExists;
68578
84688
  friend class ::WinImportHandler;
68579
84689
  friend class ::WinMacros;
68580
 
  friend class ::CMatchSyntax;
68581
 
  friend class ::ExtGnu;
 
84690
  friend class ::WinAsm;
 
84691
  friend class ::WinDeclSpecs;
 
84692
  friend class ::WinMemberExplSpec;
 
84693
  friend class ::WinTypeKeywords;
 
84694
  friend class ::WinFriend;
68582
84695
  friend class ::ExtAC;
68583
84696
  friend class ::ExtACBuilderCoupling;
68584
84697
  friend class ::ExtACSyntaxCoupling;
68585
84698
  friend class ::ExtACTree;
68586
84699
  friend class ::ExtACKeywords;
68587
 
  friend class ::WinAsm;
68588
 
  friend class ::WinDeclSpecs;
68589
 
  friend class ::WinMemberExplSpec;
68590
 
  friend class ::WinTypeKeywords;
 
84700
  friend class ::ExtGnu;
68591
84701
  friend class ::PragmaOnceUnitState;
68592
84702
  friend class ::PragmaOnce;
68593
 
  friend class ::CCExprResolve;
68594
 
  friend class ::CExprResolve;
 
84703
  friend class ::CMatchSyntax;
68595
84704
 
68596
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84705
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68597
84706
 
68598
84707
  CTree *sons[3]; // export, param_list, decl
68599
84708
 
68600
84709
public:
 
84710
  /** Constructor.
 
84711
   *  \param e Optional 'export' keyword. 
 
84712
   *  \param p The template parameter list.
 
84713
   *  \param d The class or function declaration. */
68601
84714
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
68602
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
84715
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
68603
84716
  }
 
84717
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68604
84718
  static const char *NodeId ();
 
84719
  /** Get the name of the node. Can be compared with NodeId(). */
68605
84720
  const char *NodeName () const { return NodeId (); }
 
84721
  /** Get the number of sons. */
68606
84722
  int Sons () const { return CTree::Sons (sons, 3); }
 
84723
  /** Get the n-th son.
 
84724
   *  \param n The index of the son.
 
84725
   *  \return The n-th son or NULL. */
68607
84726
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
84727
  /** Replace a son.
 
84728
   *  \param old_son The son to replace.
 
84729
   *  \param new_son The new son. */
68608
84730
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68609
84731
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
68610
84732
  }
 
84733
  /** Get the 'export' keyword. */
68611
84734
  CTree *Export () const { return sons[0]; }
 
84735
  /** Get the template parameter list. */
68612
84736
  CT_TemplateParamList *Parameters () const { 
68613
84737
    return (CT_TemplateParamList*)sons[1]; 
68614
84738
  }
 
84739
  /** Get the class or function declaration. */
68615
84740
  CTree *Declaration () const { return sons[2]; }
 
84741
  /** Get the semantic scope object. */
 
84742
  CSemScope *SemScope () const { return (CSemScope*)this; }
68616
84743
};
68617
84744
 
 
84745
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
84746
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
68618
84747
 
68619
 
#line 68620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84748
#line 84749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68620
84749
} // closed Puma
 
84750
class CCExprResolve;
 
84751
class CExprResolve;
68621
84752
class WinIfExists;
68622
84753
class WinImportHandler;
68623
84754
class WinMacros;
68624
 
class CMatchSyntax;
68625
 
class ExtGnu;
 
84755
class WinAsm;
 
84756
class WinDeclSpecs;
 
84757
class WinMemberExplSpec;
 
84758
class WinTypeKeywords;
 
84759
class WinFriend;
68626
84760
class ExtAC;
68627
84761
class ExtACBuilderCoupling;
68628
84762
class ExtACSyntaxCoupling;
68629
84763
class ExtACTree;
68630
84764
class ExtACKeywords;
68631
 
class WinAsm;
68632
 
class WinDeclSpecs;
68633
 
class WinMemberExplSpec;
68634
 
class WinTypeKeywords;
 
84765
class ExtGnu;
68635
84766
class PragmaOnceUnitState;
68636
84767
class PragmaOnce;
68637
 
class CCExprResolve;
68638
 
class CExprResolve;
 
84768
class CMatchSyntax;
68639
84769
namespace Puma {
68640
84770
 
68641
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84771
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68642
84772
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
68643
 
#line 68644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84773
#line 84774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84774
  friend class ::CCExprResolve;
 
84775
  friend class ::CExprResolve;
68644
84776
  friend class ::WinIfExists;
68645
84777
  friend class ::WinImportHandler;
68646
84778
  friend class ::WinMacros;
68647
 
  friend class ::CMatchSyntax;
68648
 
  friend class ::ExtGnu;
 
84779
  friend class ::WinAsm;
 
84780
  friend class ::WinDeclSpecs;
 
84781
  friend class ::WinMemberExplSpec;
 
84782
  friend class ::WinTypeKeywords;
 
84783
  friend class ::WinFriend;
68649
84784
  friend class ::ExtAC;
68650
84785
  friend class ::ExtACBuilderCoupling;
68651
84786
  friend class ::ExtACSyntaxCoupling;
68652
84787
  friend class ::ExtACTree;
68653
84788
  friend class ::ExtACKeywords;
68654
 
  friend class ::WinAsm;
68655
 
  friend class ::WinDeclSpecs;
68656
 
  friend class ::WinMemberExplSpec;
68657
 
  friend class ::WinTypeKeywords;
 
84789
  friend class ::ExtGnu;
68658
84790
  friend class ::PragmaOnceUnitState;
68659
84791
  friend class ::PragmaOnce;
68660
 
  friend class ::CCExprResolve;
68661
 
  friend class ::CExprResolve;
 
84792
  friend class ::CMatchSyntax;
68662
84793
 
68663
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84794
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68664
84795
 
68665
84796
protected:
 
84797
  /** Constructor. */
68666
84798
  CT_TemplateParamDecl () {}
68667
84799
  
68668
84800
public:
 
84801
  /** Get the template default argument. */
68669
84802
  virtual CT_ExprList *DefaultArgument () const = 0;
 
84803
  /** Get the semantic information object. */
68670
84804
  CSemObject *SemObject () const { return (CSemObject*)this; }
68671
84805
};
68672
84806
 
68673
84807
 
68674
 
#line 68675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84808
#line 84809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68675
84809
} // closed Puma
 
84810
class CCExprResolve;
 
84811
class CExprResolve;
68676
84812
class WinIfExists;
68677
84813
class WinImportHandler;
68678
84814
class WinMacros;
68679
 
class CMatchSyntax;
68680
 
class ExtGnu;
 
84815
class WinAsm;
 
84816
class WinDeclSpecs;
 
84817
class WinMemberExplSpec;
 
84818
class WinTypeKeywords;
 
84819
class WinFriend;
68681
84820
class ExtAC;
68682
84821
class ExtACBuilderCoupling;
68683
84822
class ExtACSyntaxCoupling;
68684
84823
class ExtACTree;
68685
84824
class ExtACKeywords;
68686
 
class WinAsm;
68687
 
class WinDeclSpecs;
68688
 
class WinMemberExplSpec;
68689
 
class WinTypeKeywords;
 
84825
class ExtGnu;
68690
84826
class PragmaOnceUnitState;
68691
84827
class PragmaOnce;
68692
 
class CCExprResolve;
68693
 
class CExprResolve;
 
84828
class CMatchSyntax;
68694
84829
namespace Puma {
68695
84830
 
68696
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84831
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68697
84832
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
68698
 
#line 68699 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84833
#line 84834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84834
  friend class ::CCExprResolve;
 
84835
  friend class ::CExprResolve;
68699
84836
  friend class ::WinIfExists;
68700
84837
  friend class ::WinImportHandler;
68701
84838
  friend class ::WinMacros;
68702
 
  friend class ::CMatchSyntax;
68703
 
  friend class ::ExtGnu;
 
84839
  friend class ::WinAsm;
 
84840
  friend class ::WinDeclSpecs;
 
84841
  friend class ::WinMemberExplSpec;
 
84842
  friend class ::WinTypeKeywords;
 
84843
  friend class ::WinFriend;
68704
84844
  friend class ::ExtAC;
68705
84845
  friend class ::ExtACBuilderCoupling;
68706
84846
  friend class ::ExtACSyntaxCoupling;
68707
84847
  friend class ::ExtACTree;
68708
84848
  friend class ::ExtACKeywords;
68709
 
  friend class ::WinAsm;
68710
 
  friend class ::WinDeclSpecs;
68711
 
  friend class ::WinMemberExplSpec;
68712
 
  friend class ::WinTypeKeywords;
 
84849
  friend class ::ExtGnu;
68713
84850
  friend class ::PragmaOnceUnitState;
68714
84851
  friend class ::PragmaOnce;
68715
 
  friend class ::CCExprResolve;
68716
 
  friend class ::CExprResolve;
 
84852
  friend class ::CMatchSyntax;
68717
84853
 
68718
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84854
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68719
84855
 
68720
84856
  CTree *sons[3]; // declspecs, declarator, init
68721
84857
 
68722
84858
public:
68723
84859
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
68724
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
84860
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
68725
84861
  }
 
84862
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68726
84863
  static const char *NodeId ();
 
84864
  /** Get the name of the node. Can be compared with NodeId(). */
68727
84865
  const char *NodeName () const { return NodeId (); }
 
84866
  /** Get the number of sons. */
68728
84867
  int Sons () const { return CTree::Sons (sons, 3); }
 
84868
  /** Get the n-th son.
 
84869
   *  \param n The index of the son.
 
84870
   *  \return The n-th son or NULL. */
68729
84871
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
68730
84872
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
68731
84873
  CTree *Declarator () const { return sons[1]; }
68732
84874
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
68733
84875
  CSemObject *SemObject () const { return (CSemObject*)this; }
68734
 
  void Initializer (CTree *i) { sons[2] = i; }
 
84876
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
84877
  /** Replace a son.
 
84878
   *  \param old_son The son to replace.
 
84879
   *  \param new_son The new son. */
68735
84880
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68736
84881
    CTree::ReplaceSon (sons, 3, old_son, new_son);
68737
84882
  }
68738
84883
};
68739
84884
 
68740
84885
 
68741
 
#line 68742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84886
#line 84887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68742
84887
} // closed Puma
 
84888
class CCExprResolve;
 
84889
class CExprResolve;
68743
84890
class WinIfExists;
68744
84891
class WinImportHandler;
68745
84892
class WinMacros;
68746
 
class CMatchSyntax;
68747
 
class ExtGnu;
 
84893
class WinAsm;
 
84894
class WinDeclSpecs;
 
84895
class WinMemberExplSpec;
 
84896
class WinTypeKeywords;
 
84897
class WinFriend;
68748
84898
class ExtAC;
68749
84899
class ExtACBuilderCoupling;
68750
84900
class ExtACSyntaxCoupling;
68751
84901
class ExtACTree;
68752
84902
class ExtACKeywords;
68753
 
class WinAsm;
68754
 
class WinDeclSpecs;
68755
 
class WinMemberExplSpec;
68756
 
class WinTypeKeywords;
 
84903
class ExtGnu;
68757
84904
class PragmaOnceUnitState;
68758
84905
class PragmaOnce;
68759
 
class CCExprResolve;
68760
 
class CExprResolve;
 
84906
class CMatchSyntax;
68761
84907
namespace Puma {
68762
84908
 
68763
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84909
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68764
84910
class CT_TypeParamDecl : public CT_TemplateParamDecl {
68765
 
#line 68766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84911
#line 84912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84912
  friend class ::CCExprResolve;
 
84913
  friend class ::CExprResolve;
68766
84914
  friend class ::WinIfExists;
68767
84915
  friend class ::WinImportHandler;
68768
84916
  friend class ::WinMacros;
68769
 
  friend class ::CMatchSyntax;
68770
 
  friend class ::ExtGnu;
 
84917
  friend class ::WinAsm;
 
84918
  friend class ::WinDeclSpecs;
 
84919
  friend class ::WinMemberExplSpec;
 
84920
  friend class ::WinTypeKeywords;
 
84921
  friend class ::WinFriend;
68771
84922
  friend class ::ExtAC;
68772
84923
  friend class ::ExtACBuilderCoupling;
68773
84924
  friend class ::ExtACSyntaxCoupling;
68774
84925
  friend class ::ExtACTree;
68775
84926
  friend class ::ExtACKeywords;
68776
 
  friend class ::WinAsm;
68777
 
  friend class ::WinDeclSpecs;
68778
 
  friend class ::WinMemberExplSpec;
68779
 
  friend class ::WinTypeKeywords;
 
84927
  friend class ::ExtGnu;
68780
84928
  friend class ::PragmaOnceUnitState;
68781
84929
  friend class ::PragmaOnce;
68782
 
  friend class ::CCExprResolve;
68783
 
  friend class ::CExprResolve;
 
84930
  friend class ::CMatchSyntax;
68784
84931
 
68785
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84932
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68786
84933
 
68787
84934
  CTree *sons[4]; // params, key, id, init
68788
84935
 
68789
84936
public:
68790
84937
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
68791
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
84938
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
84939
    AddSon (sons[2], id); AddSon (sons[3], i);
68792
84940
  }
 
84941
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68793
84942
  static const char *NodeId ();
 
84943
  /** Get the name of the node. Can be compared with NodeId(). */
68794
84944
  const char *NodeName () const { return NodeId (); }
 
84945
  /** Get the number of sons. */
68795
84946
  int Sons () const { return CTree::Sons (sons, 4); }
 
84947
  /** Get the n-th son.
 
84948
   *  \param n The index of the son.
 
84949
   *  \return The n-th son or NULL. */
68796
84950
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
68797
84951
  CT_TemplateParamList *Parameters () const { 
68798
84952
    return (CT_TemplateParamList*)sons[0]; 
68799
84953
  }
68800
84954
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
68801
84955
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
68802
 
  void Initializer (CTree *i) { sons[3] = i; }
 
84956
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
84957
  /** Replace a son.
 
84958
   *  \param old_son The son to replace.
 
84959
   *  \param new_son The new son. */
68803
84960
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68804
84961
    CTree::ReplaceSon (sons, 4, old_son, new_son);
68805
84962
  }
68806
84963
};
68807
84964
 
68808
84965
 
68809
 
#line 68810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84966
#line 84967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68810
84967
} // closed Puma
 
84968
class CCExprResolve;
 
84969
class CExprResolve;
68811
84970
class WinIfExists;
68812
84971
class WinImportHandler;
68813
84972
class WinMacros;
68814
 
class CMatchSyntax;
68815
 
class ExtGnu;
 
84973
class WinAsm;
 
84974
class WinDeclSpecs;
 
84975
class WinMemberExplSpec;
 
84976
class WinTypeKeywords;
 
84977
class WinFriend;
68816
84978
class ExtAC;
68817
84979
class ExtACBuilderCoupling;
68818
84980
class ExtACSyntaxCoupling;
68819
84981
class ExtACTree;
68820
84982
class ExtACKeywords;
68821
 
class WinAsm;
68822
 
class WinDeclSpecs;
68823
 
class WinMemberExplSpec;
68824
 
class WinTypeKeywords;
 
84983
class ExtGnu;
68825
84984
class PragmaOnceUnitState;
68826
84985
class PragmaOnce;
68827
 
class CCExprResolve;
68828
 
class CExprResolve;
 
84986
class CMatchSyntax;
68829
84987
namespace Puma {
68830
84988
 
68831
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84989
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68832
84990
class CT_EnumDef : public CT_Decl, public CSemObject {
68833
 
#line 68834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
84991
#line 84992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
84992
  friend class ::CCExprResolve;
 
84993
  friend class ::CExprResolve;
68834
84994
  friend class ::WinIfExists;
68835
84995
  friend class ::WinImportHandler;
68836
84996
  friend class ::WinMacros;
68837
 
  friend class ::CMatchSyntax;
68838
 
  friend class ::ExtGnu;
 
84997
  friend class ::WinAsm;
 
84998
  friend class ::WinDeclSpecs;
 
84999
  friend class ::WinMemberExplSpec;
 
85000
  friend class ::WinTypeKeywords;
 
85001
  friend class ::WinFriend;
68839
85002
  friend class ::ExtAC;
68840
85003
  friend class ::ExtACBuilderCoupling;
68841
85004
  friend class ::ExtACSyntaxCoupling;
68842
85005
  friend class ::ExtACTree;
68843
85006
  friend class ::ExtACKeywords;
68844
 
  friend class ::WinAsm;
68845
 
  friend class ::WinDeclSpecs;
68846
 
  friend class ::WinMemberExplSpec;
68847
 
  friend class ::WinTypeKeywords;
 
85007
  friend class ::ExtGnu;
68848
85008
  friend class ::PragmaOnceUnitState;
68849
85009
  friend class ::PragmaOnce;
68850
 
  friend class ::CCExprResolve;
68851
 
  friend class ::CExprResolve;
 
85010
  friend class ::CMatchSyntax;
68852
85011
 
68853
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85012
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68854
85013
 
68855
85014
  CTree *sons[3]; // key, name, enumerators
68856
85015
 
68857
85016
public:
68858
85017
  CT_EnumDef (CTree *k, CTree *n) {
68859
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
85018
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
68860
85019
  }
 
85020
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68861
85021
  static const char *NodeId ();
 
85022
  /** Get the name of the node. Can be compared with NodeId(). */
68862
85023
  const char *NodeName () const { return NodeId (); }
 
85024
  /** Get the number of sons. */
68863
85025
  int Sons () const { return CTree::Sons (sons, 3); }
 
85026
  /** Get the n-th son.
 
85027
   *  \param n The index of the son.
 
85028
   *  \return The n-th son or NULL. */
68864
85029
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
68865
85030
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
68866
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
85031
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
68867
85032
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
85033
  /** Replace a son.
 
85034
   *  \param old_son The son to replace.
 
85035
   *  \param new_son The new son. */
68868
85036
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68869
85037
    CTree::ReplaceSon (sons, 3, old_son, new_son);
68870
85038
  }
68872
85040
};
68873
85041
 
68874
85042
 
68875
 
#line 68876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85043
#line 85044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68876
85044
} // closed Puma
 
85045
class CCExprResolve;
 
85046
class CExprResolve;
68877
85047
class WinIfExists;
68878
85048
class WinImportHandler;
68879
85049
class WinMacros;
68880
 
class CMatchSyntax;
68881
 
class ExtGnu;
 
85050
class WinAsm;
 
85051
class WinDeclSpecs;
 
85052
class WinMemberExplSpec;
 
85053
class WinTypeKeywords;
 
85054
class WinFriend;
68882
85055
class ExtAC;
68883
85056
class ExtACBuilderCoupling;
68884
85057
class ExtACSyntaxCoupling;
68885
85058
class ExtACTree;
68886
85059
class ExtACKeywords;
68887
 
class WinAsm;
68888
 
class WinDeclSpecs;
68889
 
class WinMemberExplSpec;
68890
 
class WinTypeKeywords;
 
85060
class ExtGnu;
68891
85061
class PragmaOnceUnitState;
68892
85062
class PragmaOnce;
68893
 
class CCExprResolve;
68894
 
class CExprResolve;
 
85063
class CMatchSyntax;
68895
85064
namespace Puma {
68896
85065
 
68897
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85066
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68898
85067
class CT_Enumerator : public CT_Decl, public CSemObject {
68899
 
#line 68900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85068
#line 85069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85069
  friend class ::CCExprResolve;
 
85070
  friend class ::CExprResolve;
68900
85071
  friend class ::WinIfExists;
68901
85072
  friend class ::WinImportHandler;
68902
85073
  friend class ::WinMacros;
68903
 
  friend class ::CMatchSyntax;
68904
 
  friend class ::ExtGnu;
 
85074
  friend class ::WinAsm;
 
85075
  friend class ::WinDeclSpecs;
 
85076
  friend class ::WinMemberExplSpec;
 
85077
  friend class ::WinTypeKeywords;
 
85078
  friend class ::WinFriend;
68905
85079
  friend class ::ExtAC;
68906
85080
  friend class ::ExtACBuilderCoupling;
68907
85081
  friend class ::ExtACSyntaxCoupling;
68908
85082
  friend class ::ExtACTree;
68909
85083
  friend class ::ExtACKeywords;
68910
 
  friend class ::WinAsm;
68911
 
  friend class ::WinDeclSpecs;
68912
 
  friend class ::WinMemberExplSpec;
68913
 
  friend class ::WinTypeKeywords;
 
85084
  friend class ::ExtGnu;
68914
85085
  friend class ::PragmaOnceUnitState;
68915
85086
  friend class ::PragmaOnce;
68916
 
  friend class ::CCExprResolve;
68917
 
  friend class ::CExprResolve;
 
85087
  friend class ::CMatchSyntax;
68918
85088
 
68919
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85089
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68920
85090
 
68921
85091
  CTree *sons[2]; // name, init
68922
85092
 
68923
85093
public:
68924
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
85094
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
85095
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68925
85096
  static const char *NodeId ();
 
85097
  /** Get the name of the node. Can be compared with NodeId(). */
68926
85098
  const char *NodeName () const { return NodeId (); }
 
85099
  /** Get the number of sons. */
68927
85100
  int Sons () const { return CTree::Sons (sons, 2); }
 
85101
  /** Get the n-th son.
 
85102
   *  \param n The index of the son.
 
85103
   *  \return The n-th son or NULL. */
68928
85104
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
68929
85105
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
68930
 
  void Initializer (CTree *i) { sons[1] = i; }
 
85106
  void Initializer (CTree *i) { AddSon (sons[1], i); }
68931
85107
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
85108
  /** Replace a son.
 
85109
   *  \param old_son The son to replace.
 
85110
   *  \param new_son The new son. */
68932
85111
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68933
85112
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
68934
85113
  }
68936
85115
};
68937
85116
 
68938
85117
 
68939
 
#line 68940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85118
#line 85119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
68940
85119
} // closed Puma
 
85120
class CCExprResolve;
 
85121
class CExprResolve;
68941
85122
class WinIfExists;
68942
85123
class WinImportHandler;
68943
85124
class WinMacros;
68944
 
class CMatchSyntax;
68945
 
class ExtGnu;
 
85125
class WinAsm;
 
85126
class WinDeclSpecs;
 
85127
class WinMemberExplSpec;
 
85128
class WinTypeKeywords;
 
85129
class WinFriend;
68946
85130
class ExtAC;
68947
85131
class ExtACBuilderCoupling;
68948
85132
class ExtACSyntaxCoupling;
68949
85133
class ExtACTree;
68950
85134
class ExtACKeywords;
68951
 
class WinAsm;
68952
 
class WinDeclSpecs;
68953
 
class WinMemberExplSpec;
68954
 
class WinTypeKeywords;
 
85135
class ExtGnu;
68955
85136
class PragmaOnceUnitState;
68956
85137
class PragmaOnce;
68957
 
class CCExprResolve;
68958
 
class CExprResolve;
 
85138
class CMatchSyntax;
68959
85139
namespace Puma {
68960
85140
 
68961
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85141
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68962
85142
class CT_FctDef : public CT_Decl, public CSemObject {
68963
 
#line 68964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85143
#line 85144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85144
  friend class ::CCExprResolve;
 
85145
  friend class ::CExprResolve;
68964
85146
  friend class ::WinIfExists;
68965
85147
  friend class ::WinImportHandler;
68966
85148
  friend class ::WinMacros;
68967
 
  friend class ::CMatchSyntax;
68968
 
  friend class ::ExtGnu;
 
85149
  friend class ::WinAsm;
 
85150
  friend class ::WinDeclSpecs;
 
85151
  friend class ::WinMemberExplSpec;
 
85152
  friend class ::WinTypeKeywords;
 
85153
  friend class ::WinFriend;
68969
85154
  friend class ::ExtAC;
68970
85155
  friend class ::ExtACBuilderCoupling;
68971
85156
  friend class ::ExtACSyntaxCoupling;
68972
85157
  friend class ::ExtACTree;
68973
85158
  friend class ::ExtACKeywords;
68974
 
  friend class ::WinAsm;
68975
 
  friend class ::WinDeclSpecs;
68976
 
  friend class ::WinMemberExplSpec;
68977
 
  friend class ::WinTypeKeywords;
 
85159
  friend class ::ExtGnu;
68978
85160
  friend class ::PragmaOnceUnitState;
68979
85161
  friend class ::PragmaOnce;
68980
 
  friend class ::CCExprResolve;
68981
 
  friend class ::CExprResolve;
 
85162
  friend class ::CMatchSyntax;
68982
85163
 
68983
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85164
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68984
85165
 
68985
85166
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
68986
85167
 
68987
85168
public:
68988
85169
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
68989
85170
             CTree *b, CTree *hs) {
68990
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
68991
 
    sons[5] = b; sons[6] = hs; 
 
85171
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
85172
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
85173
    AddSon (sons[6], hs); 
68992
85174
  }
 
85175
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68993
85176
  static const char *NodeId ();
 
85177
  /** Get the name of the node. Can be compared with NodeId(). */
68994
85178
  const char *NodeName () const { return NodeId (); }
 
85179
  /** Get the number of sons. */
68995
85180
  int Sons () const { return CTree::Sons (sons, 7); }
 
85181
  /** Get the n-th son.
 
85182
   *  \param n The index of the son.
 
85183
   *  \return The n-th son or NULL. */
68996
85184
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
68997
85185
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
68998
85186
  CTree *Declarator () const { return sons[1]; }
69002
85190
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
69003
85191
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
69004
85192
  CSemObject *SemObject () const { return (CSemObject*)this; }
69005
 
  void CtorInit (CTree *i) { sons[3] = i; }
69006
 
  void Body (CTree *b) { sons[5] = b; }
 
85193
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
85194
  void Body (CTree *b) { AddSon (sons[5], b); }
69007
85195
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
69008
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
85196
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
85197
    AddSon (sons[5], b); AddSon (sons[6], h);
69009
85198
  }
 
85199
  /** Replace a son.
 
85200
   *  \param old_son The son to replace.
 
85201
   *  \param new_son The new son. */
69010
85202
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69011
85203
    CTree::ReplaceSon (sons, 7, old_son, new_son);
69012
85204
  }
69013
85205
};
69014
85206
 
69015
85207
 
69016
 
#line 69017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85208
#line 85209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69017
85209
} // closed Puma
 
85210
class CCExprResolve;
 
85211
class CExprResolve;
69018
85212
class WinIfExists;
69019
85213
class WinImportHandler;
69020
85214
class WinMacros;
69021
 
class CMatchSyntax;
69022
 
class ExtGnu;
 
85215
class WinAsm;
 
85216
class WinDeclSpecs;
 
85217
class WinMemberExplSpec;
 
85218
class WinTypeKeywords;
 
85219
class WinFriend;
69023
85220
class ExtAC;
69024
85221
class ExtACBuilderCoupling;
69025
85222
class ExtACSyntaxCoupling;
69026
85223
class ExtACTree;
69027
85224
class ExtACKeywords;
69028
 
class WinAsm;
69029
 
class WinDeclSpecs;
69030
 
class WinMemberExplSpec;
69031
 
class WinTypeKeywords;
 
85225
class ExtGnu;
69032
85226
class PragmaOnceUnitState;
69033
85227
class PragmaOnce;
69034
 
class CCExprResolve;
69035
 
class CExprResolve;
 
85228
class CMatchSyntax;
69036
85229
namespace Puma {
69037
85230
 
69038
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85231
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69039
85232
class CT_AsmDef : public CT_Decl {
69040
 
#line 69041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85233
#line 85234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85234
  friend class ::CCExprResolve;
 
85235
  friend class ::CExprResolve;
69041
85236
  friend class ::WinIfExists;
69042
85237
  friend class ::WinImportHandler;
69043
85238
  friend class ::WinMacros;
69044
 
  friend class ::CMatchSyntax;
69045
 
  friend class ::ExtGnu;
 
85239
  friend class ::WinAsm;
 
85240
  friend class ::WinDeclSpecs;
 
85241
  friend class ::WinMemberExplSpec;
 
85242
  friend class ::WinTypeKeywords;
 
85243
  friend class ::WinFriend;
69046
85244
  friend class ::ExtAC;
69047
85245
  friend class ::ExtACBuilderCoupling;
69048
85246
  friend class ::ExtACSyntaxCoupling;
69049
85247
  friend class ::ExtACTree;
69050
85248
  friend class ::ExtACKeywords;
69051
 
  friend class ::WinAsm;
69052
 
  friend class ::WinDeclSpecs;
69053
 
  friend class ::WinMemberExplSpec;
69054
 
  friend class ::WinTypeKeywords;
 
85249
  friend class ::ExtGnu;
69055
85250
  friend class ::PragmaOnceUnitState;
69056
85251
  friend class ::PragmaOnce;
69057
 
  friend class ::CCExprResolve;
69058
 
  friend class ::CExprResolve;
 
85252
  friend class ::CMatchSyntax;
69059
85253
 
69060
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85254
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69061
85255
 
69062
85256
  CTree *sons[5]; // asm, open, str, close, semi_colon
69063
85257
 
69064
85258
public:
69065
85259
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
69066
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
85260
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
85261
    AddSon (sons[3], c); AddSon (sons[4], sc); 
69067
85262
  }
 
85263
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69068
85264
  static const char *NodeId ();
 
85265
  /** Get the name of the node. Can be compared with NodeId(). */
69069
85266
  const char *NodeName () const { return NodeId (); }
 
85267
  /** Get the number of sons. */
69070
85268
  int Sons () const { return 5; }
 
85269
  /** Get the n-th son.
 
85270
   *  \param n The index of the son.
 
85271
   *  \return The n-th son or NULL. */
69071
85272
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
69072
85273
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
85274
  /** Replace a son.
 
85275
   *  \param old_son The son to replace.
 
85276
   *  \param new_son The new son. */
69073
85277
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69074
85278
    CTree::ReplaceSon (sons, 5, old_son, new_son);
69075
85279
  }
69076
85280
};
69077
85281
 
69078
85282
 
69079
 
#line 69080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85283
#line 85284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69080
85284
} // closed Puma
 
85285
class CCExprResolve;
 
85286
class CExprResolve;
69081
85287
class WinIfExists;
69082
85288
class WinImportHandler;
69083
85289
class WinMacros;
69084
 
class CMatchSyntax;
69085
 
class ExtGnu;
 
85290
class WinAsm;
 
85291
class WinDeclSpecs;
 
85292
class WinMemberExplSpec;
 
85293
class WinTypeKeywords;
 
85294
class WinFriend;
69086
85295
class ExtAC;
69087
85296
class ExtACBuilderCoupling;
69088
85297
class ExtACSyntaxCoupling;
69089
85298
class ExtACTree;
69090
85299
class ExtACKeywords;
69091
 
class WinAsm;
69092
 
class WinDeclSpecs;
69093
 
class WinMemberExplSpec;
69094
 
class WinTypeKeywords;
 
85300
class ExtGnu;
69095
85301
class PragmaOnceUnitState;
69096
85302
class PragmaOnce;
69097
 
class CCExprResolve;
69098
 
class CExprResolve;
 
85303
class CMatchSyntax;
69099
85304
namespace Puma {
69100
85305
 
69101
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85306
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69102
85307
class CT_Handler : public CT_Decl, public CSemScope {
69103
 
#line 69104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85308
#line 85309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85309
  friend class ::CCExprResolve;
 
85310
  friend class ::CExprResolve;
69104
85311
  friend class ::WinIfExists;
69105
85312
  friend class ::WinImportHandler;
69106
85313
  friend class ::WinMacros;
69107
 
  friend class ::CMatchSyntax;
69108
 
  friend class ::ExtGnu;
 
85314
  friend class ::WinAsm;
 
85315
  friend class ::WinDeclSpecs;
 
85316
  friend class ::WinMemberExplSpec;
 
85317
  friend class ::WinTypeKeywords;
 
85318
  friend class ::WinFriend;
69109
85319
  friend class ::ExtAC;
69110
85320
  friend class ::ExtACBuilderCoupling;
69111
85321
  friend class ::ExtACSyntaxCoupling;
69112
85322
  friend class ::ExtACTree;
69113
85323
  friend class ::ExtACKeywords;
69114
 
  friend class ::WinAsm;
69115
 
  friend class ::WinDeclSpecs;
69116
 
  friend class ::WinMemberExplSpec;
69117
 
  friend class ::WinTypeKeywords;
 
85324
  friend class ::ExtGnu;
69118
85325
  friend class ::PragmaOnceUnitState;
69119
85326
  friend class ::PragmaOnce;
69120
 
  friend class ::CCExprResolve;
69121
 
  friend class ::CExprResolve;
 
85327
  friend class ::CMatchSyntax;
69122
85328
 
69123
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85329
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69124
85330
 
69125
85331
  CTree *sons[3]; // catch, exception_decl, stmt
69126
85332
 
69127
85333
public:
69128
85334
  CT_Handler (CTree *c, CTree *e, CTree *s) {
69129
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
85335
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
69130
85336
  }
 
85337
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69131
85338
  static const char *NodeId ();
 
85339
  /** Get the name of the node. Can be compared with NodeId(). */
69132
85340
  const char *NodeName () const { return NodeId (); }
 
85341
  /** Get the number of sons. */
69133
85342
  int Sons () const { return 3; }
 
85343
  /** Get the n-th son.
 
85344
   *  \param n The index of the son.
 
85345
   *  \return The n-th son or NULL. */
69134
85346
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
69135
85347
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
69136
85348
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
85349
  /** Replace a son.
 
85350
   *  \param old_son The son to replace.
 
85351
   *  \param new_son The new son. */
69137
85352
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69138
85353
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69139
85354
  }
 
85355
  CSemScope *SemScope () const { return (CSemScope*)this; }
69140
85356
};
69141
85357
 
69142
85358
 
69143
 
#line 69144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85359
#line 85360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69144
85360
} // closed Puma
 
85361
class CCExprResolve;
 
85362
class CExprResolve;
69145
85363
class WinIfExists;
69146
85364
class WinImportHandler;
69147
85365
class WinMacros;
69148
 
class CMatchSyntax;
69149
 
class ExtGnu;
 
85366
class WinAsm;
 
85367
class WinDeclSpecs;
 
85368
class WinMemberExplSpec;
 
85369
class WinTypeKeywords;
 
85370
class WinFriend;
69150
85371
class ExtAC;
69151
85372
class ExtACBuilderCoupling;
69152
85373
class ExtACSyntaxCoupling;
69153
85374
class ExtACTree;
69154
85375
class ExtACKeywords;
69155
 
class WinAsm;
69156
 
class WinDeclSpecs;
69157
 
class WinMemberExplSpec;
69158
 
class WinTypeKeywords;
 
85376
class ExtGnu;
69159
85377
class PragmaOnceUnitState;
69160
85378
class PragmaOnce;
69161
 
class CCExprResolve;
69162
 
class CExprResolve;
 
85379
class CMatchSyntax;
69163
85380
namespace Puma {
69164
85381
 
69165
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85382
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69166
85383
class CT_LinkageSpec : public CT_Decl {
69167
 
#line 69168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85384
#line 85385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85385
  friend class ::CCExprResolve;
 
85386
  friend class ::CExprResolve;
69168
85387
  friend class ::WinIfExists;
69169
85388
  friend class ::WinImportHandler;
69170
85389
  friend class ::WinMacros;
69171
 
  friend class ::CMatchSyntax;
69172
 
  friend class ::ExtGnu;
 
85390
  friend class ::WinAsm;
 
85391
  friend class ::WinDeclSpecs;
 
85392
  friend class ::WinMemberExplSpec;
 
85393
  friend class ::WinTypeKeywords;
 
85394
  friend class ::WinFriend;
69173
85395
  friend class ::ExtAC;
69174
85396
  friend class ::ExtACBuilderCoupling;
69175
85397
  friend class ::ExtACSyntaxCoupling;
69176
85398
  friend class ::ExtACTree;
69177
85399
  friend class ::ExtACKeywords;
69178
 
  friend class ::WinAsm;
69179
 
  friend class ::WinDeclSpecs;
69180
 
  friend class ::WinMemberExplSpec;
69181
 
  friend class ::WinTypeKeywords;
 
85400
  friend class ::ExtGnu;
69182
85401
  friend class ::PragmaOnceUnitState;
69183
85402
  friend class ::PragmaOnce;
69184
 
  friend class ::CCExprResolve;
69185
 
  friend class ::CExprResolve;
 
85403
  friend class ::CMatchSyntax;
69186
85404
 
69187
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85405
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69188
85406
 
69189
85407
  CTree *sons[5]; // extern, str, open, decls, close
69190
85408
 
69191
85409
public:
69192
85410
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
69193
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
85411
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
85412
    AddSon (sons[3], d); AddSon (sons[4], c);
69194
85413
    if (isList ())
69195
85414
      ((CT_DeclList*)Decls ())->Linkage (this);
69196
85415
    else
69197
85416
      ((CT_Decl*)Decls ())->Linkage (this);
69198
85417
  }
 
85418
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69199
85419
  static const char *NodeId ();
 
85420
  /** Get the name of the node. Can be compared with NodeId(). */
69200
85421
  const char *NodeName () const { return NodeId (); }
 
85422
  /** Get the number of sons. */
69201
85423
  int Sons () const { return CTree::Sons (sons, 5); }
 
85424
  /** Get the n-th son.
 
85425
   *  \param n The index of the son.
 
85426
   *  \return The n-th son or NULL. */
69202
85427
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
69203
85428
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
69204
85429
  CTree *Decls () const { return sons[3]; }
69205
85430
  bool isList () const {
69206
85431
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
69207
85432
  }
 
85433
  /** Replace a son.
 
85434
   *  \param old_son The son to replace.
 
85435
   *  \param new_son The new son. */
69208
85436
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69209
85437
    CTree::ReplaceSon (sons, 5, old_son, new_son);
69210
85438
  }
69211
85439
};
69212
85440
 
69213
85441
 
69214
 
#line 69215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85442
#line 85443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69215
85443
} // closed Puma
 
85444
class CCExprResolve;
 
85445
class CExprResolve;
69216
85446
class WinIfExists;
69217
85447
class WinImportHandler;
69218
85448
class WinMacros;
69219
 
class CMatchSyntax;
69220
 
class ExtGnu;
 
85449
class WinAsm;
 
85450
class WinDeclSpecs;
 
85451
class WinMemberExplSpec;
 
85452
class WinTypeKeywords;
 
85453
class WinFriend;
69221
85454
class ExtAC;
69222
85455
class ExtACBuilderCoupling;
69223
85456
class ExtACSyntaxCoupling;
69224
85457
class ExtACTree;
69225
85458
class ExtACKeywords;
69226
 
class WinAsm;
69227
 
class WinDeclSpecs;
69228
 
class WinMemberExplSpec;
69229
 
class WinTypeKeywords;
 
85459
class ExtGnu;
69230
85460
class PragmaOnceUnitState;
69231
85461
class PragmaOnce;
69232
 
class CCExprResolve;
69233
 
class CExprResolve;
 
85462
class CMatchSyntax;
69234
85463
namespace Puma {
69235
85464
 
69236
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85465
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69237
85466
class CT_ArgDecl : public CT_Decl, public CSemObject {
69238
 
#line 69239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85467
#line 85468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85468
  friend class ::CCExprResolve;
 
85469
  friend class ::CExprResolve;
69239
85470
  friend class ::WinIfExists;
69240
85471
  friend class ::WinImportHandler;
69241
85472
  friend class ::WinMacros;
69242
 
  friend class ::CMatchSyntax;
69243
 
  friend class ::ExtGnu;
 
85473
  friend class ::WinAsm;
 
85474
  friend class ::WinDeclSpecs;
 
85475
  friend class ::WinMemberExplSpec;
 
85476
  friend class ::WinTypeKeywords;
 
85477
  friend class ::WinFriend;
69244
85478
  friend class ::ExtAC;
69245
85479
  friend class ::ExtACBuilderCoupling;
69246
85480
  friend class ::ExtACSyntaxCoupling;
69247
85481
  friend class ::ExtACTree;
69248
85482
  friend class ::ExtACKeywords;
69249
 
  friend class ::WinAsm;
69250
 
  friend class ::WinDeclSpecs;
69251
 
  friend class ::WinMemberExplSpec;
69252
 
  friend class ::WinTypeKeywords;
 
85483
  friend class ::ExtGnu;
69253
85484
  friend class ::PragmaOnceUnitState;
69254
85485
  friend class ::PragmaOnce;
69255
 
  friend class ::CCExprResolve;
69256
 
  friend class ::CExprResolve;
 
85486
  friend class ::CMatchSyntax;
69257
85487
 
69258
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85488
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69259
85489
 
69260
85490
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
69261
85491
 
69262
85492
public:
69263
85493
  CT_ArgDecl (CTree *dsl, CTree *d) {
69264
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
85494
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
85495
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
69265
85496
  }
69266
85497
  CT_ArgDecl (CTree *ellipsis) {
69267
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
85498
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
85499
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
69268
85500
  }
 
85501
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69269
85502
  static const char *NodeId ();
 
85503
  /** Get the name of the node. Can be compared with NodeId(). */
69270
85504
  const char *NodeName () const { return NodeId (); }
 
85505
  /** Get the number of sons. */
69271
85506
  int Sons () const { return CTree::Sons (sons, 4); }
 
85507
  /** Get the n-th son.
 
85508
   *  \param n The index of the son.
 
85509
   *  \return The n-th son or NULL. */
69272
85510
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69273
85511
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
69274
85512
  CTree *Declarator () const { return sons[1]; }
69275
85513
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
69276
85514
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
69277
85515
  CSemObject *SemObject () const { return (CSemObject*)this; }
69278
 
  void Initializer (CTree *i) { sons[2] = i; }
 
85516
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
85517
  /** Replace a son.
 
85518
   *  \param old_son The son to replace.
 
85519
   *  \param new_son The new son. */
69279
85520
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69280
85521
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69281
85522
  }
69282
85523
};
69283
85524
 
69284
85525
 
69285
 
#line 69286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85526
#line 85527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69286
85527
} // closed Puma
 
85528
class CCExprResolve;
 
85529
class CExprResolve;
69287
85530
class WinIfExists;
69288
85531
class WinImportHandler;
69289
85532
class WinMacros;
69290
 
class CMatchSyntax;
69291
 
class ExtGnu;
 
85533
class WinAsm;
 
85534
class WinDeclSpecs;
 
85535
class WinMemberExplSpec;
 
85536
class WinTypeKeywords;
 
85537
class WinFriend;
69292
85538
class ExtAC;
69293
85539
class ExtACBuilderCoupling;
69294
85540
class ExtACSyntaxCoupling;
69295
85541
class ExtACTree;
69296
85542
class ExtACKeywords;
69297
 
class WinAsm;
69298
 
class WinDeclSpecs;
69299
 
class WinMemberExplSpec;
69300
 
class WinTypeKeywords;
 
85543
class ExtGnu;
69301
85544
class PragmaOnceUnitState;
69302
85545
class PragmaOnce;
69303
 
class CCExprResolve;
69304
 
class CExprResolve;
 
85546
class CMatchSyntax;
69305
85547
namespace Puma {
69306
85548
 
69307
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85549
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69308
85550
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
69309
 
#line 69310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85551
#line 85552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85552
  friend class ::CCExprResolve;
 
85553
  friend class ::CExprResolve;
69310
85554
  friend class ::WinIfExists;
69311
85555
  friend class ::WinImportHandler;
69312
85556
  friend class ::WinMacros;
69313
 
  friend class ::CMatchSyntax;
69314
 
  friend class ::ExtGnu;
 
85557
  friend class ::WinAsm;
 
85558
  friend class ::WinDeclSpecs;
 
85559
  friend class ::WinMemberExplSpec;
 
85560
  friend class ::WinTypeKeywords;
 
85561
  friend class ::WinFriend;
69315
85562
  friend class ::ExtAC;
69316
85563
  friend class ::ExtACBuilderCoupling;
69317
85564
  friend class ::ExtACSyntaxCoupling;
69318
85565
  friend class ::ExtACTree;
69319
85566
  friend class ::ExtACKeywords;
69320
 
  friend class ::WinAsm;
69321
 
  friend class ::WinDeclSpecs;
69322
 
  friend class ::WinMemberExplSpec;
69323
 
  friend class ::WinTypeKeywords;
 
85567
  friend class ::ExtGnu;
69324
85568
  friend class ::PragmaOnceUnitState;
69325
85569
  friend class ::PragmaOnce;
69326
 
  friend class ::CCExprResolve;
69327
 
  friend class ::CExprResolve;
 
85570
  friend class ::CMatchSyntax;
69328
85571
 
69329
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85572
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69330
85573
 
69331
85574
public:
69332
85575
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
69333
85576
   CT_DeclList (size, 2) { AddProperties (props); }
 
85577
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69334
85578
  static const char *NodeId ();
 
85579
  /** Get the name of the node. Can be compared with NodeId(). */
69335
85580
  const char *NodeName () const { return NodeId (); }
 
85581
  CSemScope *SemScope () const { return (CSemScope*)this; }
69336
85582
};
69337
85583
 
69338
85584
 
69339
 
#line 69340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85585
#line 85586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69340
85586
} // closed Puma
 
85587
class CCExprResolve;
 
85588
class CExprResolve;
69341
85589
class WinIfExists;
69342
85590
class WinImportHandler;
69343
85591
class WinMacros;
69344
 
class CMatchSyntax;
69345
 
class ExtGnu;
 
85592
class WinAsm;
 
85593
class WinDeclSpecs;
 
85594
class WinMemberExplSpec;
 
85595
class WinTypeKeywords;
 
85596
class WinFriend;
69346
85597
class ExtAC;
69347
85598
class ExtACBuilderCoupling;
69348
85599
class ExtACSyntaxCoupling;
69349
85600
class ExtACTree;
69350
85601
class ExtACKeywords;
69351
 
class WinAsm;
69352
 
class WinDeclSpecs;
69353
 
class WinMemberExplSpec;
69354
 
class WinTypeKeywords;
 
85602
class ExtGnu;
69355
85603
class PragmaOnceUnitState;
69356
85604
class PragmaOnce;
69357
 
class CCExprResolve;
69358
 
class CExprResolve;
 
85605
class CMatchSyntax;
69359
85606
namespace Puma {
69360
85607
 
69361
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85608
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69362
85609
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
69363
 
#line 69364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85610
#line 85611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85611
  friend class ::CCExprResolve;
 
85612
  friend class ::CExprResolve;
69364
85613
  friend class ::WinIfExists;
69365
85614
  friend class ::WinImportHandler;
69366
85615
  friend class ::WinMacros;
69367
 
  friend class ::CMatchSyntax;
69368
 
  friend class ::ExtGnu;
 
85616
  friend class ::WinAsm;
 
85617
  friend class ::WinDeclSpecs;
 
85618
  friend class ::WinMemberExplSpec;
 
85619
  friend class ::WinTypeKeywords;
 
85620
  friend class ::WinFriend;
69369
85621
  friend class ::ExtAC;
69370
85622
  friend class ::ExtACBuilderCoupling;
69371
85623
  friend class ::ExtACSyntaxCoupling;
69372
85624
  friend class ::ExtACTree;
69373
85625
  friend class ::ExtACKeywords;
69374
 
  friend class ::WinAsm;
69375
 
  friend class ::WinDeclSpecs;
69376
 
  friend class ::WinMemberExplSpec;
69377
 
  friend class ::WinTypeKeywords;
 
85626
  friend class ::ExtGnu;
69378
85627
  friend class ::PragmaOnceUnitState;
69379
85628
  friend class ::PragmaOnce;
69380
 
  friend class ::CCExprResolve;
69381
 
  friend class ::CExprResolve;
 
85629
  friend class ::CMatchSyntax;
69382
85630
 
69383
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85631
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69384
85632
 
69385
85633
public:
69386
85634
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
85635
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69387
85636
  static const char *NodeId ();
 
85637
  /** Get the name of the node. Can be compared with NodeId(). */
69388
85638
  const char *NodeName () const { return NodeId (); }
 
85639
  CSemScope *SemScope () const { return (CSemScope*)this; }
69389
85640
};
69390
85641
 
69391
85642
 
69392
 
#line 69393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85643
#line 85644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69393
85644
} // closed Puma
 
85645
class CCExprResolve;
 
85646
class CExprResolve;
69394
85647
class WinIfExists;
69395
85648
class WinImportHandler;
69396
85649
class WinMacros;
69397
 
class CMatchSyntax;
69398
 
class ExtGnu;
 
85650
class WinAsm;
 
85651
class WinDeclSpecs;
 
85652
class WinMemberExplSpec;
 
85653
class WinTypeKeywords;
 
85654
class WinFriend;
69399
85655
class ExtAC;
69400
85656
class ExtACBuilderCoupling;
69401
85657
class ExtACSyntaxCoupling;
69402
85658
class ExtACTree;
69403
85659
class ExtACKeywords;
69404
 
class WinAsm;
69405
 
class WinDeclSpecs;
69406
 
class WinMemberExplSpec;
69407
 
class WinTypeKeywords;
 
85660
class ExtGnu;
69408
85661
class PragmaOnceUnitState;
69409
85662
class PragmaOnce;
69410
 
class CCExprResolve;
69411
 
class CExprResolve;
 
85663
class CMatchSyntax;
69412
85664
namespace Puma {
69413
85665
 
69414
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85666
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69415
85667
class CT_ArgNameList : public CT_ArgDeclList {
69416
 
#line 69417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85668
#line 85669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85669
  friend class ::CCExprResolve;
 
85670
  friend class ::CExprResolve;
69417
85671
  friend class ::WinIfExists;
69418
85672
  friend class ::WinImportHandler;
69419
85673
  friend class ::WinMacros;
69420
 
  friend class ::CMatchSyntax;
69421
 
  friend class ::ExtGnu;
 
85674
  friend class ::WinAsm;
 
85675
  friend class ::WinDeclSpecs;
 
85676
  friend class ::WinMemberExplSpec;
 
85677
  friend class ::WinTypeKeywords;
 
85678
  friend class ::WinFriend;
69422
85679
  friend class ::ExtAC;
69423
85680
  friend class ::ExtACBuilderCoupling;
69424
85681
  friend class ::ExtACSyntaxCoupling;
69425
85682
  friend class ::ExtACTree;
69426
85683
  friend class ::ExtACKeywords;
69427
 
  friend class ::WinAsm;
69428
 
  friend class ::WinDeclSpecs;
69429
 
  friend class ::WinMemberExplSpec;
69430
 
  friend class ::WinTypeKeywords;
 
85684
  friend class ::ExtGnu;
69431
85685
  friend class ::PragmaOnceUnitState;
69432
85686
  friend class ::PragmaOnce;
69433
 
  friend class ::CCExprResolve;
69434
 
  friend class ::CExprResolve;
 
85687
  friend class ::CMatchSyntax;
69435
85688
 
69436
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85689
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69437
85690
 
69438
85691
public:
69439
85692
  CT_ArgNameList () : CT_ArgDeclList () {}
 
85693
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69440
85694
  static const char *NodeId ();
 
85695
  /** Get the name of the node. Can be compared with NodeId(). */
69441
85696
  const char *NodeName () const { return NodeId (); }
69442
85697
};
69443
85698
 
69444
85699
 
69445
 
#line 69446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85700
#line 85701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69446
85701
} // closed Puma
 
85702
class CCExprResolve;
 
85703
class CExprResolve;
69447
85704
class WinIfExists;
69448
85705
class WinImportHandler;
69449
85706
class WinMacros;
69450
 
class CMatchSyntax;
69451
 
class ExtGnu;
 
85707
class WinAsm;
 
85708
class WinDeclSpecs;
 
85709
class WinMemberExplSpec;
 
85710
class WinTypeKeywords;
 
85711
class WinFriend;
69452
85712
class ExtAC;
69453
85713
class ExtACBuilderCoupling;
69454
85714
class ExtACSyntaxCoupling;
69455
85715
class ExtACTree;
69456
85716
class ExtACKeywords;
69457
 
class WinAsm;
69458
 
class WinDeclSpecs;
69459
 
class WinMemberExplSpec;
69460
 
class WinTypeKeywords;
 
85717
class ExtGnu;
69461
85718
class PragmaOnceUnitState;
69462
85719
class PragmaOnce;
69463
 
class CCExprResolve;
69464
 
class CExprResolve;
 
85720
class CMatchSyntax;
69465
85721
namespace Puma {
69466
85722
 
69467
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85723
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69468
85724
class CT_NamespaceDef : public CT_Decl, public CSemObject {
69469
 
#line 69470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85725
#line 85726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85726
  friend class ::CCExprResolve;
 
85727
  friend class ::CExprResolve;
69470
85728
  friend class ::WinIfExists;
69471
85729
  friend class ::WinImportHandler;
69472
85730
  friend class ::WinMacros;
69473
 
  friend class ::CMatchSyntax;
69474
 
  friend class ::ExtGnu;
 
85731
  friend class ::WinAsm;
 
85732
  friend class ::WinDeclSpecs;
 
85733
  friend class ::WinMemberExplSpec;
 
85734
  friend class ::WinTypeKeywords;
 
85735
  friend class ::WinFriend;
69475
85736
  friend class ::ExtAC;
69476
85737
  friend class ::ExtACBuilderCoupling;
69477
85738
  friend class ::ExtACSyntaxCoupling;
69478
85739
  friend class ::ExtACTree;
69479
85740
  friend class ::ExtACKeywords;
69480
 
  friend class ::WinAsm;
69481
 
  friend class ::WinDeclSpecs;
69482
 
  friend class ::WinMemberExplSpec;
69483
 
  friend class ::WinTypeKeywords;
 
85741
  friend class ::ExtGnu;
69484
85742
  friend class ::PragmaOnceUnitState;
69485
85743
  friend class ::PragmaOnce;
69486
 
  friend class ::CCExprResolve;
69487
 
  friend class ::CExprResolve;
 
85744
  friend class ::CMatchSyntax;
69488
85745
 
69489
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85746
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69490
85747
 
69491
85748
  CTree *sons[3]; // ns, name, members
69492
85749
 
69493
85750
public:
69494
85751
  CT_NamespaceDef (CTree *n, CTree *nm) {
69495
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
85752
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
69496
85753
  }
69497
85754
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
69498
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
85755
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
69499
85756
  }
 
85757
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69500
85758
  static const char *NodeId ();
 
85759
  /** Get the name of the node. Can be compared with NodeId(). */
69501
85760
  const char *NodeName () const { return NodeId (); }
 
85761
  /** Get the number of sons. */
69502
85762
  int Sons () const { return CTree::Sons (sons, 3); }
 
85763
  /** Get the n-th son.
 
85764
   *  \param n The index of the son.
 
85765
   *  \return The n-th son or NULL. */
69503
85766
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
69504
 
  void Members (CTree *m) { sons[2] = m; }
 
85767
  void Members (CTree *m) { AddSon (sons[2], m); }
69505
85768
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
69506
85769
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
69507
85770
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
85771
  /** Replace a son.
 
85772
   *  \param old_son The son to replace.
 
85773
   *  \param new_son The new son. */
69508
85774
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69509
85775
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69510
85776
  }
69511
85777
};
69512
85778
 
69513
85779
 
69514
 
#line 69515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85780
#line 85781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69515
85781
} // closed Puma
 
85782
class CCExprResolve;
 
85783
class CExprResolve;
69516
85784
class WinIfExists;
69517
85785
class WinImportHandler;
69518
85786
class WinMacros;
69519
 
class CMatchSyntax;
69520
 
class ExtGnu;
 
85787
class WinAsm;
 
85788
class WinDeclSpecs;
 
85789
class WinMemberExplSpec;
 
85790
class WinTypeKeywords;
 
85791
class WinFriend;
69521
85792
class ExtAC;
69522
85793
class ExtACBuilderCoupling;
69523
85794
class ExtACSyntaxCoupling;
69524
85795
class ExtACTree;
69525
85796
class ExtACKeywords;
69526
 
class WinAsm;
69527
 
class WinDeclSpecs;
69528
 
class WinMemberExplSpec;
69529
 
class WinTypeKeywords;
 
85797
class ExtGnu;
69530
85798
class PragmaOnceUnitState;
69531
85799
class PragmaOnce;
69532
 
class CCExprResolve;
69533
 
class CExprResolve;
 
85800
class CMatchSyntax;
69534
85801
namespace Puma {
69535
85802
 
69536
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85803
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69537
85804
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
69538
 
#line 69539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85805
#line 85806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85806
  friend class ::CCExprResolve;
 
85807
  friend class ::CExprResolve;
69539
85808
  friend class ::WinIfExists;
69540
85809
  friend class ::WinImportHandler;
69541
85810
  friend class ::WinMacros;
69542
 
  friend class ::CMatchSyntax;
69543
 
  friend class ::ExtGnu;
 
85811
  friend class ::WinAsm;
 
85812
  friend class ::WinDeclSpecs;
 
85813
  friend class ::WinMemberExplSpec;
 
85814
  friend class ::WinTypeKeywords;
 
85815
  friend class ::WinFriend;
69544
85816
  friend class ::ExtAC;
69545
85817
  friend class ::ExtACBuilderCoupling;
69546
85818
  friend class ::ExtACSyntaxCoupling;
69547
85819
  friend class ::ExtACTree;
69548
85820
  friend class ::ExtACKeywords;
69549
 
  friend class ::WinAsm;
69550
 
  friend class ::WinDeclSpecs;
69551
 
  friend class ::WinMemberExplSpec;
69552
 
  friend class ::WinTypeKeywords;
 
85821
  friend class ::ExtGnu;
69553
85822
  friend class ::PragmaOnceUnitState;
69554
85823
  friend class ::PragmaOnce;
69555
 
  friend class ::CCExprResolve;
69556
 
  friend class ::CExprResolve;
 
85824
  friend class ::CMatchSyntax;
69557
85825
 
69558
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85826
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69559
85827
 
69560
85828
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
69561
85829
 
69562
85830
public:
69563
85831
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
69564
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
85832
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
85833
    AddSon (sons[3], nm); AddSon (sons[4], s); 
69565
85834
  }
 
85835
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69566
85836
  static const char *NodeId ();
 
85837
  /** Get the name of the node. Can be compared with NodeId(). */
69567
85838
  const char *NodeName () const { return NodeId (); }
 
85839
  /** Get the number of sons. */
69568
85840
  int Sons () const { return 5; }
 
85841
  /** Get the n-th son.
 
85842
   *  \param n The index of the son.
 
85843
   *  \return The n-th son or NULL. */
69569
85844
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
69570
85845
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
69571
85846
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
69572
85847
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
85848
  /** Replace a son.
 
85849
   *  \param old_son The son to replace.
 
85850
   *  \param new_son The new son. */
69573
85851
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69574
85852
    CTree::ReplaceSon (sons, 5, old_son, new_son);
69575
85853
  }
69576
85854
};
69577
85855
 
69578
85856
 
69579
 
#line 69580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85857
#line 85858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69580
85858
} // closed Puma
 
85859
class CCExprResolve;
 
85860
class CExprResolve;
69581
85861
class WinIfExists;
69582
85862
class WinImportHandler;
69583
85863
class WinMacros;
69584
 
class CMatchSyntax;
69585
 
class ExtGnu;
 
85864
class WinAsm;
 
85865
class WinDeclSpecs;
 
85866
class WinMemberExplSpec;
 
85867
class WinTypeKeywords;
 
85868
class WinFriend;
69586
85869
class ExtAC;
69587
85870
class ExtACBuilderCoupling;
69588
85871
class ExtACSyntaxCoupling;
69589
85872
class ExtACTree;
69590
85873
class ExtACKeywords;
69591
 
class WinAsm;
69592
 
class WinDeclSpecs;
69593
 
class WinMemberExplSpec;
69594
 
class WinTypeKeywords;
 
85874
class ExtGnu;
69595
85875
class PragmaOnceUnitState;
69596
85876
class PragmaOnce;
69597
 
class CCExprResolve;
69598
 
class CExprResolve;
 
85877
class CMatchSyntax;
69599
85878
namespace Puma {
69600
85879
 
69601
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85880
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69602
85881
class CT_UsingDirective : public CT_Decl {
69603
 
#line 69604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85882
#line 85883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85883
  friend class ::CCExprResolve;
 
85884
  friend class ::CExprResolve;
69604
85885
  friend class ::WinIfExists;
69605
85886
  friend class ::WinImportHandler;
69606
85887
  friend class ::WinMacros;
69607
 
  friend class ::CMatchSyntax;
69608
 
  friend class ::ExtGnu;
 
85888
  friend class ::WinAsm;
 
85889
  friend class ::WinDeclSpecs;
 
85890
  friend class ::WinMemberExplSpec;
 
85891
  friend class ::WinTypeKeywords;
 
85892
  friend class ::WinFriend;
69609
85893
  friend class ::ExtAC;
69610
85894
  friend class ::ExtACBuilderCoupling;
69611
85895
  friend class ::ExtACSyntaxCoupling;
69612
85896
  friend class ::ExtACTree;
69613
85897
  friend class ::ExtACKeywords;
69614
 
  friend class ::WinAsm;
69615
 
  friend class ::WinDeclSpecs;
69616
 
  friend class ::WinMemberExplSpec;
69617
 
  friend class ::WinTypeKeywords;
 
85898
  friend class ::ExtGnu;
69618
85899
  friend class ::PragmaOnceUnitState;
69619
85900
  friend class ::PragmaOnce;
69620
 
  friend class ::CCExprResolve;
69621
 
  friend class ::CExprResolve;
 
85901
  friend class ::CMatchSyntax;
69622
85902
 
69623
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85903
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69624
85904
 
69625
85905
  CTree *sons[4]; // using, ns, name, semi_colon
69626
85906
 
69627
85907
public:
69628
85908
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
69629
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
85909
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
85910
    AddSon (sons[3], s); 
69630
85911
  }
 
85912
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69631
85913
  static const char *NodeId ();
 
85914
  /** Get the name of the node. Can be compared with NodeId(). */
69632
85915
  const char *NodeName () const { return NodeId (); }
 
85916
  /** Get the number of sons. */
69633
85917
  int Sons () const { return 4; }
 
85918
  /** Get the n-th son.
 
85919
   *  \param n The index of the son.
 
85920
   *  \return The n-th son or NULL. */
69634
85921
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69635
85922
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
85923
  /** Replace a son.
 
85924
   *  \param old_son The son to replace.
 
85925
   *  \param new_son The new son. */
69636
85926
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69637
85927
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69638
85928
  }
69645
85935
/*****************************************************************************/
69646
85936
 
69647
85937
 
69648
 
#line 69649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85938
#line 85939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69649
85939
} // closed Puma
 
85940
class CCExprResolve;
 
85941
class CExprResolve;
69650
85942
class WinIfExists;
69651
85943
class WinImportHandler;
69652
85944
class WinMacros;
69653
 
class CMatchSyntax;
69654
 
class ExtGnu;
 
85945
class WinAsm;
 
85946
class WinDeclSpecs;
 
85947
class WinMemberExplSpec;
 
85948
class WinTypeKeywords;
 
85949
class WinFriend;
69655
85950
class ExtAC;
69656
85951
class ExtACBuilderCoupling;
69657
85952
class ExtACSyntaxCoupling;
69658
85953
class ExtACTree;
69659
85954
class ExtACKeywords;
69660
 
class WinAsm;
69661
 
class WinDeclSpecs;
69662
 
class WinMemberExplSpec;
69663
 
class WinTypeKeywords;
 
85955
class ExtGnu;
69664
85956
class PragmaOnceUnitState;
69665
85957
class PragmaOnce;
69666
 
class CCExprResolve;
69667
 
class CExprResolve;
 
85958
class CMatchSyntax;
69668
85959
namespace Puma {
69669
85960
 
69670
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85961
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69671
85962
class CT_Declarator : public CTree {
69672
 
#line 69673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85963
#line 85964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
85964
  friend class ::CCExprResolve;
 
85965
  friend class ::CExprResolve;
69673
85966
  friend class ::WinIfExists;
69674
85967
  friend class ::WinImportHandler;
69675
85968
  friend class ::WinMacros;
69676
 
  friend class ::CMatchSyntax;
69677
 
  friend class ::ExtGnu;
 
85969
  friend class ::WinAsm;
 
85970
  friend class ::WinDeclSpecs;
 
85971
  friend class ::WinMemberExplSpec;
 
85972
  friend class ::WinTypeKeywords;
 
85973
  friend class ::WinFriend;
69678
85974
  friend class ::ExtAC;
69679
85975
  friend class ::ExtACBuilderCoupling;
69680
85976
  friend class ::ExtACSyntaxCoupling;
69681
85977
  friend class ::ExtACTree;
69682
85978
  friend class ::ExtACKeywords;
69683
 
  friend class ::WinAsm;
69684
 
  friend class ::WinDeclSpecs;
69685
 
  friend class ::WinMemberExplSpec;
69686
 
  friend class ::WinTypeKeywords;
 
85979
  friend class ::ExtGnu;
69687
85980
  friend class ::PragmaOnceUnitState;
69688
85981
  friend class ::PragmaOnce;
69689
 
  friend class ::CCExprResolve;
69690
 
  friend class ::CExprResolve;
 
85982
  friend class ::CMatchSyntax;
69691
85983
 
69692
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85984
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69693
85985
 
69694
85986
protected:
69695
85987
  CT_Declarator () {}
69704
85996
};
69705
85997
 
69706
85998
 
69707
 
#line 69708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
85999
#line 86000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69708
86000
} // closed Puma
 
86001
class CCExprResolve;
 
86002
class CExprResolve;
69709
86003
class WinIfExists;
69710
86004
class WinImportHandler;
69711
86005
class WinMacros;
69712
 
class CMatchSyntax;
69713
 
class ExtGnu;
 
86006
class WinAsm;
 
86007
class WinDeclSpecs;
 
86008
class WinMemberExplSpec;
 
86009
class WinTypeKeywords;
 
86010
class WinFriend;
69714
86011
class ExtAC;
69715
86012
class ExtACBuilderCoupling;
69716
86013
class ExtACSyntaxCoupling;
69717
86014
class ExtACTree;
69718
86015
class ExtACKeywords;
69719
 
class WinAsm;
69720
 
class WinDeclSpecs;
69721
 
class WinMemberExplSpec;
69722
 
class WinTypeKeywords;
 
86016
class ExtGnu;
69723
86017
class PragmaOnceUnitState;
69724
86018
class PragmaOnce;
69725
 
class CCExprResolve;
69726
 
class CExprResolve;
 
86019
class CMatchSyntax;
69727
86020
namespace Puma {
69728
86021
 
69729
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86022
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69730
86023
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
69731
 
#line 69732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86024
#line 86025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86025
  friend class ::CCExprResolve;
 
86026
  friend class ::CExprResolve;
69732
86027
  friend class ::WinIfExists;
69733
86028
  friend class ::WinImportHandler;
69734
86029
  friend class ::WinMacros;
69735
 
  friend class ::CMatchSyntax;
69736
 
  friend class ::ExtGnu;
 
86030
  friend class ::WinAsm;
 
86031
  friend class ::WinDeclSpecs;
 
86032
  friend class ::WinMemberExplSpec;
 
86033
  friend class ::WinTypeKeywords;
 
86034
  friend class ::WinFriend;
69737
86035
  friend class ::ExtAC;
69738
86036
  friend class ::ExtACBuilderCoupling;
69739
86037
  friend class ::ExtACSyntaxCoupling;
69740
86038
  friend class ::ExtACTree;
69741
86039
  friend class ::ExtACKeywords;
69742
 
  friend class ::WinAsm;
69743
 
  friend class ::WinDeclSpecs;
69744
 
  friend class ::WinMemberExplSpec;
69745
 
  friend class ::WinTypeKeywords;
 
86040
  friend class ::ExtGnu;
69746
86041
  friend class ::PragmaOnceUnitState;
69747
86042
  friend class ::PragmaOnce;
69748
 
  friend class ::CCExprResolve;
69749
 
  friend class ::CExprResolve;
69750
 
 
69751
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69752
 
 
69753
 
  CTree *sons[2]; // declarator, init
 
86043
  friend class ::CMatchSyntax;
 
86044
 
 
86045
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86046
 
 
86047
  CTree *sons[3]; // declarator, ext, init
69754
86048
  CTree *obj_decl;
69755
86049
 
69756
86050
public:
69757
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
69758
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
86051
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
86052
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
86053
    AddSon (obj_decl, 0); 
69759
86054
  }
 
86055
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69760
86056
  static const char *NodeId ();
 
86057
  /** Get the name of the node. Can be compared with NodeId(). */
69761
86058
  const char *NodeName () const { return NodeId (); }
69762
 
  int Sons () const { return CTree::Sons (sons, 2); }
69763
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
86059
  /** Get the number of sons. */
 
86060
  int Sons () const { return CTree::Sons (sons, 3); }
 
86061
  /** Get the n-th son.
 
86062
   *  \param n The index of the son.
 
86063
   *  \return The n-th son or NULL. */
 
86064
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
69764
86065
  CTree *Declarator () const { return sons[0]; }
69765
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
86066
  CTree *Extension () const { return sons[1]; }
 
86067
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
69766
86068
  CSemObject *SemObject () const { return (CSemObject*)this; }
69767
86069
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
69768
 
  void Initializer (CTree* i) { sons[1] = i; }
69769
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
86070
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
86071
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
86072
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
86073
  /** Replace a son.
 
86074
   *  \param old_son The son to replace.
 
86075
   *  \param new_son The new son. */
69770
86076
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69771
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
86077
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69772
86078
  }
69773
86079
};
69774
86080
 
69775
86081
 
69776
 
#line 69777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86082
#line 86083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69777
86083
} // closed Puma
 
86084
class CCExprResolve;
 
86085
class CExprResolve;
69778
86086
class WinIfExists;
69779
86087
class WinImportHandler;
69780
86088
class WinMacros;
69781
 
class CMatchSyntax;
69782
 
class ExtGnu;
 
86089
class WinAsm;
 
86090
class WinDeclSpecs;
 
86091
class WinMemberExplSpec;
 
86092
class WinTypeKeywords;
 
86093
class WinFriend;
69783
86094
class ExtAC;
69784
86095
class ExtACBuilderCoupling;
69785
86096
class ExtACSyntaxCoupling;
69786
86097
class ExtACTree;
69787
86098
class ExtACKeywords;
69788
 
class WinAsm;
69789
 
class WinDeclSpecs;
69790
 
class WinMemberExplSpec;
69791
 
class WinTypeKeywords;
 
86099
class ExtGnu;
69792
86100
class PragmaOnceUnitState;
69793
86101
class PragmaOnce;
69794
 
class CCExprResolve;
69795
 
class CExprResolve;
 
86102
class CMatchSyntax;
69796
86103
namespace Puma {
69797
86104
 
69798
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86105
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69799
86106
class CT_BracedDeclarator : public CT_Declarator {
69800
 
#line 69801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86107
#line 86108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86108
  friend class ::CCExprResolve;
 
86109
  friend class ::CExprResolve;
69801
86110
  friend class ::WinIfExists;
69802
86111
  friend class ::WinImportHandler;
69803
86112
  friend class ::WinMacros;
69804
 
  friend class ::CMatchSyntax;
69805
 
  friend class ::ExtGnu;
 
86113
  friend class ::WinAsm;
 
86114
  friend class ::WinDeclSpecs;
 
86115
  friend class ::WinMemberExplSpec;
 
86116
  friend class ::WinTypeKeywords;
 
86117
  friend class ::WinFriend;
69806
86118
  friend class ::ExtAC;
69807
86119
  friend class ::ExtACBuilderCoupling;
69808
86120
  friend class ::ExtACSyntaxCoupling;
69809
86121
  friend class ::ExtACTree;
69810
86122
  friend class ::ExtACKeywords;
69811
 
  friend class ::WinAsm;
69812
 
  friend class ::WinDeclSpecs;
69813
 
  friend class ::WinMemberExplSpec;
69814
 
  friend class ::WinTypeKeywords;
 
86123
  friend class ::ExtGnu;
69815
86124
  friend class ::PragmaOnceUnitState;
69816
86125
  friend class ::PragmaOnce;
69817
 
  friend class ::CCExprResolve;
69818
 
  friend class ::CExprResolve;
 
86126
  friend class ::CMatchSyntax;
69819
86127
 
69820
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86128
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69821
86129
 
69822
86130
  CTree *sons[4]; // open, win_specs, declarator, close
69823
86131
 
69824
86132
public:
69825
86133
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
69826
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
86134
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
86135
    AddSon (sons[2], d); AddSon (sons[3], c); 
69827
86136
  }
69828
86137
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
69829
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
86138
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
86139
    AddSon (sons[2], d); AddSon (sons[3], c); 
69830
86140
  }
 
86141
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69831
86142
  static const char *NodeId ();
 
86143
  /** Get the name of the node. Can be compared with NodeId(). */
69832
86144
  const char *NodeName () const { return NodeId (); }
 
86145
  /** Get the number of sons. */
69833
86146
  int Sons () const { return CTree::Sons (sons, 4); }
 
86147
  /** Get the n-th son.
 
86148
   *  \param n The index of the son.
 
86149
   *  \return The n-th son or NULL. */
69834
86150
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69835
86151
  CTree *Declarator () const { return sons[2]; }
 
86152
  /** Replace a son.
 
86153
   *  \param old_son The son to replace.
 
86154
   *  \param new_son The new son. */
69836
86155
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69837
86156
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69838
86157
  }
69839
86158
};
69840
86159
 
69841
86160
 
69842
 
#line 69843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86161
#line 86162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69843
86162
} // closed Puma
 
86163
class CCExprResolve;
 
86164
class CExprResolve;
69844
86165
class WinIfExists;
69845
86166
class WinImportHandler;
69846
86167
class WinMacros;
69847
 
class CMatchSyntax;
69848
 
class ExtGnu;
 
86168
class WinAsm;
 
86169
class WinDeclSpecs;
 
86170
class WinMemberExplSpec;
 
86171
class WinTypeKeywords;
 
86172
class WinFriend;
69849
86173
class ExtAC;
69850
86174
class ExtACBuilderCoupling;
69851
86175
class ExtACSyntaxCoupling;
69852
86176
class ExtACTree;
69853
86177
class ExtACKeywords;
69854
 
class WinAsm;
69855
 
class WinDeclSpecs;
69856
 
class WinMemberExplSpec;
69857
 
class WinTypeKeywords;
 
86178
class ExtGnu;
69858
86179
class PragmaOnceUnitState;
69859
86180
class PragmaOnce;
69860
 
class CCExprResolve;
69861
 
class CExprResolve;
 
86181
class CMatchSyntax;
69862
86182
namespace Puma {
69863
86183
 
69864
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86184
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69865
86185
class CT_ArrayDelimiter : public CTree {
69866
 
#line 69867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86186
#line 86187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86187
  friend class ::CCExprResolve;
 
86188
  friend class ::CExprResolve;
69867
86189
  friend class ::WinIfExists;
69868
86190
  friend class ::WinImportHandler;
69869
86191
  friend class ::WinMacros;
69870
 
  friend class ::CMatchSyntax;
69871
 
  friend class ::ExtGnu;
 
86192
  friend class ::WinAsm;
 
86193
  friend class ::WinDeclSpecs;
 
86194
  friend class ::WinMemberExplSpec;
 
86195
  friend class ::WinTypeKeywords;
 
86196
  friend class ::WinFriend;
69872
86197
  friend class ::ExtAC;
69873
86198
  friend class ::ExtACBuilderCoupling;
69874
86199
  friend class ::ExtACSyntaxCoupling;
69875
86200
  friend class ::ExtACTree;
69876
86201
  friend class ::ExtACKeywords;
69877
 
  friend class ::WinAsm;
69878
 
  friend class ::WinDeclSpecs;
69879
 
  friend class ::WinMemberExplSpec;
69880
 
  friend class ::WinTypeKeywords;
 
86202
  friend class ::ExtGnu;
69881
86203
  friend class ::PragmaOnceUnitState;
69882
86204
  friend class ::PragmaOnce;
69883
 
  friend class ::CCExprResolve;
69884
 
  friend class ::CExprResolve;
 
86205
  friend class ::CMatchSyntax;
69885
86206
 
69886
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86207
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69887
86208
 
69888
86209
  CTree *sons[4]; // star, static, quals, expr
69889
86210
  bool pos0;
69890
86211
 
69891
86212
public:
69892
86213
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
69893
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
86214
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
86215
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
69894
86216
  }
 
86217
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69895
86218
  static const char *NodeId ();
 
86219
  /** Get the name of the node. Can be compared with NodeId(). */
69896
86220
  const char *NodeName () const { return NodeId (); }
 
86221
  /** Get the number of sons. */
69897
86222
  int Sons () const { return CTree::Sons (sons, 4); }
 
86223
  /** Get the n-th son.
 
86224
   *  \param n The index of the son.
 
86225
   *  \return The n-th son or NULL. */
69898
86226
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69899
86227
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
69900
86228
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
69901
86229
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
69902
86230
  CTree *Expr () const { return sons[3]; }
 
86231
  /** Replace a son.
 
86232
   *  \param old_son The son to replace.
 
86233
   *  \param new_son The new son. */
69903
86234
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69904
86235
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69905
86236
  }
69906
86237
};
69907
86238
 
69908
86239
 
69909
 
#line 69910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86240
#line 86241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69910
86241
} // closed Puma
 
86242
class CCExprResolve;
 
86243
class CExprResolve;
69911
86244
class WinIfExists;
69912
86245
class WinImportHandler;
69913
86246
class WinMacros;
69914
 
class CMatchSyntax;
69915
 
class ExtGnu;
 
86247
class WinAsm;
 
86248
class WinDeclSpecs;
 
86249
class WinMemberExplSpec;
 
86250
class WinTypeKeywords;
 
86251
class WinFriend;
69916
86252
class ExtAC;
69917
86253
class ExtACBuilderCoupling;
69918
86254
class ExtACSyntaxCoupling;
69919
86255
class ExtACTree;
69920
86256
class ExtACKeywords;
69921
 
class WinAsm;
69922
 
class WinDeclSpecs;
69923
 
class WinMemberExplSpec;
69924
 
class WinTypeKeywords;
 
86257
class ExtGnu;
69925
86258
class PragmaOnceUnitState;
69926
86259
class PragmaOnce;
69927
 
class CCExprResolve;
69928
 
class CExprResolve;
 
86260
class CMatchSyntax;
69929
86261
namespace Puma {
69930
86262
 
69931
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86263
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69932
86264
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
69933
 
#line 69934 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86265
#line 86266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86266
  friend class ::CCExprResolve;
 
86267
  friend class ::CExprResolve;
69934
86268
  friend class ::WinIfExists;
69935
86269
  friend class ::WinImportHandler;
69936
86270
  friend class ::WinMacros;
69937
 
  friend class ::CMatchSyntax;
69938
 
  friend class ::ExtGnu;
 
86271
  friend class ::WinAsm;
 
86272
  friend class ::WinDeclSpecs;
 
86273
  friend class ::WinMemberExplSpec;
 
86274
  friend class ::WinTypeKeywords;
 
86275
  friend class ::WinFriend;
69939
86276
  friend class ::ExtAC;
69940
86277
  friend class ::ExtACBuilderCoupling;
69941
86278
  friend class ::ExtACSyntaxCoupling;
69942
86279
  friend class ::ExtACTree;
69943
86280
  friend class ::ExtACKeywords;
69944
 
  friend class ::WinAsm;
69945
 
  friend class ::WinDeclSpecs;
69946
 
  friend class ::WinMemberExplSpec;
69947
 
  friend class ::WinTypeKeywords;
 
86281
  friend class ::ExtGnu;
69948
86282
  friend class ::PragmaOnceUnitState;
69949
86283
  friend class ::PragmaOnce;
69950
 
  friend class ::CCExprResolve;
69951
 
  friend class ::CExprResolve;
 
86284
  friend class ::CMatchSyntax;
69952
86285
 
69953
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86286
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69954
86287
 
69955
86288
  CTree *sons[4]; // declarator, open, delim, close
69956
86289
 
69957
86290
public:
69958
86291
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
69959
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
86292
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
86293
    AddSon (sons[2], ad); AddSon (sons[3], c); 
69960
86294
  }
 
86295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69961
86296
  static const char *NodeId ();
 
86297
  /** Get the name of the node. Can be compared with NodeId(). */
69962
86298
  const char *NodeName () const { return NodeId (); }
 
86299
  /** Get the number of sons. */
69963
86300
  int Sons () const { return 4; }
 
86301
  /** Get the n-th son.
 
86302
   *  \param n The index of the son.
 
86303
   *  \return The n-th son or NULL. */
69964
86304
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69965
86305
  CTree *Declarator () const { return sons[0]; }
69966
86306
  CT_ArrayDelimiter *Delimiter () const 
69967
86307
   { return (CT_ArrayDelimiter*)sons[2]; }
 
86308
  /** Replace a son.
 
86309
   *  \param old_son The son to replace.
 
86310
   *  \param new_son The new son. */
69968
86311
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69969
86312
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69970
86313
  }
69974
86317
};
69975
86318
 
69976
86319
 
69977
 
#line 69978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86320
#line 86321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
69978
86321
} // closed Puma
 
86322
class CCExprResolve;
 
86323
class CExprResolve;
69979
86324
class WinIfExists;
69980
86325
class WinImportHandler;
69981
86326
class WinMacros;
69982
 
class CMatchSyntax;
69983
 
class ExtGnu;
 
86327
class WinAsm;
 
86328
class WinDeclSpecs;
 
86329
class WinMemberExplSpec;
 
86330
class WinTypeKeywords;
 
86331
class WinFriend;
69984
86332
class ExtAC;
69985
86333
class ExtACBuilderCoupling;
69986
86334
class ExtACSyntaxCoupling;
69987
86335
class ExtACTree;
69988
86336
class ExtACKeywords;
69989
 
class WinAsm;
69990
 
class WinDeclSpecs;
69991
 
class WinMemberExplSpec;
69992
 
class WinTypeKeywords;
 
86337
class ExtGnu;
69993
86338
class PragmaOnceUnitState;
69994
86339
class PragmaOnce;
69995
 
class CCExprResolve;
69996
 
class CExprResolve;
 
86340
class CMatchSyntax;
69997
86341
namespace Puma {
69998
86342
 
69999
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86343
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70000
86344
class CT_FctDeclarator : public CT_Declarator {
70001
 
#line 70002 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86345
#line 86346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86346
  friend class ::CCExprResolve;
 
86347
  friend class ::CExprResolve;
70002
86348
  friend class ::WinIfExists;
70003
86349
  friend class ::WinImportHandler;
70004
86350
  friend class ::WinMacros;
70005
 
  friend class ::CMatchSyntax;
70006
 
  friend class ::ExtGnu;
 
86351
  friend class ::WinAsm;
 
86352
  friend class ::WinDeclSpecs;
 
86353
  friend class ::WinMemberExplSpec;
 
86354
  friend class ::WinTypeKeywords;
 
86355
  friend class ::WinFriend;
70007
86356
  friend class ::ExtAC;
70008
86357
  friend class ::ExtACBuilderCoupling;
70009
86358
  friend class ::ExtACSyntaxCoupling;
70010
86359
  friend class ::ExtACTree;
70011
86360
  friend class ::ExtACKeywords;
70012
 
  friend class ::WinAsm;
70013
 
  friend class ::WinDeclSpecs;
70014
 
  friend class ::WinMemberExplSpec;
70015
 
  friend class ::WinTypeKeywords;
 
86361
  friend class ::ExtGnu;
70016
86362
  friend class ::PragmaOnceUnitState;
70017
86363
  friend class ::PragmaOnce;
70018
 
  friend class ::CCExprResolve;
70019
 
  friend class ::CExprResolve;
 
86364
  friend class ::CMatchSyntax;
70020
86365
 
70021
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86366
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70022
86367
 
70023
86368
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
70024
86369
 
70025
86370
public:
70026
86371
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
70027
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
86372
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
86373
    AddSon (sons[2], cv); AddSon (sons[3], es); 
70028
86374
  }
 
86375
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70029
86376
  static const char *NodeId ();
 
86377
  /** Get the name of the node. Can be compared with NodeId(). */
70030
86378
  const char *NodeName () const { return NodeId (); }
 
86379
  /** Get the number of sons. */
70031
86380
  int Sons () const { return CTree::Sons (sons, 4); }
 
86381
  /** Get the n-th son.
 
86382
   *  \param n The index of the son.
 
86383
   *  \return The n-th son or NULL. */
70032
86384
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
70033
86385
  CTree *Declarator () const { return sons[0]; }
70034
86386
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
70035
86387
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
70036
86388
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
86389
  /** Replace a son.
 
86390
   *  \param old_son The son to replace.
 
86391
   *  \param new_son The new son. */
70037
86392
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70038
86393
    CTree::ReplaceSon (sons, 4, old_son, new_son);
70039
86394
  }
70040
86395
};
70041
86396
 
70042
86397
 
70043
 
#line 70044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86398
#line 86399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70044
86399
} // closed Puma
 
86400
class CCExprResolve;
 
86401
class CExprResolve;
70045
86402
class WinIfExists;
70046
86403
class WinImportHandler;
70047
86404
class WinMacros;
70048
 
class CMatchSyntax;
70049
 
class ExtGnu;
 
86405
class WinAsm;
 
86406
class WinDeclSpecs;
 
86407
class WinMemberExplSpec;
 
86408
class WinTypeKeywords;
 
86409
class WinFriend;
70050
86410
class ExtAC;
70051
86411
class ExtACBuilderCoupling;
70052
86412
class ExtACSyntaxCoupling;
70053
86413
class ExtACTree;
70054
86414
class ExtACKeywords;
70055
 
class WinAsm;
70056
 
class WinDeclSpecs;
70057
 
class WinMemberExplSpec;
70058
 
class WinTypeKeywords;
 
86415
class ExtGnu;
70059
86416
class PragmaOnceUnitState;
70060
86417
class PragmaOnce;
70061
 
class CCExprResolve;
70062
 
class CExprResolve;
 
86418
class CMatchSyntax;
70063
86419
namespace Puma {
70064
86420
 
70065
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86421
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70066
86422
class CT_RefDeclarator : public CT_Declarator {
70067
 
#line 70068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86423
#line 86424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86424
  friend class ::CCExprResolve;
 
86425
  friend class ::CExprResolve;
70068
86426
  friend class ::WinIfExists;
70069
86427
  friend class ::WinImportHandler;
70070
86428
  friend class ::WinMacros;
70071
 
  friend class ::CMatchSyntax;
70072
 
  friend class ::ExtGnu;
 
86429
  friend class ::WinAsm;
 
86430
  friend class ::WinDeclSpecs;
 
86431
  friend class ::WinMemberExplSpec;
 
86432
  friend class ::WinTypeKeywords;
 
86433
  friend class ::WinFriend;
70073
86434
  friend class ::ExtAC;
70074
86435
  friend class ::ExtACBuilderCoupling;
70075
86436
  friend class ::ExtACSyntaxCoupling;
70076
86437
  friend class ::ExtACTree;
70077
86438
  friend class ::ExtACKeywords;
70078
 
  friend class ::WinAsm;
70079
 
  friend class ::WinDeclSpecs;
70080
 
  friend class ::WinMemberExplSpec;
70081
 
  friend class ::WinTypeKeywords;
 
86439
  friend class ::ExtGnu;
70082
86440
  friend class ::PragmaOnceUnitState;
70083
86441
  friend class ::PragmaOnce;
70084
 
  friend class ::CCExprResolve;
70085
 
  friend class ::CExprResolve;
 
86442
  friend class ::CMatchSyntax;
70086
86443
 
70087
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86444
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70088
86445
 
70089
86446
  CTree *sons[2]; // ref, declarator
70090
86447
 
70091
86448
public:
70092
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
86449
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
86450
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70093
86451
  static const char *NodeId ();
 
86452
  /** Get the name of the node. Can be compared with NodeId(). */
70094
86453
  const char *NodeName () const { return NodeId (); }
 
86454
  /** Get the number of sons. */
70095
86455
  int Sons () const { return 2; }
 
86456
  /** Get the n-th son.
 
86457
   *  \param n The index of the son.
 
86458
   *  \return The n-th son or NULL. */
70096
86459
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
70097
86460
  CTree *Declarator () const { return sons[1]; }
 
86461
  /** Replace a son.
 
86462
   *  \param old_son The son to replace.
 
86463
   *  \param new_son The new son. */
70098
86464
  void ReplaceSon (CTree *old_son, CTree *new_son) {
70099
86465
    CTree::ReplaceSon (sons, 2, old_son, new_son);
70100
86466
  }
70101
86467
};
70102
86468
 
70103
86469
 
70104
 
#line 70105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86470
#line 86471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70105
86471
} // closed Puma
 
86472
class CCExprResolve;
 
86473
class CExprResolve;
70106
86474
class WinIfExists;
70107
86475
class WinImportHandler;
70108
86476
class WinMacros;
70109
 
class CMatchSyntax;
70110
 
class ExtGnu;
 
86477
class WinAsm;
 
86478
class WinDeclSpecs;
 
86479
class WinMemberExplSpec;
 
86480
class WinTypeKeywords;
 
86481
class WinFriend;
70111
86482
class ExtAC;
70112
86483
class ExtACBuilderCoupling;
70113
86484
class ExtACSyntaxCoupling;
70114
86485
class ExtACTree;
70115
86486
class ExtACKeywords;
70116
 
class WinAsm;
70117
 
class WinDeclSpecs;
70118
 
class WinMemberExplSpec;
70119
 
class WinTypeKeywords;
 
86487
class ExtGnu;
70120
86488
class PragmaOnceUnitState;
70121
86489
class PragmaOnce;
70122
 
class CCExprResolve;
70123
 
class CExprResolve;
 
86490
class CMatchSyntax;
70124
86491
namespace Puma {
70125
86492
 
70126
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86493
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70127
86494
class CT_PtrDeclarator : public CT_Declarator {
70128
 
#line 70129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86495
#line 86496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86496
  friend class ::CCExprResolve;
 
86497
  friend class ::CExprResolve;
70129
86498
  friend class ::WinIfExists;
70130
86499
  friend class ::WinImportHandler;
70131
86500
  friend class ::WinMacros;
70132
 
  friend class ::CMatchSyntax;
70133
 
  friend class ::ExtGnu;
 
86501
  friend class ::WinAsm;
 
86502
  friend class ::WinDeclSpecs;
 
86503
  friend class ::WinMemberExplSpec;
 
86504
  friend class ::WinTypeKeywords;
 
86505
  friend class ::WinFriend;
70134
86506
  friend class ::ExtAC;
70135
86507
  friend class ::ExtACBuilderCoupling;
70136
86508
  friend class ::ExtACSyntaxCoupling;
70137
86509
  friend class ::ExtACTree;
70138
86510
  friend class ::ExtACKeywords;
70139
 
  friend class ::WinAsm;
70140
 
  friend class ::WinDeclSpecs;
70141
 
  friend class ::WinMemberExplSpec;
70142
 
  friend class ::WinTypeKeywords;
 
86511
  friend class ::ExtGnu;
70143
86512
  friend class ::PragmaOnceUnitState;
70144
86513
  friend class ::PragmaOnce;
70145
 
  friend class ::CCExprResolve;
70146
 
  friend class ::CExprResolve;
 
86514
  friend class ::CMatchSyntax;
70147
86515
 
70148
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86516
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70149
86517
 
70150
86518
  CTree *sons[3]; // ptr, cv_quals, declarator
70151
86519
 
70152
86520
public:
70153
86521
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
70154
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
86522
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
70155
86523
  }
 
86524
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70156
86525
  static const char *NodeId ();
 
86526
  /** Get the name of the node. Can be compared with NodeId(). */
70157
86527
  const char *NodeName () const { return NodeId (); }
 
86528
  /** Get the number of sons. */
70158
86529
  int Sons () const { return CTree::Sons (sons, 3); }
 
86530
  /** Get the n-th son.
 
86531
   *  \param n The index of the son.
 
86532
   *  \return The n-th son or NULL. */
70159
86533
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70160
86534
  CTree *Declarator () const { return sons[2]; }
70161
86535
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
86536
  /** Replace a son.
 
86537
   *  \param old_son The son to replace.
 
86538
   *  \param new_son The new son. */
70162
86539
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70163
86540
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70164
86541
  }
70165
86542
};
70166
86543
 
70167
86544
 
70168
 
#line 70169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86545
#line 86546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70169
86546
} // closed Puma
 
86547
class CCExprResolve;
 
86548
class CExprResolve;
70170
86549
class WinIfExists;
70171
86550
class WinImportHandler;
70172
86551
class WinMacros;
70173
 
class CMatchSyntax;
70174
 
class ExtGnu;
 
86552
class WinAsm;
 
86553
class WinDeclSpecs;
 
86554
class WinMemberExplSpec;
 
86555
class WinTypeKeywords;
 
86556
class WinFriend;
70175
86557
class ExtAC;
70176
86558
class ExtACBuilderCoupling;
70177
86559
class ExtACSyntaxCoupling;
70178
86560
class ExtACTree;
70179
86561
class ExtACKeywords;
70180
 
class WinAsm;
70181
 
class WinDeclSpecs;
70182
 
class WinMemberExplSpec;
70183
 
class WinTypeKeywords;
 
86562
class ExtGnu;
70184
86563
class PragmaOnceUnitState;
70185
86564
class PragmaOnce;
70186
 
class CCExprResolve;
70187
 
class CExprResolve;
 
86565
class CMatchSyntax;
70188
86566
namespace Puma {
70189
86567
 
70190
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86568
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70191
86569
class CT_MembPtrDeclarator : public CT_Declarator {
70192
 
#line 70193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86570
#line 86571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86571
  friend class ::CCExprResolve;
 
86572
  friend class ::CExprResolve;
70193
86573
  friend class ::WinIfExists;
70194
86574
  friend class ::WinImportHandler;
70195
86575
  friend class ::WinMacros;
70196
 
  friend class ::CMatchSyntax;
70197
 
  friend class ::ExtGnu;
 
86576
  friend class ::WinAsm;
 
86577
  friend class ::WinDeclSpecs;
 
86578
  friend class ::WinMemberExplSpec;
 
86579
  friend class ::WinTypeKeywords;
 
86580
  friend class ::WinFriend;
70198
86581
  friend class ::ExtAC;
70199
86582
  friend class ::ExtACBuilderCoupling;
70200
86583
  friend class ::ExtACSyntaxCoupling;
70201
86584
  friend class ::ExtACTree;
70202
86585
  friend class ::ExtACKeywords;
70203
 
  friend class ::WinAsm;
70204
 
  friend class ::WinDeclSpecs;
70205
 
  friend class ::WinMemberExplSpec;
70206
 
  friend class ::WinTypeKeywords;
 
86586
  friend class ::ExtGnu;
70207
86587
  friend class ::PragmaOnceUnitState;
70208
86588
  friend class ::PragmaOnce;
70209
 
  friend class ::CCExprResolve;
70210
 
  friend class ::CExprResolve;
 
86589
  friend class ::CMatchSyntax;
70211
86590
 
70212
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86591
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70213
86592
 
70214
86593
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
70215
86594
 
70216
86595
public:
70217
86596
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
70218
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
86597
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
86598
    AddSon (sons[3], q); AddSon (sons[4], d); 
70219
86599
  }
 
86600
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70220
86601
  static const char *NodeId ();
 
86602
  /** Get the name of the node. Can be compared with NodeId(). */
70221
86603
  const char *NodeName () const { return NodeId (); }
 
86604
  /** Get the number of sons. */
70222
86605
  int Sons () const { return CTree::Sons (sons, 5); }
 
86606
  /** Get the n-th son.
 
86607
   *  \param n The index of the son.
 
86608
   *  \return The n-th son or NULL. */
70223
86609
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70224
86610
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
70225
86611
  CTree *Declarator () const { return sons[4]; }
70226
86612
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
86613
  /** Replace a son.
 
86614
   *  \param old_son The son to replace.
 
86615
   *  \param new_son The new son. */
70227
86616
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70228
86617
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70229
86618
  }
70230
86619
};
70231
86620
 
70232
86621
 
70233
 
#line 70234 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86622
#line 86623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70234
86623
} // closed Puma
 
86624
class CCExprResolve;
 
86625
class CExprResolve;
70235
86626
class WinIfExists;
70236
86627
class WinImportHandler;
70237
86628
class WinMacros;
70238
 
class CMatchSyntax;
70239
 
class ExtGnu;
 
86629
class WinAsm;
 
86630
class WinDeclSpecs;
 
86631
class WinMemberExplSpec;
 
86632
class WinTypeKeywords;
 
86633
class WinFriend;
70240
86634
class ExtAC;
70241
86635
class ExtACBuilderCoupling;
70242
86636
class ExtACSyntaxCoupling;
70243
86637
class ExtACTree;
70244
86638
class ExtACKeywords;
70245
 
class WinAsm;
70246
 
class WinDeclSpecs;
70247
 
class WinMemberExplSpec;
70248
 
class WinTypeKeywords;
 
86639
class ExtGnu;
70249
86640
class PragmaOnceUnitState;
70250
86641
class PragmaOnce;
70251
 
class CCExprResolve;
70252
 
class CExprResolve;
 
86642
class CMatchSyntax;
70253
86643
namespace Puma {
70254
86644
 
70255
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86645
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70256
86646
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
70257
 
#line 70258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86647
#line 86648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86648
  friend class ::CCExprResolve;
 
86649
  friend class ::CExprResolve;
70258
86650
  friend class ::WinIfExists;
70259
86651
  friend class ::WinImportHandler;
70260
86652
  friend class ::WinMacros;
70261
 
  friend class ::CMatchSyntax;
70262
 
  friend class ::ExtGnu;
 
86653
  friend class ::WinAsm;
 
86654
  friend class ::WinDeclSpecs;
 
86655
  friend class ::WinMemberExplSpec;
 
86656
  friend class ::WinTypeKeywords;
 
86657
  friend class ::WinFriend;
70263
86658
  friend class ::ExtAC;
70264
86659
  friend class ::ExtACBuilderCoupling;
70265
86660
  friend class ::ExtACSyntaxCoupling;
70266
86661
  friend class ::ExtACTree;
70267
86662
  friend class ::ExtACKeywords;
70268
 
  friend class ::WinAsm;
70269
 
  friend class ::WinDeclSpecs;
70270
 
  friend class ::WinMemberExplSpec;
70271
 
  friend class ::WinTypeKeywords;
 
86663
  friend class ::ExtGnu;
70272
86664
  friend class ::PragmaOnceUnitState;
70273
86665
  friend class ::PragmaOnce;
70274
 
  friend class ::CCExprResolve;
70275
 
  friend class ::CExprResolve;
 
86666
  friend class ::CMatchSyntax;
70276
86667
 
70277
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86668
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70278
86669
 
70279
86670
  CTree *sons[3]; // declarator, colon, expr
70280
86671
 
70281
86672
public:
70282
86673
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
70283
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
86674
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
70284
86675
  }
 
86676
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70285
86677
  static const char *NodeId ();
 
86678
  /** Get the name of the node. Can be compared with NodeId(). */
70286
86679
  const char *NodeName () const { return NodeId (); }
 
86680
  /** Get the number of sons. */
70287
86681
  int Sons () const { return CTree::Sons (sons, 3); }
 
86682
  /** Get the n-th son.
 
86683
   *  \param n The index of the son.
 
86684
   *  \return The n-th son or NULL. */
70288
86685
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70289
86686
  CTree *Declarator () const { return sons[0]; }
70290
86687
  CTree *Expr () const { return sons[2]; }
70291
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
86688
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
70292
86689
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
86690
  /** Replace a son.
 
86691
   *  \param old_son The son to replace.
 
86692
   *  \param new_son The new son. */
70293
86693
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70294
86694
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70295
86695
  }
70302
86702
/*****************************************************************************/
70303
86703
 
70304
86704
 
70305
 
#line 70306 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86705
#line 86706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70306
86706
} // closed Puma
 
86707
class CCExprResolve;
 
86708
class CExprResolve;
70307
86709
class WinIfExists;
70308
86710
class WinImportHandler;
70309
86711
class WinMacros;
70310
 
class CMatchSyntax;
70311
 
class ExtGnu;
 
86712
class WinAsm;
 
86713
class WinDeclSpecs;
 
86714
class WinMemberExplSpec;
 
86715
class WinTypeKeywords;
 
86716
class WinFriend;
70312
86717
class ExtAC;
70313
86718
class ExtACBuilderCoupling;
70314
86719
class ExtACSyntaxCoupling;
70315
86720
class ExtACTree;
70316
86721
class ExtACKeywords;
70317
 
class WinAsm;
70318
 
class WinDeclSpecs;
70319
 
class WinMemberExplSpec;
70320
 
class WinTypeKeywords;
 
86722
class ExtGnu;
70321
86723
class PragmaOnceUnitState;
70322
86724
class PragmaOnce;
70323
 
class CCExprResolve;
70324
 
class CExprResolve;
 
86725
class CMatchSyntax;
70325
86726
namespace Puma {
70326
86727
 
70327
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86728
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70328
86729
class CT_Statement : public CTree {
70329
 
#line 70330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86730
#line 86731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86731
  friend class ::CCExprResolve;
 
86732
  friend class ::CExprResolve;
70330
86733
  friend class ::WinIfExists;
70331
86734
  friend class ::WinImportHandler;
70332
86735
  friend class ::WinMacros;
70333
 
  friend class ::CMatchSyntax;
70334
 
  friend class ::ExtGnu;
 
86736
  friend class ::WinAsm;
 
86737
  friend class ::WinDeclSpecs;
 
86738
  friend class ::WinMemberExplSpec;
 
86739
  friend class ::WinTypeKeywords;
 
86740
  friend class ::WinFriend;
70335
86741
  friend class ::ExtAC;
70336
86742
  friend class ::ExtACBuilderCoupling;
70337
86743
  friend class ::ExtACSyntaxCoupling;
70338
86744
  friend class ::ExtACTree;
70339
86745
  friend class ::ExtACKeywords;
70340
 
  friend class ::WinAsm;
70341
 
  friend class ::WinDeclSpecs;
70342
 
  friend class ::WinMemberExplSpec;
70343
 
  friend class ::WinTypeKeywords;
 
86746
  friend class ::ExtGnu;
70344
86747
  friend class ::PragmaOnceUnitState;
70345
86748
  friend class ::PragmaOnce;
70346
 
  friend class ::CCExprResolve;
70347
 
  friend class ::CExprResolve;
 
86749
  friend class ::CMatchSyntax;
70348
86750
 
70349
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86751
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70350
86752
 
70351
86753
protected:
70352
86754
  CT_Statement () {}
 
86755
  virtual CT_Statement *IsStatement () { return this; }
70353
86756
};
70354
86757
 
70355
86758
 
70356
 
#line 70357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86759
#line 86760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70357
86760
} // closed Puma
 
86761
class CCExprResolve;
 
86762
class CExprResolve;
70358
86763
class WinIfExists;
70359
86764
class WinImportHandler;
70360
86765
class WinMacros;
70361
 
class CMatchSyntax;
70362
 
class ExtGnu;
 
86766
class WinAsm;
 
86767
class WinDeclSpecs;
 
86768
class WinMemberExplSpec;
 
86769
class WinTypeKeywords;
 
86770
class WinFriend;
70363
86771
class ExtAC;
70364
86772
class ExtACBuilderCoupling;
70365
86773
class ExtACSyntaxCoupling;
70366
86774
class ExtACTree;
70367
86775
class ExtACKeywords;
70368
 
class WinAsm;
70369
 
class WinDeclSpecs;
70370
 
class WinMemberExplSpec;
70371
 
class WinTypeKeywords;
 
86776
class ExtGnu;
70372
86777
class PragmaOnceUnitState;
70373
86778
class PragmaOnce;
70374
 
class CCExprResolve;
70375
 
class CExprResolve;
 
86779
class CMatchSyntax;
70376
86780
namespace Puma {
70377
86781
 
70378
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86782
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70379
86783
class CT_LabelStmt : public CT_Statement {
70380
 
#line 70381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86784
#line 86785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86785
  friend class ::CCExprResolve;
 
86786
  friend class ::CExprResolve;
70381
86787
  friend class ::WinIfExists;
70382
86788
  friend class ::WinImportHandler;
70383
86789
  friend class ::WinMacros;
70384
 
  friend class ::CMatchSyntax;
70385
 
  friend class ::ExtGnu;
 
86790
  friend class ::WinAsm;
 
86791
  friend class ::WinDeclSpecs;
 
86792
  friend class ::WinMemberExplSpec;
 
86793
  friend class ::WinTypeKeywords;
 
86794
  friend class ::WinFriend;
70386
86795
  friend class ::ExtAC;
70387
86796
  friend class ::ExtACBuilderCoupling;
70388
86797
  friend class ::ExtACSyntaxCoupling;
70389
86798
  friend class ::ExtACTree;
70390
86799
  friend class ::ExtACKeywords;
70391
 
  friend class ::WinAsm;
70392
 
  friend class ::WinDeclSpecs;
70393
 
  friend class ::WinMemberExplSpec;
70394
 
  friend class ::WinTypeKeywords;
 
86800
  friend class ::ExtGnu;
70395
86801
  friend class ::PragmaOnceUnitState;
70396
86802
  friend class ::PragmaOnce;
70397
 
  friend class ::CCExprResolve;
70398
 
  friend class ::CExprResolve;
 
86803
  friend class ::CMatchSyntax;
70399
86804
 
70400
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86805
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70401
86806
 
70402
86807
  CTree *sons[3]; // id, colon, stmt
70403
86808
 
70404
86809
public:
70405
86810
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
70406
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
86811
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
70407
86812
  }
 
86813
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70408
86814
  static const char *NodeId ();
 
86815
  /** Get the name of the node. Can be compared with NodeId(). */
70409
86816
  const char *NodeName () const { return NodeId (); }
 
86817
  /** Get the number of sons. */
70410
86818
  int Sons () const { return 3; }
 
86819
  /** Get the n-th son.
 
86820
   *  \param n The index of the son.
 
86821
   *  \return The n-th son or NULL. */
70411
86822
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70412
86823
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
70413
86824
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
86825
  /** Replace a son.
 
86826
   *  \param old_son The son to replace.
 
86827
   *  \param new_son The new son. */
70414
86828
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70415
86829
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70416
86830
  }
70417
86831
};
70418
86832
 
70419
86833
 
70420
 
#line 70421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86834
#line 86835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70421
86835
} // closed Puma
 
86836
class CCExprResolve;
 
86837
class CExprResolve;
70422
86838
class WinIfExists;
70423
86839
class WinImportHandler;
70424
86840
class WinMacros;
70425
 
class CMatchSyntax;
70426
 
class ExtGnu;
 
86841
class WinAsm;
 
86842
class WinDeclSpecs;
 
86843
class WinMemberExplSpec;
 
86844
class WinTypeKeywords;
 
86845
class WinFriend;
70427
86846
class ExtAC;
70428
86847
class ExtACBuilderCoupling;
70429
86848
class ExtACSyntaxCoupling;
70430
86849
class ExtACTree;
70431
86850
class ExtACKeywords;
70432
 
class WinAsm;
70433
 
class WinDeclSpecs;
70434
 
class WinMemberExplSpec;
70435
 
class WinTypeKeywords;
 
86851
class ExtGnu;
70436
86852
class PragmaOnceUnitState;
70437
86853
class PragmaOnce;
70438
 
class CCExprResolve;
70439
 
class CExprResolve;
 
86854
class CMatchSyntax;
70440
86855
namespace Puma {
70441
86856
 
70442
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86857
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70443
86858
class CT_DefaultStmt : public CT_Statement {
70444
 
#line 70445 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86859
#line 86860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86860
  friend class ::CCExprResolve;
 
86861
  friend class ::CExprResolve;
70445
86862
  friend class ::WinIfExists;
70446
86863
  friend class ::WinImportHandler;
70447
86864
  friend class ::WinMacros;
70448
 
  friend class ::CMatchSyntax;
70449
 
  friend class ::ExtGnu;
 
86865
  friend class ::WinAsm;
 
86866
  friend class ::WinDeclSpecs;
 
86867
  friend class ::WinMemberExplSpec;
 
86868
  friend class ::WinTypeKeywords;
 
86869
  friend class ::WinFriend;
70450
86870
  friend class ::ExtAC;
70451
86871
  friend class ::ExtACBuilderCoupling;
70452
86872
  friend class ::ExtACSyntaxCoupling;
70453
86873
  friend class ::ExtACTree;
70454
86874
  friend class ::ExtACKeywords;
70455
 
  friend class ::WinAsm;
70456
 
  friend class ::WinDeclSpecs;
70457
 
  friend class ::WinMemberExplSpec;
70458
 
  friend class ::WinTypeKeywords;
 
86875
  friend class ::ExtGnu;
70459
86876
  friend class ::PragmaOnceUnitState;
70460
86877
  friend class ::PragmaOnce;
70461
 
  friend class ::CCExprResolve;
70462
 
  friend class ::CExprResolve;
 
86878
  friend class ::CMatchSyntax;
70463
86879
 
70464
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86880
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70465
86881
 
70466
86882
  CTree *sons[3]; // keyword, colon, stmt
70467
86883
 
70468
86884
public:
70469
86885
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
70470
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
86886
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
70471
86887
  }
 
86888
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70472
86889
  static const char *NodeId ();
 
86890
  /** Get the name of the node. Can be compared with NodeId(). */
70473
86891
  const char *NodeName () const { return NodeId (); }
 
86892
  /** Get the number of sons. */
70474
86893
  int Sons () const { return 3; }
 
86894
  /** Get the n-th son.
 
86895
   *  \param n The index of the son.
 
86896
   *  \return The n-th son or NULL. */
70475
86897
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70476
86898
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
86899
  /** Replace a son.
 
86900
   *  \param old_son The son to replace.
 
86901
   *  \param new_son The new son. */
70477
86902
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70478
86903
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70479
86904
  }
70480
86905
};
70481
86906
 
70482
86907
 
70483
 
#line 70484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86908
#line 86909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70484
86909
} // closed Puma
 
86910
class CCExprResolve;
 
86911
class CExprResolve;
70485
86912
class WinIfExists;
70486
86913
class WinImportHandler;
70487
86914
class WinMacros;
70488
 
class CMatchSyntax;
70489
 
class ExtGnu;
 
86915
class WinAsm;
 
86916
class WinDeclSpecs;
 
86917
class WinMemberExplSpec;
 
86918
class WinTypeKeywords;
 
86919
class WinFriend;
70490
86920
class ExtAC;
70491
86921
class ExtACBuilderCoupling;
70492
86922
class ExtACSyntaxCoupling;
70493
86923
class ExtACTree;
70494
86924
class ExtACKeywords;
70495
 
class WinAsm;
70496
 
class WinDeclSpecs;
70497
 
class WinMemberExplSpec;
70498
 
class WinTypeKeywords;
 
86925
class ExtGnu;
70499
86926
class PragmaOnceUnitState;
70500
86927
class PragmaOnce;
70501
 
class CCExprResolve;
70502
 
class CExprResolve;
 
86928
class CMatchSyntax;
70503
86929
namespace Puma {
70504
86930
 
70505
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86931
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70506
86932
class CT_TryStmt : public CT_Statement {
70507
 
#line 70508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86933
#line 86934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
86934
  friend class ::CCExprResolve;
 
86935
  friend class ::CExprResolve;
70508
86936
  friend class ::WinIfExists;
70509
86937
  friend class ::WinImportHandler;
70510
86938
  friend class ::WinMacros;
70511
 
  friend class ::CMatchSyntax;
70512
 
  friend class ::ExtGnu;
 
86939
  friend class ::WinAsm;
 
86940
  friend class ::WinDeclSpecs;
 
86941
  friend class ::WinMemberExplSpec;
 
86942
  friend class ::WinTypeKeywords;
 
86943
  friend class ::WinFriend;
70513
86944
  friend class ::ExtAC;
70514
86945
  friend class ::ExtACBuilderCoupling;
70515
86946
  friend class ::ExtACSyntaxCoupling;
70516
86947
  friend class ::ExtACTree;
70517
86948
  friend class ::ExtACKeywords;
70518
 
  friend class ::WinAsm;
70519
 
  friend class ::WinDeclSpecs;
70520
 
  friend class ::WinMemberExplSpec;
70521
 
  friend class ::WinTypeKeywords;
 
86949
  friend class ::ExtGnu;
70522
86950
  friend class ::PragmaOnceUnitState;
70523
86951
  friend class ::PragmaOnce;
70524
 
  friend class ::CCExprResolve;
70525
 
  friend class ::CExprResolve;
 
86952
  friend class ::CMatchSyntax;
70526
86953
 
70527
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86954
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70528
86955
 
70529
86956
  CTree *sons[3]; // try, stmt, handlers
70530
86957
 
70531
86958
public:
70532
86959
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
70533
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
86960
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
70534
86961
  }
 
86962
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70535
86963
  static const char *NodeId ();
 
86964
  /** Get the name of the node. Can be compared with NodeId(). */
70536
86965
  const char *NodeName () const { return NodeId (); }
 
86966
  /** Get the number of sons. */
70537
86967
  int Sons () const { return 3; }
 
86968
  /** Get the n-th son.
 
86969
   *  \param n The index of the son.
 
86970
   *  \return The n-th son or NULL. */
70538
86971
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70539
86972
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
70540
86973
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
86974
  /** Replace a son.
 
86975
   *  \param old_son The son to replace.
 
86976
   *  \param new_son The new son. */
70541
86977
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70542
86978
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70543
86979
  }
70544
86980
};
70545
86981
 
70546
86982
 
70547
 
#line 70548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
86983
#line 86984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70548
86984
} // closed Puma
 
86985
class CCExprResolve;
 
86986
class CExprResolve;
70549
86987
class WinIfExists;
70550
86988
class WinImportHandler;
70551
86989
class WinMacros;
70552
 
class CMatchSyntax;
70553
 
class ExtGnu;
 
86990
class WinAsm;
 
86991
class WinDeclSpecs;
 
86992
class WinMemberExplSpec;
 
86993
class WinTypeKeywords;
 
86994
class WinFriend;
70554
86995
class ExtAC;
70555
86996
class ExtACBuilderCoupling;
70556
86997
class ExtACSyntaxCoupling;
70557
86998
class ExtACTree;
70558
86999
class ExtACKeywords;
70559
 
class WinAsm;
70560
 
class WinDeclSpecs;
70561
 
class WinMemberExplSpec;
70562
 
class WinTypeKeywords;
 
87000
class ExtGnu;
70563
87001
class PragmaOnceUnitState;
70564
87002
class PragmaOnce;
70565
 
class CCExprResolve;
70566
 
class CExprResolve;
 
87003
class CMatchSyntax;
70567
87004
namespace Puma {
70568
87005
 
70569
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87006
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70570
87007
class CT_CaseStmt : public CT_Statement {
70571
 
#line 70572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87008
#line 87009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87009
  friend class ::CCExprResolve;
 
87010
  friend class ::CExprResolve;
70572
87011
  friend class ::WinIfExists;
70573
87012
  friend class ::WinImportHandler;
70574
87013
  friend class ::WinMacros;
70575
 
  friend class ::CMatchSyntax;
70576
 
  friend class ::ExtGnu;
 
87014
  friend class ::WinAsm;
 
87015
  friend class ::WinDeclSpecs;
 
87016
  friend class ::WinMemberExplSpec;
 
87017
  friend class ::WinTypeKeywords;
 
87018
  friend class ::WinFriend;
70577
87019
  friend class ::ExtAC;
70578
87020
  friend class ::ExtACBuilderCoupling;
70579
87021
  friend class ::ExtACSyntaxCoupling;
70580
87022
  friend class ::ExtACTree;
70581
87023
  friend class ::ExtACKeywords;
70582
 
  friend class ::WinAsm;
70583
 
  friend class ::WinDeclSpecs;
70584
 
  friend class ::WinMemberExplSpec;
70585
 
  friend class ::WinTypeKeywords;
 
87024
  friend class ::ExtGnu;
70586
87025
  friend class ::PragmaOnceUnitState;
70587
87026
  friend class ::PragmaOnce;
70588
 
  friend class ::CCExprResolve;
70589
 
  friend class ::CExprResolve;
 
87027
  friend class ::CMatchSyntax;
70590
87028
 
70591
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87029
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70592
87030
 
70593
87031
  CTree *sons[4]; // keyword, expr, colon, stmt
70594
87032
 
70595
87033
public:
70596
87034
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
70597
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
87035
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
87036
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
70598
87037
  }
 
87038
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70599
87039
  static const char *NodeId ();
 
87040
  /** Get the name of the node. Can be compared with NodeId(). */
70600
87041
  const char *NodeName () const { return NodeId (); }
 
87042
  /** Get the number of sons. */
70601
87043
  int Sons () const { return 4; }
 
87044
  /** Get the n-th son.
 
87045
   *  \param n The index of the son.
 
87046
   *  \return The n-th son or NULL. */
70602
87047
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
70603
87048
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
70604
87049
  CTree *Expr () const { return sons[1]; }
 
87050
  /** Replace a son.
 
87051
   *  \param old_son The son to replace.
 
87052
   *  \param new_son The new son. */
70605
87053
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70606
87054
    CTree::ReplaceSon (sons, 4, old_son, new_son);
70607
87055
  }
70608
87056
};
70609
87057
 
70610
87058
 
70611
 
#line 70612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87059
#line 87060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70612
87060
} // closed Puma
 
87061
class CCExprResolve;
 
87062
class CExprResolve;
70613
87063
class WinIfExists;
70614
87064
class WinImportHandler;
70615
87065
class WinMacros;
70616
 
class CMatchSyntax;
70617
 
class ExtGnu;
 
87066
class WinAsm;
 
87067
class WinDeclSpecs;
 
87068
class WinMemberExplSpec;
 
87069
class WinTypeKeywords;
 
87070
class WinFriend;
70618
87071
class ExtAC;
70619
87072
class ExtACBuilderCoupling;
70620
87073
class ExtACSyntaxCoupling;
70621
87074
class ExtACTree;
70622
87075
class ExtACKeywords;
70623
 
class WinAsm;
70624
 
class WinDeclSpecs;
70625
 
class WinMemberExplSpec;
70626
 
class WinTypeKeywords;
 
87076
class ExtGnu;
70627
87077
class PragmaOnceUnitState;
70628
87078
class PragmaOnce;
70629
 
class CCExprResolve;
70630
 
class CExprResolve;
 
87079
class CMatchSyntax;
70631
87080
namespace Puma {
70632
87081
 
70633
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87082
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70634
87083
class CT_ExprStmt : public CT_Statement {
70635
 
#line 70636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87084
#line 87085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87085
  friend class ::CCExprResolve;
 
87086
  friend class ::CExprResolve;
70636
87087
  friend class ::WinIfExists;
70637
87088
  friend class ::WinImportHandler;
70638
87089
  friend class ::WinMacros;
70639
 
  friend class ::CMatchSyntax;
70640
 
  friend class ::ExtGnu;
 
87090
  friend class ::WinAsm;
 
87091
  friend class ::WinDeclSpecs;
 
87092
  friend class ::WinMemberExplSpec;
 
87093
  friend class ::WinTypeKeywords;
 
87094
  friend class ::WinFriend;
70641
87095
  friend class ::ExtAC;
70642
87096
  friend class ::ExtACBuilderCoupling;
70643
87097
  friend class ::ExtACSyntaxCoupling;
70644
87098
  friend class ::ExtACTree;
70645
87099
  friend class ::ExtACKeywords;
70646
 
  friend class ::WinAsm;
70647
 
  friend class ::WinDeclSpecs;
70648
 
  friend class ::WinMemberExplSpec;
70649
 
  friend class ::WinTypeKeywords;
 
87100
  friend class ::ExtGnu;
70650
87101
  friend class ::PragmaOnceUnitState;
70651
87102
  friend class ::PragmaOnce;
70652
 
  friend class ::CCExprResolve;
70653
 
  friend class ::CExprResolve;
 
87103
  friend class ::CMatchSyntax;
70654
87104
 
70655
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87105
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70656
87106
 
70657
87107
  CTree *sons[2]; // expr, semi_colon
70658
87108
 
70659
87109
public:
70660
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
87110
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
87111
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70661
87112
  static const char *NodeId ();
 
87113
  /** Get the name of the node. Can be compared with NodeId(). */
70662
87114
  const char *NodeName () const { return NodeId (); }
 
87115
  /** Get the number of sons. */
70663
87116
  int Sons () const { return CTree::Sons (sons, 2); }
 
87117
  /** Get the n-th son.
 
87118
   *  \param n The index of the son.
 
87119
   *  \return The n-th son or NULL. */
70664
87120
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
70665
87121
  CTree *Expr () const { return sons[0]; }
 
87122
  /** Replace a son.
 
87123
   *  \param old_son The son to replace.
 
87124
   *  \param new_son The new son. */
70666
87125
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70667
87126
    CTree::ReplaceSon (sons, 2, old_son, new_son);
70668
87127
  }
70669
87128
};
70670
87129
 
70671
87130
 
70672
 
#line 70673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87131
#line 87132 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70673
87132
} // closed Puma
 
87133
class CCExprResolve;
 
87134
class CExprResolve;
70674
87135
class WinIfExists;
70675
87136
class WinImportHandler;
70676
87137
class WinMacros;
70677
 
class CMatchSyntax;
70678
 
class ExtGnu;
 
87138
class WinAsm;
 
87139
class WinDeclSpecs;
 
87140
class WinMemberExplSpec;
 
87141
class WinTypeKeywords;
 
87142
class WinFriend;
70679
87143
class ExtAC;
70680
87144
class ExtACBuilderCoupling;
70681
87145
class ExtACSyntaxCoupling;
70682
87146
class ExtACTree;
70683
87147
class ExtACKeywords;
70684
 
class WinAsm;
70685
 
class WinDeclSpecs;
70686
 
class WinMemberExplSpec;
70687
 
class WinTypeKeywords;
 
87148
class ExtGnu;
70688
87149
class PragmaOnceUnitState;
70689
87150
class PragmaOnce;
70690
 
class CCExprResolve;
70691
 
class CExprResolve;
 
87151
class CMatchSyntax;
70692
87152
namespace Puma {
70693
87153
 
70694
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87154
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70695
87155
class CT_DeclStmt : public CT_Statement {
70696
 
#line 70697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87156
#line 87157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87157
  friend class ::CCExprResolve;
 
87158
  friend class ::CExprResolve;
70697
87159
  friend class ::WinIfExists;
70698
87160
  friend class ::WinImportHandler;
70699
87161
  friend class ::WinMacros;
70700
 
  friend class ::CMatchSyntax;
70701
 
  friend class ::ExtGnu;
 
87162
  friend class ::WinAsm;
 
87163
  friend class ::WinDeclSpecs;
 
87164
  friend class ::WinMemberExplSpec;
 
87165
  friend class ::WinTypeKeywords;
 
87166
  friend class ::WinFriend;
70702
87167
  friend class ::ExtAC;
70703
87168
  friend class ::ExtACBuilderCoupling;
70704
87169
  friend class ::ExtACSyntaxCoupling;
70705
87170
  friend class ::ExtACTree;
70706
87171
  friend class ::ExtACKeywords;
70707
 
  friend class ::WinAsm;
70708
 
  friend class ::WinDeclSpecs;
70709
 
  friend class ::WinMemberExplSpec;
70710
 
  friend class ::WinTypeKeywords;
 
87172
  friend class ::ExtGnu;
70711
87173
  friend class ::PragmaOnceUnitState;
70712
87174
  friend class ::PragmaOnce;
70713
 
  friend class ::CCExprResolve;
70714
 
  friend class ::CExprResolve;
 
87175
  friend class ::CMatchSyntax;
70715
87176
 
70716
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87177
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70717
87178
 
70718
87179
  CTree *_decl;
70719
87180
 
70720
87181
public:
70721
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
87182
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
87183
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70722
87184
  static const char *NodeId ();
 
87185
  /** Get the name of the node. Can be compared with NodeId(). */
70723
87186
  const char *NodeName () const { return NodeId (); }
 
87187
  /** Get the number of sons. */
70724
87188
  int Sons () const { return 1; }
 
87189
  /** Get the n-th son.
 
87190
   *  \param n The index of the son.
 
87191
   *  \return The n-th son or NULL. */
70725
87192
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
87193
  /** Replace a son.
 
87194
   *  \param old_son The son to replace.
 
87195
   *  \param new_son The new son. */
70726
87196
  void ReplaceSon (CTree *old_son, CTree *new_son) 
70727
 
   { if (old_son == _decl) _decl = new_son; }
 
87197
   { CTree::ReplaceSon (_decl, old_son, new_son); }
70728
87198
};
70729
87199
 
70730
87200
 
70731
 
#line 70732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87201
#line 87202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70732
87202
} // closed Puma
 
87203
class CCExprResolve;
 
87204
class CExprResolve;
70733
87205
class WinIfExists;
70734
87206
class WinImportHandler;
70735
87207
class WinMacros;
70736
 
class CMatchSyntax;
70737
 
class ExtGnu;
 
87208
class WinAsm;
 
87209
class WinDeclSpecs;
 
87210
class WinMemberExplSpec;
 
87211
class WinTypeKeywords;
 
87212
class WinFriend;
70738
87213
class ExtAC;
70739
87214
class ExtACBuilderCoupling;
70740
87215
class ExtACSyntaxCoupling;
70741
87216
class ExtACTree;
70742
87217
class ExtACKeywords;
70743
 
class WinAsm;
70744
 
class WinDeclSpecs;
70745
 
class WinMemberExplSpec;
70746
 
class WinTypeKeywords;
 
87218
class ExtGnu;
70747
87219
class PragmaOnceUnitState;
70748
87220
class PragmaOnce;
70749
 
class CCExprResolve;
70750
 
class CExprResolve;
 
87221
class CMatchSyntax;
70751
87222
namespace Puma {
70752
87223
 
70753
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87224
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70754
87225
class CT_SwitchStmt : public CT_Statement, public CSemScope {
70755
 
#line 70756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87226
#line 87227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87227
  friend class ::CCExprResolve;
 
87228
  friend class ::CExprResolve;
70756
87229
  friend class ::WinIfExists;
70757
87230
  friend class ::WinImportHandler;
70758
87231
  friend class ::WinMacros;
70759
 
  friend class ::CMatchSyntax;
70760
 
  friend class ::ExtGnu;
 
87232
  friend class ::WinAsm;
 
87233
  friend class ::WinDeclSpecs;
 
87234
  friend class ::WinMemberExplSpec;
 
87235
  friend class ::WinTypeKeywords;
 
87236
  friend class ::WinFriend;
70761
87237
  friend class ::ExtAC;
70762
87238
  friend class ::ExtACBuilderCoupling;
70763
87239
  friend class ::ExtACSyntaxCoupling;
70764
87240
  friend class ::ExtACTree;
70765
87241
  friend class ::ExtACKeywords;
70766
 
  friend class ::WinAsm;
70767
 
  friend class ::WinDeclSpecs;
70768
 
  friend class ::WinMemberExplSpec;
70769
 
  friend class ::WinTypeKeywords;
 
87242
  friend class ::ExtGnu;
70770
87243
  friend class ::PragmaOnceUnitState;
70771
87244
  friend class ::PragmaOnce;
70772
 
  friend class ::CCExprResolve;
70773
 
  friend class ::CExprResolve;
 
87245
  friend class ::CMatchSyntax;
70774
87246
 
70775
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87247
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70776
87248
 
70777
87249
  CTree *sons[5]; // keyword, open, cond, close, stmt
70778
87250
 
70779
87251
public:
70780
87252
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
70781
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
87253
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
87254
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
70782
87255
  }
 
87256
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70783
87257
  static const char *NodeId ();
 
87258
  /** Get the name of the node. Can be compared with NodeId(). */
70784
87259
  const char *NodeName () const { return NodeId (); }
 
87260
  /** Get the number of sons. */
70785
87261
  int Sons () const { return 5; }
 
87262
  /** Get the n-th son.
 
87263
   *  \param n The index of the son.
 
87264
   *  \return The n-th son or NULL. */
70786
87265
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70787
87266
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
70788
87267
  CTree *Condition () const { return sons[2]; }
 
87268
  /** Replace a son.
 
87269
   *  \param old_son The son to replace.
 
87270
   *  \param new_son The new son. */
70789
87271
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70790
87272
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70791
87273
  }
 
87274
  CSemScope *SemScope () const { return (CSemScope*)this; }
70792
87275
};
70793
87276
 
70794
87277
 
70795
 
#line 70796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87278
#line 87279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70796
87279
} // closed Puma
 
87280
class CCExprResolve;
 
87281
class CExprResolve;
70797
87282
class WinIfExists;
70798
87283
class WinImportHandler;
70799
87284
class WinMacros;
70800
 
class CMatchSyntax;
70801
 
class ExtGnu;
 
87285
class WinAsm;
 
87286
class WinDeclSpecs;
 
87287
class WinMemberExplSpec;
 
87288
class WinTypeKeywords;
 
87289
class WinFriend;
70802
87290
class ExtAC;
70803
87291
class ExtACBuilderCoupling;
70804
87292
class ExtACSyntaxCoupling;
70805
87293
class ExtACTree;
70806
87294
class ExtACKeywords;
70807
 
class WinAsm;
70808
 
class WinDeclSpecs;
70809
 
class WinMemberExplSpec;
70810
 
class WinTypeKeywords;
 
87295
class ExtGnu;
70811
87296
class PragmaOnceUnitState;
70812
87297
class PragmaOnce;
70813
 
class CCExprResolve;
70814
 
class CExprResolve;
 
87298
class CMatchSyntax;
70815
87299
namespace Puma {
70816
87300
 
70817
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87301
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70818
87302
class CT_IfStmt : public CT_Statement, public CSemScope {
70819
 
#line 70820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87303
#line 87304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87304
  friend class ::CCExprResolve;
 
87305
  friend class ::CExprResolve;
70820
87306
  friend class ::WinIfExists;
70821
87307
  friend class ::WinImportHandler;
70822
87308
  friend class ::WinMacros;
70823
 
  friend class ::CMatchSyntax;
70824
 
  friend class ::ExtGnu;
 
87309
  friend class ::WinAsm;
 
87310
  friend class ::WinDeclSpecs;
 
87311
  friend class ::WinMemberExplSpec;
 
87312
  friend class ::WinTypeKeywords;
 
87313
  friend class ::WinFriend;
70825
87314
  friend class ::ExtAC;
70826
87315
  friend class ::ExtACBuilderCoupling;
70827
87316
  friend class ::ExtACSyntaxCoupling;
70828
87317
  friend class ::ExtACTree;
70829
87318
  friend class ::ExtACKeywords;
70830
 
  friend class ::WinAsm;
70831
 
  friend class ::WinDeclSpecs;
70832
 
  friend class ::WinMemberExplSpec;
70833
 
  friend class ::WinTypeKeywords;
 
87319
  friend class ::ExtGnu;
70834
87320
  friend class ::PragmaOnceUnitState;
70835
87321
  friend class ::PragmaOnce;
70836
 
  friend class ::CCExprResolve;
70837
 
  friend class ::CExprResolve;
 
87322
  friend class ::CMatchSyntax;
70838
87323
 
70839
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87324
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70840
87325
 
70841
87326
  CTree *sons[5]; // keyword, open, cond, close, stmt
70842
87327
 
70843
87328
public:
70844
87329
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
70845
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
87330
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
87331
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
70846
87332
  }
 
87333
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70847
87334
  static const char *NodeId ();
 
87335
  /** Get the name of the node. Can be compared with NodeId(). */
70848
87336
  const char *NodeName () const { return NodeId (); }
 
87337
  /** Get the number of sons. */
70849
87338
  int Sons () const { return 5; }
 
87339
  /** Get the n-th son.
 
87340
   *  \param n The index of the son.
 
87341
   *  \return The n-th son or NULL. */
70850
87342
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70851
87343
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
70852
87344
  CTree *Condition () const { return sons[2]; }
 
87345
  /** Replace a son.
 
87346
   *  \param old_son The son to replace.
 
87347
   *  \param new_son The new son. */
70853
87348
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70854
87349
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70855
87350
  }
 
87351
  CSemScope *SemScope () const { return (CSemScope*)this; }
70856
87352
};
70857
87353
 
70858
87354
 
70859
 
#line 70860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87355
#line 87356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70860
87356
} // closed Puma
 
87357
class CCExprResolve;
 
87358
class CExprResolve;
70861
87359
class WinIfExists;
70862
87360
class WinImportHandler;
70863
87361
class WinMacros;
70864
 
class CMatchSyntax;
70865
 
class ExtGnu;
 
87362
class WinAsm;
 
87363
class WinDeclSpecs;
 
87364
class WinMemberExplSpec;
 
87365
class WinTypeKeywords;
 
87366
class WinFriend;
70866
87367
class ExtAC;
70867
87368
class ExtACBuilderCoupling;
70868
87369
class ExtACSyntaxCoupling;
70869
87370
class ExtACTree;
70870
87371
class ExtACKeywords;
70871
 
class WinAsm;
70872
 
class WinDeclSpecs;
70873
 
class WinMemberExplSpec;
70874
 
class WinTypeKeywords;
 
87372
class ExtGnu;
70875
87373
class PragmaOnceUnitState;
70876
87374
class PragmaOnce;
70877
 
class CCExprResolve;
70878
 
class CExprResolve;
 
87375
class CMatchSyntax;
70879
87376
namespace Puma {
70880
87377
 
70881
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87378
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70882
87379
class CT_IfElseStmt : public CT_Statement, public CSemScope {
70883
 
#line 70884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87380
#line 87381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87381
  friend class ::CCExprResolve;
 
87382
  friend class ::CExprResolve;
70884
87383
  friend class ::WinIfExists;
70885
87384
  friend class ::WinImportHandler;
70886
87385
  friend class ::WinMacros;
70887
 
  friend class ::CMatchSyntax;
70888
 
  friend class ::ExtGnu;
 
87386
  friend class ::WinAsm;
 
87387
  friend class ::WinDeclSpecs;
 
87388
  friend class ::WinMemberExplSpec;
 
87389
  friend class ::WinTypeKeywords;
 
87390
  friend class ::WinFriend;
70889
87391
  friend class ::ExtAC;
70890
87392
  friend class ::ExtACBuilderCoupling;
70891
87393
  friend class ::ExtACSyntaxCoupling;
70892
87394
  friend class ::ExtACTree;
70893
87395
  friend class ::ExtACKeywords;
70894
 
  friend class ::WinAsm;
70895
 
  friend class ::WinDeclSpecs;
70896
 
  friend class ::WinMemberExplSpec;
70897
 
  friend class ::WinTypeKeywords;
 
87396
  friend class ::ExtGnu;
70898
87397
  friend class ::PragmaOnceUnitState;
70899
87398
  friend class ::PragmaOnce;
70900
 
  friend class ::CCExprResolve;
70901
 
  friend class ::CExprResolve;
 
87399
  friend class ::CMatchSyntax;
70902
87400
 
70903
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87401
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70904
87402
 
70905
87403
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
70906
87404
 
70907
87405
public:
70908
87406
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
70909
87407
                 CTree *is, CTree *e, CTree *es) {
70910
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
70911
 
    sons[5] = e; sons[6] = es; 
 
87408
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
87409
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
87410
    AddSon (sons[6], es); 
70912
87411
  }
 
87412
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70913
87413
  static const char *NodeId ();
 
87414
  /** Get the name of the node. Can be compared with NodeId(). */
70914
87415
  const char *NodeName () const { return NodeId (); }
 
87416
  /** Get the number of sons. */
70915
87417
  int Sons () const { return 7; }
 
87418
  /** Get the n-th son.
 
87419
   *  \param n The index of the son.
 
87420
   *  \return The n-th son or NULL. */
70916
87421
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
70917
87422
  CTree *Condition () const { return sons[2]; }
70918
87423
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
70919
87424
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
87425
  /** Replace a son.
 
87426
   *  \param old_son The son to replace.
 
87427
   *  \param new_son The new son. */
70920
87428
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70921
87429
    CTree::ReplaceSon (sons, 7, old_son, new_son);
70922
87430
  }
 
87431
  CSemScope *SemScope () const { return (CSemScope*)this; }
70923
87432
};
70924
87433
 
70925
87434
 
70926
 
#line 70927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87435
#line 87436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70927
87436
} // closed Puma
 
87437
class CCExprResolve;
 
87438
class CExprResolve;
70928
87439
class WinIfExists;
70929
87440
class WinImportHandler;
70930
87441
class WinMacros;
70931
 
class CMatchSyntax;
70932
 
class ExtGnu;
 
87442
class WinAsm;
 
87443
class WinDeclSpecs;
 
87444
class WinMemberExplSpec;
 
87445
class WinTypeKeywords;
 
87446
class WinFriend;
70933
87447
class ExtAC;
70934
87448
class ExtACBuilderCoupling;
70935
87449
class ExtACSyntaxCoupling;
70936
87450
class ExtACTree;
70937
87451
class ExtACKeywords;
70938
 
class WinAsm;
70939
 
class WinDeclSpecs;
70940
 
class WinMemberExplSpec;
70941
 
class WinTypeKeywords;
 
87452
class ExtGnu;
70942
87453
class PragmaOnceUnitState;
70943
87454
class PragmaOnce;
70944
 
class CCExprResolve;
70945
 
class CExprResolve;
 
87455
class CMatchSyntax;
70946
87456
namespace Puma {
70947
87457
 
70948
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87458
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70949
87459
class CT_BreakStmt : public CT_Statement {
70950
 
#line 70951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87460
#line 87461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87461
  friend class ::CCExprResolve;
 
87462
  friend class ::CExprResolve;
70951
87463
  friend class ::WinIfExists;
70952
87464
  friend class ::WinImportHandler;
70953
87465
  friend class ::WinMacros;
70954
 
  friend class ::CMatchSyntax;
70955
 
  friend class ::ExtGnu;
 
87466
  friend class ::WinAsm;
 
87467
  friend class ::WinDeclSpecs;
 
87468
  friend class ::WinMemberExplSpec;
 
87469
  friend class ::WinTypeKeywords;
 
87470
  friend class ::WinFriend;
70956
87471
  friend class ::ExtAC;
70957
87472
  friend class ::ExtACBuilderCoupling;
70958
87473
  friend class ::ExtACSyntaxCoupling;
70959
87474
  friend class ::ExtACTree;
70960
87475
  friend class ::ExtACKeywords;
70961
 
  friend class ::WinAsm;
70962
 
  friend class ::WinDeclSpecs;
70963
 
  friend class ::WinMemberExplSpec;
70964
 
  friend class ::WinTypeKeywords;
 
87476
  friend class ::ExtGnu;
70965
87477
  friend class ::PragmaOnceUnitState;
70966
87478
  friend class ::PragmaOnce;
70967
 
  friend class ::CCExprResolve;
70968
 
  friend class ::CExprResolve;
 
87479
  friend class ::CMatchSyntax;
70969
87480
 
70970
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87481
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70971
87482
 
70972
87483
  CTree *sons[2]; // key, semi_colon
70973
87484
 
70974
87485
public:
70975
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
87486
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
87487
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70976
87488
  static const char *NodeId ();
 
87489
  /** Get the name of the node. Can be compared with NodeId(). */
70977
87490
  const char *NodeName () const { return NodeId (); }
 
87491
  /** Get the number of sons. */
70978
87492
  int Sons () const { return 2; }
 
87493
  /** Get the n-th son.
 
87494
   *  \param n The index of the son.
 
87495
   *  \return The n-th son or NULL. */
70979
87496
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
87497
  /** Replace a son.
 
87498
   *  \param old_son The son to replace.
 
87499
   *  \param new_son The new son. */
70980
87500
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70981
87501
    CTree::ReplaceSon (sons, 2, old_son, new_son);
70982
87502
  }
70983
87503
};
70984
87504
 
70985
87505
 
70986
 
#line 70987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87506
#line 87507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
70987
87507
} // closed Puma
 
87508
class CCExprResolve;
 
87509
class CExprResolve;
70988
87510
class WinIfExists;
70989
87511
class WinImportHandler;
70990
87512
class WinMacros;
70991
 
class CMatchSyntax;
70992
 
class ExtGnu;
 
87513
class WinAsm;
 
87514
class WinDeclSpecs;
 
87515
class WinMemberExplSpec;
 
87516
class WinTypeKeywords;
 
87517
class WinFriend;
70993
87518
class ExtAC;
70994
87519
class ExtACBuilderCoupling;
70995
87520
class ExtACSyntaxCoupling;
70996
87521
class ExtACTree;
70997
87522
class ExtACKeywords;
70998
 
class WinAsm;
70999
 
class WinDeclSpecs;
71000
 
class WinMemberExplSpec;
71001
 
class WinTypeKeywords;
 
87523
class ExtGnu;
71002
87524
class PragmaOnceUnitState;
71003
87525
class PragmaOnce;
71004
 
class CCExprResolve;
71005
 
class CExprResolve;
 
87526
class CMatchSyntax;
71006
87527
namespace Puma {
71007
87528
 
71008
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87529
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71009
87530
class CT_ContinueStmt : public CT_Statement {
71010
 
#line 71011 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87531
#line 87532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87532
  friend class ::CCExprResolve;
 
87533
  friend class ::CExprResolve;
71011
87534
  friend class ::WinIfExists;
71012
87535
  friend class ::WinImportHandler;
71013
87536
  friend class ::WinMacros;
71014
 
  friend class ::CMatchSyntax;
71015
 
  friend class ::ExtGnu;
 
87537
  friend class ::WinAsm;
 
87538
  friend class ::WinDeclSpecs;
 
87539
  friend class ::WinMemberExplSpec;
 
87540
  friend class ::WinTypeKeywords;
 
87541
  friend class ::WinFriend;
71016
87542
  friend class ::ExtAC;
71017
87543
  friend class ::ExtACBuilderCoupling;
71018
87544
  friend class ::ExtACSyntaxCoupling;
71019
87545
  friend class ::ExtACTree;
71020
87546
  friend class ::ExtACKeywords;
71021
 
  friend class ::WinAsm;
71022
 
  friend class ::WinDeclSpecs;
71023
 
  friend class ::WinMemberExplSpec;
71024
 
  friend class ::WinTypeKeywords;
 
87547
  friend class ::ExtGnu;
71025
87548
  friend class ::PragmaOnceUnitState;
71026
87549
  friend class ::PragmaOnce;
71027
 
  friend class ::CCExprResolve;
71028
 
  friend class ::CExprResolve;
 
87550
  friend class ::CMatchSyntax;
71029
87551
 
71030
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87552
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71031
87553
 
71032
87554
  CTree *sons[2]; // key, semi_colon
71033
87555
 
71034
87556
public:
71035
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
87557
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
87558
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71036
87559
  static const char *NodeId ();
 
87560
  /** Get the name of the node. Can be compared with NodeId(). */
71037
87561
  const char *NodeName () const { return NodeId (); }
 
87562
  /** Get the number of sons. */
71038
87563
  int Sons () const { return 2; }
 
87564
  /** Get the n-th son.
 
87565
   *  \param n The index of the son.
 
87566
   *  \return The n-th son or NULL. */
71039
87567
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
87568
  /** Replace a son.
 
87569
   *  \param old_son The son to replace.
 
87570
   *  \param new_son The new son. */
71040
87571
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71041
87572
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71042
87573
  }
71043
87574
};
71044
87575
 
71045
87576
 
71046
 
#line 71047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87577
#line 87578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71047
87578
} // closed Puma
 
87579
class CCExprResolve;
 
87580
class CExprResolve;
71048
87581
class WinIfExists;
71049
87582
class WinImportHandler;
71050
87583
class WinMacros;
71051
 
class CMatchSyntax;
71052
 
class ExtGnu;
 
87584
class WinAsm;
 
87585
class WinDeclSpecs;
 
87586
class WinMemberExplSpec;
 
87587
class WinTypeKeywords;
 
87588
class WinFriend;
71053
87589
class ExtAC;
71054
87590
class ExtACBuilderCoupling;
71055
87591
class ExtACSyntaxCoupling;
71056
87592
class ExtACTree;
71057
87593
class ExtACKeywords;
71058
 
class WinAsm;
71059
 
class WinDeclSpecs;
71060
 
class WinMemberExplSpec;
71061
 
class WinTypeKeywords;
 
87594
class ExtGnu;
71062
87595
class PragmaOnceUnitState;
71063
87596
class PragmaOnce;
71064
 
class CCExprResolve;
71065
 
class CExprResolve;
 
87597
class CMatchSyntax;
71066
87598
namespace Puma {
71067
87599
 
71068
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87600
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71069
87601
class CT_GotoStmt : public CT_Statement {
71070
 
#line 71071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87602
#line 87603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87603
  friend class ::CCExprResolve;
 
87604
  friend class ::CExprResolve;
71071
87605
  friend class ::WinIfExists;
71072
87606
  friend class ::WinImportHandler;
71073
87607
  friend class ::WinMacros;
71074
 
  friend class ::CMatchSyntax;
71075
 
  friend class ::ExtGnu;
 
87608
  friend class ::WinAsm;
 
87609
  friend class ::WinDeclSpecs;
 
87610
  friend class ::WinMemberExplSpec;
 
87611
  friend class ::WinTypeKeywords;
 
87612
  friend class ::WinFriend;
71076
87613
  friend class ::ExtAC;
71077
87614
  friend class ::ExtACBuilderCoupling;
71078
87615
  friend class ::ExtACSyntaxCoupling;
71079
87616
  friend class ::ExtACTree;
71080
87617
  friend class ::ExtACKeywords;
71081
 
  friend class ::WinAsm;
71082
 
  friend class ::WinDeclSpecs;
71083
 
  friend class ::WinMemberExplSpec;
71084
 
  friend class ::WinTypeKeywords;
 
87618
  friend class ::ExtGnu;
71085
87619
  friend class ::PragmaOnceUnitState;
71086
87620
  friend class ::PragmaOnce;
71087
 
  friend class ::CCExprResolve;
71088
 
  friend class ::CExprResolve;
 
87621
  friend class ::CMatchSyntax;
71089
87622
 
71090
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87623
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71091
87624
 
71092
87625
  CTree *sons[3]; // key, label, semi_colon
71093
87626
 
71094
87627
public:
71095
87628
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
71096
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
87629
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
71097
87630
  }
 
87631
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71098
87632
  static const char *NodeId ();
 
87633
  /** Get the name of the node. Can be compared with NodeId(). */
71099
87634
  const char *NodeName () const { return NodeId (); }
 
87635
  /** Get the number of sons. */
71100
87636
  int Sons () const { return 3; }
 
87637
  /** Get the n-th son.
 
87638
   *  \param n The index of the son.
 
87639
   *  \return The n-th son or NULL. */
71101
87640
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71102
87641
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
87642
  /** Replace a son.
 
87643
   *  \param old_son The son to replace.
 
87644
   *  \param new_son The new son. */
71103
87645
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71104
87646
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71105
87647
  }
71106
87648
};
71107
87649
 
71108
87650
 
71109
 
#line 71110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87651
#line 87652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71110
87652
} // closed Puma
 
87653
class CCExprResolve;
 
87654
class CExprResolve;
71111
87655
class WinIfExists;
71112
87656
class WinImportHandler;
71113
87657
class WinMacros;
71114
 
class CMatchSyntax;
71115
 
class ExtGnu;
 
87658
class WinAsm;
 
87659
class WinDeclSpecs;
 
87660
class WinMemberExplSpec;
 
87661
class WinTypeKeywords;
 
87662
class WinFriend;
71116
87663
class ExtAC;
71117
87664
class ExtACBuilderCoupling;
71118
87665
class ExtACSyntaxCoupling;
71119
87666
class ExtACTree;
71120
87667
class ExtACKeywords;
71121
 
class WinAsm;
71122
 
class WinDeclSpecs;
71123
 
class WinMemberExplSpec;
71124
 
class WinTypeKeywords;
 
87668
class ExtGnu;
71125
87669
class PragmaOnceUnitState;
71126
87670
class PragmaOnce;
71127
 
class CCExprResolve;
71128
 
class CExprResolve;
 
87671
class CMatchSyntax;
71129
87672
namespace Puma {
71130
87673
 
71131
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87674
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71132
87675
class CT_ReturnStmt : public CT_Statement {
71133
 
#line 71134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87676
#line 87677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87677
  friend class ::CCExprResolve;
 
87678
  friend class ::CExprResolve;
71134
87679
  friend class ::WinIfExists;
71135
87680
  friend class ::WinImportHandler;
71136
87681
  friend class ::WinMacros;
71137
 
  friend class ::CMatchSyntax;
71138
 
  friend class ::ExtGnu;
 
87682
  friend class ::WinAsm;
 
87683
  friend class ::WinDeclSpecs;
 
87684
  friend class ::WinMemberExplSpec;
 
87685
  friend class ::WinTypeKeywords;
 
87686
  friend class ::WinFriend;
71139
87687
  friend class ::ExtAC;
71140
87688
  friend class ::ExtACBuilderCoupling;
71141
87689
  friend class ::ExtACSyntaxCoupling;
71142
87690
  friend class ::ExtACTree;
71143
87691
  friend class ::ExtACKeywords;
71144
 
  friend class ::WinAsm;
71145
 
  friend class ::WinDeclSpecs;
71146
 
  friend class ::WinMemberExplSpec;
71147
 
  friend class ::WinTypeKeywords;
 
87692
  friend class ::ExtGnu;
71148
87693
  friend class ::PragmaOnceUnitState;
71149
87694
  friend class ::PragmaOnce;
71150
 
  friend class ::CCExprResolve;
71151
 
  friend class ::CExprResolve;
 
87695
  friend class ::CMatchSyntax;
71152
87696
 
71153
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87697
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71154
87698
 
71155
87699
  CTree *sons[3]; // key, expr, semi_colon
71156
87700
 
71157
87701
public:
71158
87702
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
71159
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
87703
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
71160
87704
  }
 
87705
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71161
87706
  static const char *NodeId ();
 
87707
  /** Get the name of the node. Can be compared with NodeId(). */
71162
87708
  const char *NodeName () const { return NodeId (); }
 
87709
  /** Get the number of sons. */
71163
87710
  int Sons () const { return CTree::Sons (sons, 3); }
 
87711
  /** Get the n-th son.
 
87712
   *  \param n The index of the son.
 
87713
   *  \return The n-th son or NULL. */
71164
87714
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71165
87715
  CTree *Expr () const { return sons[1]; }
 
87716
  /** Replace a son.
 
87717
   *  \param old_son The son to replace.
 
87718
   *  \param new_son The new son. */
71166
87719
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71167
87720
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71168
87721
  }
71169
87722
};
71170
87723
 
71171
87724
 
71172
 
#line 71173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87725
#line 87726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71173
87726
} // closed Puma
 
87727
class CCExprResolve;
 
87728
class CExprResolve;
71174
87729
class WinIfExists;
71175
87730
class WinImportHandler;
71176
87731
class WinMacros;
71177
 
class CMatchSyntax;
71178
 
class ExtGnu;
 
87732
class WinAsm;
 
87733
class WinDeclSpecs;
 
87734
class WinMemberExplSpec;
 
87735
class WinTypeKeywords;
 
87736
class WinFriend;
71179
87737
class ExtAC;
71180
87738
class ExtACBuilderCoupling;
71181
87739
class ExtACSyntaxCoupling;
71182
87740
class ExtACTree;
71183
87741
class ExtACKeywords;
71184
 
class WinAsm;
71185
 
class WinDeclSpecs;
71186
 
class WinMemberExplSpec;
71187
 
class WinTypeKeywords;
 
87742
class ExtGnu;
71188
87743
class PragmaOnceUnitState;
71189
87744
class PragmaOnce;
71190
 
class CCExprResolve;
71191
 
class CExprResolve;
 
87745
class CMatchSyntax;
71192
87746
namespace Puma {
71193
87747
 
71194
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87748
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71195
87749
class CT_WhileStmt : public CT_Statement, public CSemScope {
71196
 
#line 71197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87750
#line 87751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87751
  friend class ::CCExprResolve;
 
87752
  friend class ::CExprResolve;
71197
87753
  friend class ::WinIfExists;
71198
87754
  friend class ::WinImportHandler;
71199
87755
  friend class ::WinMacros;
71200
 
  friend class ::CMatchSyntax;
71201
 
  friend class ::ExtGnu;
 
87756
  friend class ::WinAsm;
 
87757
  friend class ::WinDeclSpecs;
 
87758
  friend class ::WinMemberExplSpec;
 
87759
  friend class ::WinTypeKeywords;
 
87760
  friend class ::WinFriend;
71202
87761
  friend class ::ExtAC;
71203
87762
  friend class ::ExtACBuilderCoupling;
71204
87763
  friend class ::ExtACSyntaxCoupling;
71205
87764
  friend class ::ExtACTree;
71206
87765
  friend class ::ExtACKeywords;
71207
 
  friend class ::WinAsm;
71208
 
  friend class ::WinDeclSpecs;
71209
 
  friend class ::WinMemberExplSpec;
71210
 
  friend class ::WinTypeKeywords;
 
87766
  friend class ::ExtGnu;
71211
87767
  friend class ::PragmaOnceUnitState;
71212
87768
  friend class ::PragmaOnce;
71213
 
  friend class ::CCExprResolve;
71214
 
  friend class ::CExprResolve;
 
87769
  friend class ::CMatchSyntax;
71215
87770
 
71216
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87771
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71217
87772
 
71218
87773
  CTree *sons[5]; // key, open, cond, close, stmt
71219
87774
 
71220
87775
public:
71221
87776
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
71222
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
87777
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
87778
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
71223
87779
  }
 
87780
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71224
87781
  static const char *NodeId ();
 
87782
  /** Get the name of the node. Can be compared with NodeId(). */
71225
87783
  const char *NodeName () const { return NodeId (); }
 
87784
  /** Get the number of sons. */
71226
87785
  int Sons () const { return 5; }
 
87786
  /** Get the n-th son.
 
87787
   *  \param n The index of the son.
 
87788
   *  \return The n-th son or NULL. */
71227
87789
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
71228
87790
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
71229
87791
  CTree *Condition () const { return sons[2]; }
 
87792
  /** Replace a son.
 
87793
   *  \param old_son The son to replace.
 
87794
   *  \param new_son The new son. */
71230
87795
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71231
87796
    CTree::ReplaceSon (sons, 5, old_son, new_son);
71232
87797
  }
 
87798
  CSemScope *SemScope () const { return (CSemScope*)this; }
71233
87799
};
71234
87800
 
71235
87801
 
71236
 
#line 71237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87802
#line 87803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71237
87803
} // closed Puma
 
87804
class CCExprResolve;
 
87805
class CExprResolve;
71238
87806
class WinIfExists;
71239
87807
class WinImportHandler;
71240
87808
class WinMacros;
71241
 
class CMatchSyntax;
71242
 
class ExtGnu;
 
87809
class WinAsm;
 
87810
class WinDeclSpecs;
 
87811
class WinMemberExplSpec;
 
87812
class WinTypeKeywords;
 
87813
class WinFriend;
71243
87814
class ExtAC;
71244
87815
class ExtACBuilderCoupling;
71245
87816
class ExtACSyntaxCoupling;
71246
87817
class ExtACTree;
71247
87818
class ExtACKeywords;
71248
 
class WinAsm;
71249
 
class WinDeclSpecs;
71250
 
class WinMemberExplSpec;
71251
 
class WinTypeKeywords;
 
87819
class ExtGnu;
71252
87820
class PragmaOnceUnitState;
71253
87821
class PragmaOnce;
71254
 
class CCExprResolve;
71255
 
class CExprResolve;
 
87822
class CMatchSyntax;
71256
87823
namespace Puma {
71257
87824
 
71258
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87825
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71259
87826
class CT_DoStmt : public CT_Statement {
71260
 
#line 71261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87827
#line 87828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87828
  friend class ::CCExprResolve;
 
87829
  friend class ::CExprResolve;
71261
87830
  friend class ::WinIfExists;
71262
87831
  friend class ::WinImportHandler;
71263
87832
  friend class ::WinMacros;
71264
 
  friend class ::CMatchSyntax;
71265
 
  friend class ::ExtGnu;
 
87833
  friend class ::WinAsm;
 
87834
  friend class ::WinDeclSpecs;
 
87835
  friend class ::WinMemberExplSpec;
 
87836
  friend class ::WinTypeKeywords;
 
87837
  friend class ::WinFriend;
71266
87838
  friend class ::ExtAC;
71267
87839
  friend class ::ExtACBuilderCoupling;
71268
87840
  friend class ::ExtACSyntaxCoupling;
71269
87841
  friend class ::ExtACTree;
71270
87842
  friend class ::ExtACKeywords;
71271
 
  friend class ::WinAsm;
71272
 
  friend class ::WinDeclSpecs;
71273
 
  friend class ::WinMemberExplSpec;
71274
 
  friend class ::WinTypeKeywords;
 
87843
  friend class ::ExtGnu;
71275
87844
  friend class ::PragmaOnceUnitState;
71276
87845
  friend class ::PragmaOnce;
71277
 
  friend class ::CCExprResolve;
71278
 
  friend class ::CExprResolve;
 
87846
  friend class ::CMatchSyntax;
71279
87847
 
71280
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87848
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71281
87849
 
71282
87850
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
71283
87851
 
71284
87852
public:
71285
87853
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
71286
87854
             CTree *c, CTree *sc) {
71287
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
71288
 
    sons[5] = c; sons[6] = sc; 
 
87855
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
87856
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
87857
    AddSon (sons[6], sc); 
71289
87858
  }
 
87859
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71290
87860
  static const char *NodeId ();
 
87861
  /** Get the name of the node. Can be compared with NodeId(). */
71291
87862
  const char *NodeName () const { return NodeId (); }
 
87863
  /** Get the number of sons. */
71292
87864
  int Sons () const { return 7; }
 
87865
  /** Get the n-th son.
 
87866
   *  \param n The index of the son.
 
87867
   *  \return The n-th son or NULL. */
71293
87868
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
71294
87869
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
71295
87870
  CTree *Expr () const { return sons[4]; }
 
87871
  /** Replace a son.
 
87872
   *  \param old_son The son to replace.
 
87873
   *  \param new_son The new son. */
71296
87874
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71297
87875
    CTree::ReplaceSon (sons, 7, old_son, new_son);
71298
87876
  }
71299
87877
};
71300
87878
 
71301
87879
 
71302
 
#line 71303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87880
#line 87881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71303
87881
} // closed Puma
 
87882
class CCExprResolve;
 
87883
class CExprResolve;
71304
87884
class WinIfExists;
71305
87885
class WinImportHandler;
71306
87886
class WinMacros;
71307
 
class CMatchSyntax;
71308
 
class ExtGnu;
 
87887
class WinAsm;
 
87888
class WinDeclSpecs;
 
87889
class WinMemberExplSpec;
 
87890
class WinTypeKeywords;
 
87891
class WinFriend;
71309
87892
class ExtAC;
71310
87893
class ExtACBuilderCoupling;
71311
87894
class ExtACSyntaxCoupling;
71312
87895
class ExtACTree;
71313
87896
class ExtACKeywords;
71314
 
class WinAsm;
71315
 
class WinDeclSpecs;
71316
 
class WinMemberExplSpec;
71317
 
class WinTypeKeywords;
 
87897
class ExtGnu;
71318
87898
class PragmaOnceUnitState;
71319
87899
class PragmaOnce;
71320
 
class CCExprResolve;
71321
 
class CExprResolve;
 
87900
class CMatchSyntax;
71322
87901
namespace Puma {
71323
87902
 
71324
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87903
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71325
87904
class CT_ForStmt : public CT_Statement, public CSemScope {
71326
 
#line 71327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87905
#line 87906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87906
  friend class ::CCExprResolve;
 
87907
  friend class ::CExprResolve;
71327
87908
  friend class ::WinIfExists;
71328
87909
  friend class ::WinImportHandler;
71329
87910
  friend class ::WinMacros;
71330
 
  friend class ::CMatchSyntax;
71331
 
  friend class ::ExtGnu;
 
87911
  friend class ::WinAsm;
 
87912
  friend class ::WinDeclSpecs;
 
87913
  friend class ::WinMemberExplSpec;
 
87914
  friend class ::WinTypeKeywords;
 
87915
  friend class ::WinFriend;
71332
87916
  friend class ::ExtAC;
71333
87917
  friend class ::ExtACBuilderCoupling;
71334
87918
  friend class ::ExtACSyntaxCoupling;
71335
87919
  friend class ::ExtACTree;
71336
87920
  friend class ::ExtACKeywords;
71337
 
  friend class ::WinAsm;
71338
 
  friend class ::WinDeclSpecs;
71339
 
  friend class ::WinMemberExplSpec;
71340
 
  friend class ::WinTypeKeywords;
 
87921
  friend class ::ExtGnu;
71341
87922
  friend class ::PragmaOnceUnitState;
71342
87923
  friend class ::PragmaOnce;
71343
 
  friend class ::CCExprResolve;
71344
 
  friend class ::CExprResolve;
 
87924
  friend class ::CMatchSyntax;
71345
87925
 
71346
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87926
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71347
87927
 
71348
87928
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
71349
87929
 
71350
87930
public:
71351
87931
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
71352
87932
              CTree *e, CTree *c, CTree *stmt) {
71353
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
71354
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
87933
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
87934
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
87935
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
71355
87936
  }
 
87937
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71356
87938
  static const char *NodeId ();
 
87939
  /** Get the name of the node. Can be compared with NodeId(). */
71357
87940
  const char *NodeName () const { return NodeId (); }
 
87941
  /** Get the number of sons. */
71358
87942
  int Sons () const { return CTree::Sons (sons, 8); }
 
87943
  /** Get the n-th son.
 
87944
   *  \param n The index of the son.
 
87945
   *  \return The n-th son or NULL. */
71359
87946
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
71360
87947
  CTree *InitStmt () const { return sons[2]; }
71361
87948
  CTree *Condition () const { return sons[3]; }
71362
87949
  CTree *Expr () const { return sons[5]; }
71363
87950
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
87951
  /** Replace a son.
 
87952
   *  \param old_son The son to replace.
 
87953
   *  \param new_son The new son. */
71364
87954
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71365
87955
    CTree::ReplaceSon (sons, 8, old_son, new_son);
71366
87956
  }
 
87957
  CSemScope *SemScope () const { return (CSemScope*)this; }
71367
87958
};
71368
87959
 
71369
87960
 
71370
 
#line 71371 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87961
#line 87962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71371
87962
} // closed Puma
 
87963
class CCExprResolve;
 
87964
class CExprResolve;
71372
87965
class WinIfExists;
71373
87966
class WinImportHandler;
71374
87967
class WinMacros;
71375
 
class CMatchSyntax;
71376
 
class ExtGnu;
 
87968
class WinAsm;
 
87969
class WinDeclSpecs;
 
87970
class WinMemberExplSpec;
 
87971
class WinTypeKeywords;
 
87972
class WinFriend;
71377
87973
class ExtAC;
71378
87974
class ExtACBuilderCoupling;
71379
87975
class ExtACSyntaxCoupling;
71380
87976
class ExtACTree;
71381
87977
class ExtACKeywords;
71382
 
class WinAsm;
71383
 
class WinDeclSpecs;
71384
 
class WinMemberExplSpec;
71385
 
class WinTypeKeywords;
 
87978
class ExtGnu;
71386
87979
class PragmaOnceUnitState;
71387
87980
class PragmaOnce;
71388
 
class CCExprResolve;
71389
 
class CExprResolve;
 
87981
class CMatchSyntax;
71390
87982
namespace Puma {
71391
87983
 
71392
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87984
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71393
87985
class CT_Condition : public CT_Decl, public CSemObject {
71394
 
#line 71395 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
87986
#line 87987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
87987
  friend class ::CCExprResolve;
 
87988
  friend class ::CExprResolve;
71395
87989
  friend class ::WinIfExists;
71396
87990
  friend class ::WinImportHandler;
71397
87991
  friend class ::WinMacros;
71398
 
  friend class ::CMatchSyntax;
71399
 
  friend class ::ExtGnu;
 
87992
  friend class ::WinAsm;
 
87993
  friend class ::WinDeclSpecs;
 
87994
  friend class ::WinMemberExplSpec;
 
87995
  friend class ::WinTypeKeywords;
 
87996
  friend class ::WinFriend;
71400
87997
  friend class ::ExtAC;
71401
87998
  friend class ::ExtACBuilderCoupling;
71402
87999
  friend class ::ExtACSyntaxCoupling;
71403
88000
  friend class ::ExtACTree;
71404
88001
  friend class ::ExtACKeywords;
71405
 
  friend class ::WinAsm;
71406
 
  friend class ::WinDeclSpecs;
71407
 
  friend class ::WinMemberExplSpec;
71408
 
  friend class ::WinTypeKeywords;
 
88002
  friend class ::ExtGnu;
71409
88003
  friend class ::PragmaOnceUnitState;
71410
88004
  friend class ::PragmaOnce;
71411
 
  friend class ::CCExprResolve;
71412
 
  friend class ::CExprResolve;
 
88005
  friend class ::CMatchSyntax;
71413
88006
 
71414
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88007
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71415
88008
 
71416
88009
  CTree *sons[3]; // declspecs, declarator, init
71417
88010
 
71418
88011
public:
71419
88012
  CT_Condition (CTree *dsl, CTree *d) {
71420
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
88013
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
71421
88014
  }
 
88015
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71422
88016
  static const char *NodeId ();
 
88017
  /** Get the name of the node. Can be compared with NodeId(). */
71423
88018
  const char *NodeName () const { return NodeId (); }
 
88019
  /** Get the number of sons. */
71424
88020
  int Sons () const { return CTree::Sons (sons, 3); }
 
88021
  /** Get the n-th son.
 
88022
   *  \param n The index of the son.
 
88023
   *  \return The n-th son or NULL. */
71425
88024
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71426
88025
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
71427
88026
  CTree *Declarator () const { return sons[1]; }
71428
88027
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
71429
88028
  CSemObject *SemObject () const { return (CSemObject*)this; }
71430
 
  void Initializer (CTree *i) { sons[2] = i; }
 
88029
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
88030
  /** Replace a son.
 
88031
   *  \param old_son The son to replace.
 
88032
   *  \param new_son The new son. */
71431
88033
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71432
88034
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71433
88035
  }
71440
88042
/*****************************************************************************/
71441
88043
 
71442
88044
 
71443
 
#line 71444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88045
#line 88046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71444
88046
} // closed Puma
 
88047
class CCExprResolve;
 
88048
class CExprResolve;
71445
88049
class WinIfExists;
71446
88050
class WinImportHandler;
71447
88051
class WinMacros;
71448
 
class CMatchSyntax;
71449
 
class ExtGnu;
 
88052
class WinAsm;
 
88053
class WinDeclSpecs;
 
88054
class WinMemberExplSpec;
 
88055
class WinTypeKeywords;
 
88056
class WinFriend;
71450
88057
class ExtAC;
71451
88058
class ExtACBuilderCoupling;
71452
88059
class ExtACSyntaxCoupling;
71453
88060
class ExtACTree;
71454
88061
class ExtACKeywords;
71455
 
class WinAsm;
71456
 
class WinDeclSpecs;
71457
 
class WinMemberExplSpec;
71458
 
class WinTypeKeywords;
 
88062
class ExtGnu;
71459
88063
class PragmaOnceUnitState;
71460
88064
class PragmaOnce;
71461
 
class CCExprResolve;
71462
 
class CExprResolve;
71463
 
namespace Puma {
71464
 
 
71465
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88065
class CMatchSyntax;
 
88066
namespace Puma {
 
88067
 
 
88068
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88069
 
 
88070
#line 88071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88071
} // closed Puma
 
88072
 
 
88073
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
88074
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
88075
#include "ExtACTree.ah"
 
88076
#endif
 
88077
namespace Puma {
 
88078
 
 
88079
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71466
88080
class CT_ClassDef : public CT_Decl, public CSemObject {
71467
 
#line 71468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88081
#line 88082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88082
  friend class ::CCExprResolve;
 
88083
  friend class ::CExprResolve;
71468
88084
  friend class ::WinIfExists;
71469
88085
  friend class ::WinImportHandler;
71470
88086
  friend class ::WinMacros;
71471
 
  friend class ::CMatchSyntax;
71472
 
  friend class ::ExtGnu;
 
88087
  friend class ::WinAsm;
 
88088
  friend class ::WinDeclSpecs;
 
88089
  friend class ::WinMemberExplSpec;
 
88090
  friend class ::WinTypeKeywords;
 
88091
  friend class ::WinFriend;
71473
88092
  friend class ::ExtAC;
71474
88093
  friend class ::ExtACBuilderCoupling;
71475
88094
  friend class ::ExtACSyntaxCoupling;
71476
88095
  friend class ::ExtACTree;
71477
88096
  friend class ::ExtACKeywords;
71478
 
  friend class ::WinAsm;
71479
 
  friend class ::WinDeclSpecs;
71480
 
  friend class ::WinMemberExplSpec;
71481
 
  friend class ::WinTypeKeywords;
 
88097
  friend class ::ExtGnu;
71482
88098
  friend class ::PragmaOnceUnitState;
71483
88099
  friend class ::PragmaOnce;
71484
 
  friend class ::CCExprResolve;
71485
 
  friend class ::CExprResolve;
 
88100
  friend class ::CMatchSyntax;
71486
88101
 
71487
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88102
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71488
88103
 
71489
88104
   
71490
 
#line 71491 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88105
#line 88106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71491
88106
 
71492
88107
  struct __ac_wrapper_sons {
71493
88108
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
71502
88117
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
71503
88118
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
71504
88119
  } sons
71505
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88120
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71506
88121
 
71507
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88122
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71508
88123
; // key, name, bases, members
71509
88124
  CTree *obj_decl;
71510
88125
 
71511
88126
public:
71512
88127
  
71513
 
#line 71514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
71514
 
 
71515
 
 
71516
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
71517
 
  typedef void Result;
71518
 
  typedef ::Puma::CT_ClassDef That;
71519
 
  typedef ::Puma::CT_ClassDef Target;
71520
 
  static const int JPID = 4;
 
88128
#line 88129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88129
 
 
88130
 
 
88131
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
88132
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
88133
  typedef TResult Result;
 
88134
  typedef TThat   That;
 
88135
  typedef TTarget Target;
 
88136
  enum { ARGS = TArgs::ARGS };
 
88137
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
88138
  static const int JPID = 55;
71521
88139
  static const AC::JPType JPTYPE = (AC::JPType)16;
71522
88140
  struct Res {
71523
88141
    typedef void Type;
71524
88142
    typedef void ReferredType;
71525
88143
  };
71526
 
  enum { ARGS = 3 };
71527
 
  template <int I, int DUMMY = 0> struct Arg {
71528
 
    typedef void Type;
71529
 
    typedef void ReferredType;
71530
 
  };
71531
 
  template <int DUMMY> struct Arg<0, DUMMY> {
71532
 
    typedef ::Puma::CTree * Type;
71533
 
    typedef ::Puma::CTree * ReferredType;
71534
 
  };
71535
 
  template <int DUMMY> struct Arg<1, DUMMY> {
71536
 
    typedef ::Puma::CTree * Type;
71537
 
    typedef ::Puma::CTree * ReferredType;
71538
 
  };
71539
 
  template <int DUMMY> struct Arg<2, DUMMY> {
71540
 
    typedef ::Puma::CTree * Type;
71541
 
    typedef ::Puma::CTree * ReferredType;
71542
 
  };
71543
88144
 
71544
88145
  That *_that;
71545
88146
 
71548
88149
};
71549
88150
 
71550
88151
 
71551
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88152
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71552
88153
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
71553
 
#line 71554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88154
#line 88155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71554
88155
{
71555
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
71556
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
71557
 
this->__exec_old_C1(arg0, arg1, arg2);
71558
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
71559
 
 
 
88156
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TL< ::Puma::CTree * , AC::TLE > > > > __TJP;
 
88157
    __TJP tjp;
 
88158
  tjp._that =  (__TJP::That*)this;
 
88159
    this->__exec_old_C1(arg0, arg1, arg2);
 
88160
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
88161
  
71560
88162
}
71561
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
71562
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88163
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
88164
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71563
88165
{
71564
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
88166
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
88167
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
71565
88168
  }
 
88169
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71566
88170
  static const char *NodeId ();
 
88171
  /** Get the name of the node. Can be compared with NodeId(). */
71567
88172
  const char *NodeName () const { return NodeId (); }
 
88173
  /** Get the number of sons. */
71568
88174
  int Sons () const { return CTree::Sons (sons, 4); }
 
88175
  /** Get the n-th son.
 
88176
   *  \param n The index of the son.
 
88177
   *  \return The n-th son or NULL. */
71569
88178
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
71570
88179
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
71571
88180
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
71572
88181
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
71573
88182
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
71574
88183
  CSemObject *SemObject () const { return (CSemObject*)this; }
71575
 
  void Members (CTree *m) { sons[3] = m; }
71576
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
71577
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
88184
  void Members (CTree *m) { AddSon (sons[3], m); }
 
88185
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
88186
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
88187
  /** Replace a son.
 
88188
   *  \param old_son The son to replace.
 
88189
   *  \param new_son The new son. */
71578
88190
  void ReplaceSon (CTree *old_son, CTree *new_son) {
71579
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
71580
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
88191
    CTree::ReplaceSon (sons, 4, old_son, new_son);
71581
88192
  }
71582
88193
   private:
71583
88194
 
71584
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
71585
 
 CTree * _intro_members ;
 
88195
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
88196
 Puma :: CTree * _intro_members ;
 
88197
Puma :: CTree * _base_intros ;
71586
88198
public :
71587
 
CTree * IntroMembers ( ) const { return _intro_members ; }
71588
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
71589
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71590
 
 
71591
 
#line 71592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
71592
 
 
71593
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
71594
 
  typedef void Result;
71595
 
  typedef ::Puma::CT_ClassDef That;
71596
 
  typedef ::Puma::CT_ClassDef Target;
71597
 
  static const int JPID = 4;
 
88199
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
88200
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
88201
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
88202
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
88203
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88204
 
 
88205
#line 88206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88206
 
 
88207
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
88208
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
88209
  typedef TResult Result;
 
88210
  typedef TThat   That;
 
88211
  typedef TTarget Target;
 
88212
  enum { ARGS = TArgs::ARGS };
 
88213
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
88214
  static const int JPID = 6315;
71598
88215
  static const AC::JPType JPTYPE = (AC::JPType)16;
71599
88216
  struct Res {
71600
88217
    typedef void Type;
71601
88218
    typedef void ReferredType;
71602
88219
  };
71603
 
  enum { ARGS = 1 };
71604
 
  template <int I, int DUMMY = 0> struct Arg {
71605
 
    typedef void Type;
71606
 
    typedef void ReferredType;
71607
 
  };
71608
 
  template <int DUMMY> struct Arg<0, DUMMY> {
71609
 
    typedef const ::Puma::CT_ClassDef & Type;
71610
 
    typedef const ::Puma::CT_ClassDef ReferredType;
71611
 
  };
71612
88220
 
71613
88221
  That *_that;
71614
88222
 
71617
88225
};
71618
88226
 
71619
88227
 
71620
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88228
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71621
88229
 
71622
 
#line 71623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88230
#line 88231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71623
88231
 
71624
88232
public:
71625
 
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members) {
71626
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
71627
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
71628
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
88233
inline CT_ClassDef (const Puma::CT_ClassDef & arg0) : Puma::CT_Decl (arg0), Puma::CSemObject (arg0), sons (arg0.sons), obj_decl (arg0.obj_decl), _intro_members (arg0._intro_members), _base_intros (arg0._base_intros) {
 
88234
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
88235
  __TJP tjp;
 
88236
  tjp._that =  (__TJP::That*)this;
 
88237
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
71629
88238
 
71630
88239
}
71631
88240
 
71632
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71633
 
 
71634
 
#line 71635 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
71635
 
 
71636
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
71637
 
  typedef void Result;
71638
 
  typedef ::Puma::CT_ClassDef That;
71639
 
  typedef ::Puma::CT_ClassDef Target;
71640
 
  static const int JPID = 4;
 
88241
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88242
 
 
88243
#line 88244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88244
 
 
88245
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
88246
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
88247
  typedef TResult Result;
 
88248
  typedef TThat   That;
 
88249
  typedef TTarget Target;
 
88250
  enum { ARGS = TArgs::ARGS };
 
88251
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
88252
  static const int JPID = 6313;
71641
88253
  static const AC::JPType JPTYPE = (AC::JPType)32;
71642
88254
  struct Res {
71643
88255
    typedef void Type;
71644
88256
    typedef void ReferredType;
71645
88257
  };
71646
 
  enum { ARGS = 0 };
71647
 
  template <int I, int DUMMY = 0> struct Arg {
71648
 
    typedef void Type;
71649
 
    typedef void ReferredType;
71650
 
  };
71651
88258
 
71652
88259
  That *_that;
71653
88260
 
71656
88263
};
71657
88264
 
71658
88265
 
71659
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88266
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71660
88267
 
71661
 
#line 71662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88268
#line 88269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71662
88269
 
71663
88270
public:
71664
88271
inline ~CT_ClassDef () {
71665
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
71666
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
71667
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
88272
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
88273
  __TJP tjp;
 
88274
  tjp._that =  (__TJP::That*)this;
 
88275
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
71668
88276
 
71669
88277
}
71670
88278
 
71671
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88279
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71672
88280
};
71673
88281
      
71674
88282
 
71675
 
#line 71676 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88283
#line 88284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71676
88284
} // closed Puma
 
88285
class CCExprResolve;
 
88286
class CExprResolve;
71677
88287
class WinIfExists;
71678
88288
class WinImportHandler;
71679
88289
class WinMacros;
71680
 
class CMatchSyntax;
71681
 
class ExtGnu;
 
88290
class WinAsm;
 
88291
class WinDeclSpecs;
 
88292
class WinMemberExplSpec;
 
88293
class WinTypeKeywords;
 
88294
class WinFriend;
71682
88295
class ExtAC;
71683
88296
class ExtACBuilderCoupling;
71684
88297
class ExtACSyntaxCoupling;
71685
88298
class ExtACTree;
71686
88299
class ExtACKeywords;
71687
 
class WinAsm;
71688
 
class WinDeclSpecs;
71689
 
class WinMemberExplSpec;
71690
 
class WinTypeKeywords;
 
88300
class ExtGnu;
71691
88301
class PragmaOnceUnitState;
71692
88302
class PragmaOnce;
71693
 
class CCExprResolve;
71694
 
class CExprResolve;
 
88303
class CMatchSyntax;
71695
88304
namespace Puma {
71696
88305
 
71697
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88306
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71698
88307
class CT_UnionDef : public CT_ClassDef {
71699
 
#line 71700 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88308
#line 88309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88309
  friend class ::CCExprResolve;
 
88310
  friend class ::CExprResolve;
71700
88311
  friend class ::WinIfExists;
71701
88312
  friend class ::WinImportHandler;
71702
88313
  friend class ::WinMacros;
71703
 
  friend class ::CMatchSyntax;
71704
 
  friend class ::ExtGnu;
 
88314
  friend class ::WinAsm;
 
88315
  friend class ::WinDeclSpecs;
 
88316
  friend class ::WinMemberExplSpec;
 
88317
  friend class ::WinTypeKeywords;
 
88318
  friend class ::WinFriend;
71705
88319
  friend class ::ExtAC;
71706
88320
  friend class ::ExtACBuilderCoupling;
71707
88321
  friend class ::ExtACSyntaxCoupling;
71708
88322
  friend class ::ExtACTree;
71709
88323
  friend class ::ExtACKeywords;
71710
 
  friend class ::WinAsm;
71711
 
  friend class ::WinDeclSpecs;
71712
 
  friend class ::WinMemberExplSpec;
71713
 
  friend class ::WinTypeKeywords;
 
88324
  friend class ::ExtGnu;
71714
88325
  friend class ::PragmaOnceUnitState;
71715
88326
  friend class ::PragmaOnce;
71716
 
  friend class ::CCExprResolve;
71717
 
  friend class ::CExprResolve;
 
88327
  friend class ::CMatchSyntax;
71718
88328
 
71719
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88329
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71720
88330
 
71721
88331
public:
71722
88332
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
71723
88333
  static const char *NodeId ();
 
88334
  /** Get the name of the node. Can be compared with NodeId(). */
71724
88335
  const char *NodeName () const { return NodeId (); }
71725
88336
};
71726
88337
      
71727
88338
 
71728
 
#line 71729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88339
#line 88340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71729
88340
} // closed Puma
 
88341
class CCExprResolve;
 
88342
class CExprResolve;
71730
88343
class WinIfExists;
71731
88344
class WinImportHandler;
71732
88345
class WinMacros;
71733
 
class CMatchSyntax;
71734
 
class ExtGnu;
 
88346
class WinAsm;
 
88347
class WinDeclSpecs;
 
88348
class WinMemberExplSpec;
 
88349
class WinTypeKeywords;
 
88350
class WinFriend;
71735
88351
class ExtAC;
71736
88352
class ExtACBuilderCoupling;
71737
88353
class ExtACSyntaxCoupling;
71738
88354
class ExtACTree;
71739
88355
class ExtACKeywords;
71740
 
class WinAsm;
71741
 
class WinDeclSpecs;
71742
 
class WinMemberExplSpec;
71743
 
class WinTypeKeywords;
 
88356
class ExtGnu;
71744
88357
class PragmaOnceUnitState;
71745
88358
class PragmaOnce;
71746
 
class CCExprResolve;
71747
 
class CExprResolve;
 
88359
class CMatchSyntax;
71748
88360
namespace Puma {
71749
88361
 
71750
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88362
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71751
88363
class CT_MembList : public CT_DeclList, public CSemScope {
71752
 
#line 71753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88364
#line 88365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88365
  friend class ::CCExprResolve;
 
88366
  friend class ::CExprResolve;
71753
88367
  friend class ::WinIfExists;
71754
88368
  friend class ::WinImportHandler;
71755
88369
  friend class ::WinMacros;
71756
 
  friend class ::CMatchSyntax;
71757
 
  friend class ::ExtGnu;
 
88370
  friend class ::WinAsm;
 
88371
  friend class ::WinDeclSpecs;
 
88372
  friend class ::WinMemberExplSpec;
 
88373
  friend class ::WinTypeKeywords;
 
88374
  friend class ::WinFriend;
71758
88375
  friend class ::ExtAC;
71759
88376
  friend class ::ExtACBuilderCoupling;
71760
88377
  friend class ::ExtACSyntaxCoupling;
71761
88378
  friend class ::ExtACTree;
71762
88379
  friend class ::ExtACKeywords;
71763
 
  friend class ::WinAsm;
71764
 
  friend class ::WinDeclSpecs;
71765
 
  friend class ::WinMemberExplSpec;
71766
 
  friend class ::WinTypeKeywords;
 
88380
  friend class ::ExtGnu;
71767
88381
  friend class ::PragmaOnceUnitState;
71768
88382
  friend class ::PragmaOnce;
71769
 
  friend class ::CCExprResolve;
71770
 
  friend class ::CExprResolve;
 
88383
  friend class ::CMatchSyntax;
71771
88384
 
71772
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88385
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71773
88386
 
71774
88387
public:
71775
88388
  CT_MembList (int size = 10, int incr = 10) : 
71776
88389
    CT_DeclList (size, incr) {}
 
88390
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71777
88391
  static const char *NodeId ();
 
88392
  /** Get the name of the node. Can be compared with NodeId(). */
71778
88393
  const char *NodeName () const { return NodeId (); }
 
88394
  CSemScope *SemScope () const { return (CSemScope*)this; }
71779
88395
};
71780
88396
 
71781
88397
 
71782
 
#line 71783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88398
#line 88399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71783
88399
} // closed Puma
 
88400
class CCExprResolve;
 
88401
class CExprResolve;
71784
88402
class WinIfExists;
71785
88403
class WinImportHandler;
71786
88404
class WinMacros;
71787
 
class CMatchSyntax;
71788
 
class ExtGnu;
 
88405
class WinAsm;
 
88406
class WinDeclSpecs;
 
88407
class WinMemberExplSpec;
 
88408
class WinTypeKeywords;
 
88409
class WinFriend;
71789
88410
class ExtAC;
71790
88411
class ExtACBuilderCoupling;
71791
88412
class ExtACSyntaxCoupling;
71792
88413
class ExtACTree;
71793
88414
class ExtACKeywords;
71794
 
class WinAsm;
71795
 
class WinDeclSpecs;
71796
 
class WinMemberExplSpec;
71797
 
class WinTypeKeywords;
 
88415
class ExtGnu;
71798
88416
class PragmaOnceUnitState;
71799
88417
class PragmaOnce;
71800
 
class CCExprResolve;
71801
 
class CExprResolve;
 
88418
class CMatchSyntax;
71802
88419
namespace Puma {
71803
88420
 
71804
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88421
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71805
88422
class CT_MembInitList : public CT_List, public CSemScope {
71806
 
#line 71807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88423
#line 88424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88424
  friend class ::CCExprResolve;
 
88425
  friend class ::CExprResolve;
71807
88426
  friend class ::WinIfExists;
71808
88427
  friend class ::WinImportHandler;
71809
88428
  friend class ::WinMacros;
71810
 
  friend class ::CMatchSyntax;
71811
 
  friend class ::ExtGnu;
 
88429
  friend class ::WinAsm;
 
88430
  friend class ::WinDeclSpecs;
 
88431
  friend class ::WinMemberExplSpec;
 
88432
  friend class ::WinTypeKeywords;
 
88433
  friend class ::WinFriend;
71812
88434
  friend class ::ExtAC;
71813
88435
  friend class ::ExtACBuilderCoupling;
71814
88436
  friend class ::ExtACSyntaxCoupling;
71815
88437
  friend class ::ExtACTree;
71816
88438
  friend class ::ExtACKeywords;
71817
 
  friend class ::WinAsm;
71818
 
  friend class ::WinDeclSpecs;
71819
 
  friend class ::WinMemberExplSpec;
71820
 
  friend class ::WinTypeKeywords;
 
88439
  friend class ::ExtGnu;
71821
88440
  friend class ::PragmaOnceUnitState;
71822
88441
  friend class ::PragmaOnce;
71823
 
  friend class ::CCExprResolve;
71824
 
  friend class ::CExprResolve;
 
88442
  friend class ::CMatchSyntax;
71825
88443
 
71826
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88444
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71827
88445
 
71828
88446
public:
71829
88447
  CT_MembInitList (int size = 2) : 
71830
88448
    CT_List (size, 2, CT_List::OPEN) {}
71831
88449
  static const char *NodeId ();
 
88450
  /** Get the name of the node. Can be compared with NodeId(). */
71832
88451
  const char *NodeName () const { return NodeId (); }
 
88452
  CSemScope *SemScope () const { return (CSemScope*)this; }
71833
88453
};
71834
88454
 
71835
88455
 
71836
 
#line 71837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88456
#line 88457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71837
88457
} // closed Puma
 
88458
class CCExprResolve;
 
88459
class CExprResolve;
71838
88460
class WinIfExists;
71839
88461
class WinImportHandler;
71840
88462
class WinMacros;
71841
 
class CMatchSyntax;
71842
 
class ExtGnu;
 
88463
class WinAsm;
 
88464
class WinDeclSpecs;
 
88465
class WinMemberExplSpec;
 
88466
class WinTypeKeywords;
 
88467
class WinFriend;
71843
88468
class ExtAC;
71844
88469
class ExtACBuilderCoupling;
71845
88470
class ExtACSyntaxCoupling;
71846
88471
class ExtACTree;
71847
88472
class ExtACKeywords;
71848
 
class WinAsm;
71849
 
class WinDeclSpecs;
71850
 
class WinMemberExplSpec;
71851
 
class WinTypeKeywords;
 
88473
class ExtGnu;
71852
88474
class PragmaOnceUnitState;
71853
88475
class PragmaOnce;
71854
 
class CCExprResolve;
71855
 
class CExprResolve;
71856
 
namespace Puma {
71857
 
 
71858
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88476
class CMatchSyntax;
 
88477
namespace Puma {
 
88478
 
 
88479
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88480
 
 
88481
#line 88482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88482
} // closed Puma
 
88483
 
 
88484
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
88485
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
88486
#include "CCExprResolveH.ah"
 
88487
#endif
 
88488
namespace Puma {
 
88489
 
 
88490
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88491
 
 
88492
#line 88493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88493
} // closed Puma
 
88494
 
 
88495
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
88496
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
88497
#include "CExprResolveH.ah"
 
88498
#endif
 
88499
namespace Puma {
 
88500
 
 
88501
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71859
88502
class CT_MembInit : public CT_Expression, public CSemObject {
71860
 
#line 71861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88503
#line 88504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88504
  friend class ::CCExprResolve;
 
88505
  friend class ::CExprResolve;
71861
88506
  friend class ::WinIfExists;
71862
88507
  friend class ::WinImportHandler;
71863
88508
  friend class ::WinMacros;
71864
 
  friend class ::CMatchSyntax;
71865
 
  friend class ::ExtGnu;
 
88509
  friend class ::WinAsm;
 
88510
  friend class ::WinDeclSpecs;
 
88511
  friend class ::WinMemberExplSpec;
 
88512
  friend class ::WinTypeKeywords;
 
88513
  friend class ::WinFriend;
71866
88514
  friend class ::ExtAC;
71867
88515
  friend class ::ExtACBuilderCoupling;
71868
88516
  friend class ::ExtACSyntaxCoupling;
71869
88517
  friend class ::ExtACTree;
71870
88518
  friend class ::ExtACKeywords;
71871
 
  friend class ::WinAsm;
71872
 
  friend class ::WinDeclSpecs;
71873
 
  friend class ::WinMemberExplSpec;
71874
 
  friend class ::WinTypeKeywords;
 
88519
  friend class ::ExtGnu;
71875
88520
  friend class ::PragmaOnceUnitState;
71876
88521
  friend class ::PragmaOnce;
71877
 
  friend class ::CCExprResolve;
71878
 
  friend class ::CExprResolve;
 
88522
  friend class ::CMatchSyntax;
71879
88523
 
71880
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88524
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71881
88525
 
71882
88526
  CTree *sons[2]; // name, init
71883
88527
 
71884
88528
public:
71885
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
88529
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
88530
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71886
88531
  static const char *NodeId ();
 
88532
  /** Get the name of the node. Can be compared with NodeId(). */
71887
88533
  const char *NodeName () const { return NodeId (); }
 
88534
  /** Get the number of sons. */
71888
88535
  int Sons () const { return 2; }
 
88536
  /** Get the n-th son.
 
88537
   *  \param n The index of the son.
 
88538
   *  \return The n-th son or NULL. */
71889
88539
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
88540
  /** Replace a son.
 
88541
   *  \param old_son The son to replace.
 
88542
   *  \param new_son The new son. */
71890
88543
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71891
88544
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71892
88545
  }
71896
88549
   private:
71897
88550
  typedef CT_MembInit CCExprResolveExpr;
71898
88551
 
71899
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
88552
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
71900
88553
 public :
71901
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
88554
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
71902
88555
  typedef CT_MembInit CExprResolveExpr;
71903
88556
 
71904
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
88557
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
71905
88558
 public :
71906
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
71907
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88559
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
88560
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71908
88561
};
71909
88562
 
71910
88563
 
71911
 
#line 71912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88564
#line 88565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71912
88565
} // closed Puma
 
88566
class CCExprResolve;
 
88567
class CExprResolve;
71913
88568
class WinIfExists;
71914
88569
class WinImportHandler;
71915
88570
class WinMacros;
71916
 
class CMatchSyntax;
71917
 
class ExtGnu;
 
88571
class WinAsm;
 
88572
class WinDeclSpecs;
 
88573
class WinMemberExplSpec;
 
88574
class WinTypeKeywords;
 
88575
class WinFriend;
71918
88576
class ExtAC;
71919
88577
class ExtACBuilderCoupling;
71920
88578
class ExtACSyntaxCoupling;
71921
88579
class ExtACTree;
71922
88580
class ExtACKeywords;
71923
 
class WinAsm;
71924
 
class WinDeclSpecs;
71925
 
class WinMemberExplSpec;
71926
 
class WinTypeKeywords;
 
88581
class ExtGnu;
71927
88582
class PragmaOnceUnitState;
71928
88583
class PragmaOnce;
71929
 
class CCExprResolve;
71930
 
class CExprResolve;
 
88584
class CMatchSyntax;
71931
88585
namespace Puma {
71932
88586
 
71933
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88587
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71934
88588
class CT_BaseSpecList : public CT_List {
71935
 
#line 71936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88589
#line 88590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88590
  friend class ::CCExprResolve;
 
88591
  friend class ::CExprResolve;
71936
88592
  friend class ::WinIfExists;
71937
88593
  friend class ::WinImportHandler;
71938
88594
  friend class ::WinMacros;
71939
 
  friend class ::CMatchSyntax;
71940
 
  friend class ::ExtGnu;
 
88595
  friend class ::WinAsm;
 
88596
  friend class ::WinDeclSpecs;
 
88597
  friend class ::WinMemberExplSpec;
 
88598
  friend class ::WinTypeKeywords;
 
88599
  friend class ::WinFriend;
71941
88600
  friend class ::ExtAC;
71942
88601
  friend class ::ExtACBuilderCoupling;
71943
88602
  friend class ::ExtACSyntaxCoupling;
71944
88603
  friend class ::ExtACTree;
71945
88604
  friend class ::ExtACKeywords;
71946
 
  friend class ::WinAsm;
71947
 
  friend class ::WinDeclSpecs;
71948
 
  friend class ::WinMemberExplSpec;
71949
 
  friend class ::WinTypeKeywords;
 
88605
  friend class ::ExtGnu;
71950
88606
  friend class ::PragmaOnceUnitState;
71951
88607
  friend class ::PragmaOnce;
71952
 
  friend class ::CCExprResolve;
71953
 
  friend class ::CExprResolve;
 
88608
  friend class ::CMatchSyntax;
71954
88609
 
71955
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88610
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71956
88611
 
71957
88612
public:
71958
88613
  CT_BaseSpecList (int size = 2) : 
71959
88614
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
88615
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71960
88616
  static const char *NodeId ();
 
88617
  /** Get the name of the node. Can be compared with NodeId(). */
71961
88618
  const char *NodeName () const { return NodeId (); }
71962
88619
};
71963
88620
 
71964
88621
 
71965
 
#line 71966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88622
#line 88623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
71966
88623
} // closed Puma
 
88624
class CCExprResolve;
 
88625
class CExprResolve;
71967
88626
class WinIfExists;
71968
88627
class WinImportHandler;
71969
88628
class WinMacros;
71970
 
class CMatchSyntax;
71971
 
class ExtGnu;
 
88629
class WinAsm;
 
88630
class WinDeclSpecs;
 
88631
class WinMemberExplSpec;
 
88632
class WinTypeKeywords;
 
88633
class WinFriend;
71972
88634
class ExtAC;
71973
88635
class ExtACBuilderCoupling;
71974
88636
class ExtACSyntaxCoupling;
71975
88637
class ExtACTree;
71976
88638
class ExtACKeywords;
71977
 
class WinAsm;
71978
 
class WinDeclSpecs;
71979
 
class WinMemberExplSpec;
71980
 
class WinTypeKeywords;
 
88639
class ExtGnu;
71981
88640
class PragmaOnceUnitState;
71982
88641
class PragmaOnce;
71983
 
class CCExprResolve;
71984
 
class CExprResolve;
 
88642
class CMatchSyntax;
71985
88643
namespace Puma {
71986
88644
 
71987
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88645
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71988
88646
class CT_AccessSpec : public CTree {
71989
 
#line 71990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88647
#line 88648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88648
  friend class ::CCExprResolve;
 
88649
  friend class ::CExprResolve;
71990
88650
  friend class ::WinIfExists;
71991
88651
  friend class ::WinImportHandler;
71992
88652
  friend class ::WinMacros;
71993
 
  friend class ::CMatchSyntax;
71994
 
  friend class ::ExtGnu;
 
88653
  friend class ::WinAsm;
 
88654
  friend class ::WinDeclSpecs;
 
88655
  friend class ::WinMemberExplSpec;
 
88656
  friend class ::WinTypeKeywords;
 
88657
  friend class ::WinFriend;
71995
88658
  friend class ::ExtAC;
71996
88659
  friend class ::ExtACBuilderCoupling;
71997
88660
  friend class ::ExtACSyntaxCoupling;
71998
88661
  friend class ::ExtACTree;
71999
88662
  friend class ::ExtACKeywords;
72000
 
  friend class ::WinAsm;
72001
 
  friend class ::WinDeclSpecs;
72002
 
  friend class ::WinMemberExplSpec;
72003
 
  friend class ::WinTypeKeywords;
 
88663
  friend class ::ExtGnu;
72004
88664
  friend class ::PragmaOnceUnitState;
72005
88665
  friend class ::PragmaOnce;
72006
 
  friend class ::CCExprResolve;
72007
 
  friend class ::CExprResolve;
 
88666
  friend class ::CMatchSyntax;
72008
88667
 
72009
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88668
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72010
88669
 
72011
88670
  CTree *sons[2]; // access, colon
72012
88671
 
72013
88672
public:
72014
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
88673
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
88674
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72015
88675
  static const char *NodeId ();
 
88676
  /** Get the name of the node. Can be compared with NodeId(). */
72016
88677
  const char *NodeName () const { return NodeId (); }
 
88678
  /** Get the number of sons. */
72017
88679
  int Sons () const { return 2; }
 
88680
  /** Get the n-th son.
 
88681
   *  \param n The index of the son.
 
88682
   *  \return The n-th son or NULL. */
72018
88683
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
72019
88684
  int Access () const { return sons[0]->token ()->type (); }
 
88685
  /** Replace a son.
 
88686
   *  \param old_son The son to replace.
 
88687
   *  \param new_son The new son. */
72020
88688
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72021
88689
    CTree::ReplaceSon (sons, 2, old_son, new_son);
72022
88690
  }
72023
88691
};
72024
88692
 
72025
88693
 
72026
 
#line 72027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88694
#line 88695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72027
88695
} // closed Puma
 
88696
class CCExprResolve;
 
88697
class CExprResolve;
72028
88698
class WinIfExists;
72029
88699
class WinImportHandler;
72030
88700
class WinMacros;
72031
 
class CMatchSyntax;
72032
 
class ExtGnu;
 
88701
class WinAsm;
 
88702
class WinDeclSpecs;
 
88703
class WinMemberExplSpec;
 
88704
class WinTypeKeywords;
 
88705
class WinFriend;
72033
88706
class ExtAC;
72034
88707
class ExtACBuilderCoupling;
72035
88708
class ExtACSyntaxCoupling;
72036
88709
class ExtACTree;
72037
88710
class ExtACKeywords;
72038
 
class WinAsm;
72039
 
class WinDeclSpecs;
72040
 
class WinMemberExplSpec;
72041
 
class WinTypeKeywords;
 
88711
class ExtGnu;
72042
88712
class PragmaOnceUnitState;
72043
88713
class PragmaOnce;
72044
 
class CCExprResolve;
72045
 
class CExprResolve;
 
88714
class CMatchSyntax;
72046
88715
namespace Puma {
72047
88716
 
72048
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88717
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72049
88718
class CT_BaseSpec : public CTree {
72050
 
#line 72051 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88719
#line 88720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88720
  friend class ::CCExprResolve;
 
88721
  friend class ::CExprResolve;
72051
88722
  friend class ::WinIfExists;
72052
88723
  friend class ::WinImportHandler;
72053
88724
  friend class ::WinMacros;
72054
 
  friend class ::CMatchSyntax;
72055
 
  friend class ::ExtGnu;
 
88725
  friend class ::WinAsm;
 
88726
  friend class ::WinDeclSpecs;
 
88727
  friend class ::WinMemberExplSpec;
 
88728
  friend class ::WinTypeKeywords;
 
88729
  friend class ::WinFriend;
72056
88730
  friend class ::ExtAC;
72057
88731
  friend class ::ExtACBuilderCoupling;
72058
88732
  friend class ::ExtACSyntaxCoupling;
72059
88733
  friend class ::ExtACTree;
72060
88734
  friend class ::ExtACKeywords;
72061
 
  friend class ::WinAsm;
72062
 
  friend class ::WinDeclSpecs;
72063
 
  friend class ::WinMemberExplSpec;
72064
 
  friend class ::WinTypeKeywords;
 
88735
  friend class ::ExtGnu;
72065
88736
  friend class ::PragmaOnceUnitState;
72066
88737
  friend class ::PragmaOnce;
72067
 
  friend class ::CCExprResolve;
72068
 
  friend class ::CExprResolve;
 
88738
  friend class ::CMatchSyntax;
72069
88739
 
72070
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88740
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72071
88741
 
72072
88742
  CTree *sons[3]; // virtual, access, name
72073
88743
 
72074
88744
public:
72075
88745
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
72076
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
88746
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
72077
88747
  }
 
88748
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72078
88749
  static const char *NodeId ();
 
88750
  /** Get the name of the node. Can be compared with NodeId(). */
72079
88751
  const char *NodeName () const { return NodeId (); }
 
88752
  /** Get the number of sons. */
72080
88753
  int Sons () const { return CTree::Sons (sons, 3); }
 
88754
  /** Get the n-th son.
 
88755
   *  \param n The index of the son.
 
88756
   *  \return The n-th son or NULL. */
72081
88757
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
72082
88758
  int Access () const { return sons[1]->token ()->type (); }
72083
88759
  CTree *AccessSpec () const { return sons[1]; }
72084
88760
  CTree *Virtual () const { return sons[0]; }
72085
88761
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
88762
  /** Replace a son.
 
88763
   *  \param old_son The son to replace.
 
88764
   *  \param new_son The new son. */
72086
88765
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72087
88766
    CTree::ReplaceSon (sons, 3, old_son, new_son);
72088
88767
  }
72089
88768
};
72090
88769
 
72091
88770
 
72092
 
#line 72093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88771
#line 88772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72093
88772
} // closed Puma
 
88773
class CCExprResolve;
 
88774
class CExprResolve;
72094
88775
class WinIfExists;
72095
88776
class WinImportHandler;
72096
88777
class WinMacros;
72097
 
class CMatchSyntax;
72098
 
class ExtGnu;
 
88778
class WinAsm;
 
88779
class WinDeclSpecs;
 
88780
class WinMemberExplSpec;
 
88781
class WinTypeKeywords;
 
88782
class WinFriend;
72099
88783
class ExtAC;
72100
88784
class ExtACBuilderCoupling;
72101
88785
class ExtACSyntaxCoupling;
72102
88786
class ExtACTree;
72103
88787
class ExtACKeywords;
72104
 
class WinAsm;
72105
 
class WinDeclSpecs;
72106
 
class WinMemberExplSpec;
72107
 
class WinTypeKeywords;
 
88788
class ExtGnu;
72108
88789
class PragmaOnceUnitState;
72109
88790
class PragmaOnce;
72110
 
class CCExprResolve;
72111
 
class CExprResolve;
 
88791
class CMatchSyntax;
72112
88792
namespace Puma {
72113
88793
 
72114
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88794
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72115
88795
class CT_AccessDecl : public CT_Decl {
72116
 
#line 72117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88796
#line 88797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88797
  friend class ::CCExprResolve;
 
88798
  friend class ::CExprResolve;
72117
88799
  friend class ::WinIfExists;
72118
88800
  friend class ::WinImportHandler;
72119
88801
  friend class ::WinMacros;
72120
 
  friend class ::CMatchSyntax;
72121
 
  friend class ::ExtGnu;
 
88802
  friend class ::WinAsm;
 
88803
  friend class ::WinDeclSpecs;
 
88804
  friend class ::WinMemberExplSpec;
 
88805
  friend class ::WinTypeKeywords;
 
88806
  friend class ::WinFriend;
72122
88807
  friend class ::ExtAC;
72123
88808
  friend class ::ExtACBuilderCoupling;
72124
88809
  friend class ::ExtACSyntaxCoupling;
72125
88810
  friend class ::ExtACTree;
72126
88811
  friend class ::ExtACKeywords;
72127
 
  friend class ::WinAsm;
72128
 
  friend class ::WinDeclSpecs;
72129
 
  friend class ::WinMemberExplSpec;
72130
 
  friend class ::WinTypeKeywords;
 
88812
  friend class ::ExtGnu;
72131
88813
  friend class ::PragmaOnceUnitState;
72132
88814
  friend class ::PragmaOnce;
72133
 
  friend class ::CCExprResolve;
72134
 
  friend class ::CExprResolve;
 
88815
  friend class ::CMatchSyntax;
72135
88816
 
72136
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88817
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72137
88818
 
72138
88819
  CTree *sons[2]; // name, semi_colon
72139
88820
 
72140
88821
public:
72141
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
88822
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
88823
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72142
88824
  static const char *NodeId ();
 
88825
  /** Get the name of the node. Can be compared with NodeId(). */
72143
88826
  const char *NodeName () const { return NodeId (); }
 
88827
  /** Get the number of sons. */
72144
88828
  int Sons () const { return 2; }
 
88829
  /** Get the n-th son.
 
88830
   *  \param n The index of the son.
 
88831
   *  \return The n-th son or NULL. */
72145
88832
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
72146
88833
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
88834
  /** Replace a son.
 
88835
   *  \param old_son The son to replace.
 
88836
   *  \param new_son The new son. */
72147
88837
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72148
88838
    CTree::ReplaceSon (sons, 2, old_son, new_son);
72149
88839
  }
72150
88840
};
72151
88841
 
72152
88842
 
72153
 
#line 72154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88843
#line 88844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72154
88844
} // closed Puma
 
88845
class CCExprResolve;
 
88846
class CExprResolve;
72155
88847
class WinIfExists;
72156
88848
class WinImportHandler;
72157
88849
class WinMacros;
72158
 
class CMatchSyntax;
72159
 
class ExtGnu;
 
88850
class WinAsm;
 
88851
class WinDeclSpecs;
 
88852
class WinMemberExplSpec;
 
88853
class WinTypeKeywords;
 
88854
class WinFriend;
72160
88855
class ExtAC;
72161
88856
class ExtACBuilderCoupling;
72162
88857
class ExtACSyntaxCoupling;
72163
88858
class ExtACTree;
72164
88859
class ExtACKeywords;
72165
 
class WinAsm;
72166
 
class WinDeclSpecs;
72167
 
class WinMemberExplSpec;
72168
 
class WinTypeKeywords;
 
88860
class ExtGnu;
72169
88861
class PragmaOnceUnitState;
72170
88862
class PragmaOnce;
72171
 
class CCExprResolve;
72172
 
class CExprResolve;
 
88863
class CMatchSyntax;
72173
88864
namespace Puma {
72174
88865
 
72175
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88866
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72176
88867
class CT_UsingDecl : public CT_AccessDecl {
72177
 
#line 72178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88868
#line 88869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88869
  friend class ::CCExprResolve;
 
88870
  friend class ::CExprResolve;
72178
88871
  friend class ::WinIfExists;
72179
88872
  friend class ::WinImportHandler;
72180
88873
  friend class ::WinMacros;
72181
 
  friend class ::CMatchSyntax;
72182
 
  friend class ::ExtGnu;
 
88874
  friend class ::WinAsm;
 
88875
  friend class ::WinDeclSpecs;
 
88876
  friend class ::WinMemberExplSpec;
 
88877
  friend class ::WinTypeKeywords;
 
88878
  friend class ::WinFriend;
72183
88879
  friend class ::ExtAC;
72184
88880
  friend class ::ExtACBuilderCoupling;
72185
88881
  friend class ::ExtACSyntaxCoupling;
72186
88882
  friend class ::ExtACTree;
72187
88883
  friend class ::ExtACKeywords;
72188
 
  friend class ::WinAsm;
72189
 
  friend class ::WinDeclSpecs;
72190
 
  friend class ::WinMemberExplSpec;
72191
 
  friend class ::WinTypeKeywords;
 
88884
  friend class ::ExtGnu;
72192
88885
  friend class ::PragmaOnceUnitState;
72193
88886
  friend class ::PragmaOnce;
72194
 
  friend class ::CCExprResolve;
72195
 
  friend class ::CExprResolve;
 
88887
  friend class ::CMatchSyntax;
72196
88888
 
72197
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88889
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72198
88890
 
72199
88891
  CTree *sons[2]; // using, typename
72200
88892
 
72201
88893
public:
72202
88894
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
72203
 
    sons[0] = u; sons[1] = 0; 
 
88895
    AddSon (sons[0], u); AddSon (sons[1], 0); 
72204
88896
  }
72205
88897
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
72206
 
    sons[0] = u; sons[1] = t; 
 
88898
    AddSon (sons[0], u); AddSon (sons[1], t); 
72207
88899
  }
 
88900
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72208
88901
  static const char *NodeId ();
 
88902
  /** Get the name of the node. Can be compared with NodeId(). */
72209
88903
  const char *NodeName () const { return NodeId (); }
 
88904
  /** Get the number of sons. */
72210
88905
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
88906
  /** Get the n-th son.
 
88907
   *  \param n The index of the son.
 
88908
   *  \return The n-th son or NULL. */
72211
88909
  CTree *Son (int n) const {
72212
88910
    int num = CTree::Sons (sons, 2);
72213
88911
    CTree *result = CTree::Son (sons, 2, n);
72214
88912
    return result ? result : CT_AccessDecl::Son (n-num);
72215
88913
  }
72216
88914
  CTree *Typename () const { return sons[1]; }
 
88915
  /** Replace a son.
 
88916
   *  \param old_son The son to replace.
 
88917
   *  \param new_son The new son. */
72217
88918
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72218
88919
    CTree::ReplaceSon (sons, 2, old_son, new_son);
72219
88920
    CT_AccessDecl::ReplaceSon (old_son, new_son);
72227
88928
/*****************************************************************************/
72228
88929
 
72229
88930
 
72230
 
#line 72231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88931
#line 88932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72231
88932
} // closed Puma
 
88933
class CCExprResolve;
 
88934
class CExprResolve;
72232
88935
class WinIfExists;
72233
88936
class WinImportHandler;
72234
88937
class WinMacros;
72235
 
class CMatchSyntax;
72236
 
class ExtGnu;
 
88938
class WinAsm;
 
88939
class WinDeclSpecs;
 
88940
class WinMemberExplSpec;
 
88941
class WinTypeKeywords;
 
88942
class WinFriend;
72237
88943
class ExtAC;
72238
88944
class ExtACBuilderCoupling;
72239
88945
class ExtACSyntaxCoupling;
72240
88946
class ExtACTree;
72241
88947
class ExtACKeywords;
72242
 
class WinAsm;
72243
 
class WinDeclSpecs;
72244
 
class WinMemberExplSpec;
72245
 
class WinTypeKeywords;
 
88948
class ExtGnu;
72246
88949
class PragmaOnceUnitState;
72247
88950
class PragmaOnce;
72248
 
class CCExprResolve;
72249
 
class CExprResolve;
 
88951
class CMatchSyntax;
72250
88952
namespace Puma {
72251
88953
 
72252
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88954
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72253
88955
class CT_Any : public CTree {
72254
 
#line 72255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
88956
#line 88957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
88957
  friend class ::CCExprResolve;
 
88958
  friend class ::CExprResolve;
72255
88959
  friend class ::WinIfExists;
72256
88960
  friend class ::WinImportHandler;
72257
88961
  friend class ::WinMacros;
72258
 
  friend class ::CMatchSyntax;
72259
 
  friend class ::ExtGnu;
 
88962
  friend class ::WinAsm;
 
88963
  friend class ::WinDeclSpecs;
 
88964
  friend class ::WinMemberExplSpec;
 
88965
  friend class ::WinTypeKeywords;
 
88966
  friend class ::WinFriend;
72260
88967
  friend class ::ExtAC;
72261
88968
  friend class ::ExtACBuilderCoupling;
72262
88969
  friend class ::ExtACSyntaxCoupling;
72263
88970
  friend class ::ExtACTree;
72264
88971
  friend class ::ExtACKeywords;
72265
 
  friend class ::WinAsm;
72266
 
  friend class ::WinDeclSpecs;
72267
 
  friend class ::WinMemberExplSpec;
72268
 
  friend class ::WinTypeKeywords;
 
88972
  friend class ::ExtGnu;
72269
88973
  friend class ::PragmaOnceUnitState;
72270
88974
  friend class ::PragmaOnce;
72271
 
  friend class ::CCExprResolve;
72272
 
  friend class ::CExprResolve;
 
88975
  friend class ::CMatchSyntax;
72273
88976
 
72274
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88977
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72275
88978
 
72276
88979
  CTree *sons[2]; // keyword, extension
72277
88980
 
72278
88981
public:
72279
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
88982
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
88983
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72280
88984
  static const char *NodeId ();
 
88985
  /** Get the name of the node. Can be compared with NodeId(). */
72281
88986
  const char *NodeName () const { return NodeId (); }
 
88987
  /** Get the number of sons. */
72282
88988
  int Sons () const { return CTree::Sons (sons, 2); }
 
88989
  /** Get the n-th son.
 
88990
   *  \param n The index of the son.
 
88991
   *  \return The n-th son or NULL. */
72283
88992
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
88993
  /** Replace a son.
 
88994
   *  \param old_son The son to replace.
 
88995
   *  \param new_son The new son. */
72284
88996
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72285
88997
    CTree::ReplaceSon (sons, 2, old_son, new_son);
72286
88998
  }
72289
89001
};
72290
89002
 
72291
89003
 
72292
 
#line 72293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89004
#line 89005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72293
89005
} // closed Puma
 
89006
class CCExprResolve;
 
89007
class CExprResolve;
72294
89008
class WinIfExists;
72295
89009
class WinImportHandler;
72296
89010
class WinMacros;
72297
 
class CMatchSyntax;
72298
 
class ExtGnu;
 
89011
class WinAsm;
 
89012
class WinDeclSpecs;
 
89013
class WinMemberExplSpec;
 
89014
class WinTypeKeywords;
 
89015
class WinFriend;
72299
89016
class ExtAC;
72300
89017
class ExtACBuilderCoupling;
72301
89018
class ExtACSyntaxCoupling;
72302
89019
class ExtACTree;
72303
89020
class ExtACKeywords;
72304
 
class WinAsm;
72305
 
class WinDeclSpecs;
72306
 
class WinMemberExplSpec;
72307
 
class WinTypeKeywords;
 
89021
class ExtGnu;
72308
89022
class PragmaOnceUnitState;
72309
89023
class PragmaOnce;
72310
 
class CCExprResolve;
72311
 
class CExprResolve;
 
89024
class CMatchSyntax;
72312
89025
namespace Puma {
72313
89026
 
72314
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89027
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72315
89028
class CT_AnyList : public CT_Any {
72316
 
#line 72317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89029
#line 89030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89030
  friend class ::CCExprResolve;
 
89031
  friend class ::CExprResolve;
72317
89032
  friend class ::WinIfExists;
72318
89033
  friend class ::WinImportHandler;
72319
89034
  friend class ::WinMacros;
72320
 
  friend class ::CMatchSyntax;
72321
 
  friend class ::ExtGnu;
 
89035
  friend class ::WinAsm;
 
89036
  friend class ::WinDeclSpecs;
 
89037
  friend class ::WinMemberExplSpec;
 
89038
  friend class ::WinTypeKeywords;
 
89039
  friend class ::WinFriend;
72322
89040
  friend class ::ExtAC;
72323
89041
  friend class ::ExtACBuilderCoupling;
72324
89042
  friend class ::ExtACSyntaxCoupling;
72325
89043
  friend class ::ExtACTree;
72326
89044
  friend class ::ExtACKeywords;
72327
 
  friend class ::WinAsm;
72328
 
  friend class ::WinDeclSpecs;
72329
 
  friend class ::WinMemberExplSpec;
72330
 
  friend class ::WinTypeKeywords;
 
89045
  friend class ::ExtGnu;
72331
89046
  friend class ::PragmaOnceUnitState;
72332
89047
  friend class ::PragmaOnce;
72333
 
  friend class ::CCExprResolve;
72334
 
  friend class ::CExprResolve;
 
89048
  friend class ::CMatchSyntax;
72335
89049
 
72336
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89050
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72337
89051
 
72338
89052
public:
72339
89053
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
89054
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72340
89055
  static const char *NodeId ();
 
89056
  /** Get the name of the node. Can be compared with NodeId(). */
72341
89057
  const char *NodeName () const { return NodeId (); }
72342
89058
};
72343
89059
 
72344
89060
 
72345
 
#line 72346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89061
#line 89062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72346
89062
} // closed Puma
 
89063
class CCExprResolve;
 
89064
class CExprResolve;
72347
89065
class WinIfExists;
72348
89066
class WinImportHandler;
72349
89067
class WinMacros;
72350
 
class CMatchSyntax;
72351
 
class ExtGnu;
 
89068
class WinAsm;
 
89069
class WinDeclSpecs;
 
89070
class WinMemberExplSpec;
 
89071
class WinTypeKeywords;
 
89072
class WinFriend;
72352
89073
class ExtAC;
72353
89074
class ExtACBuilderCoupling;
72354
89075
class ExtACSyntaxCoupling;
72355
89076
class ExtACTree;
72356
89077
class ExtACKeywords;
72357
 
class WinAsm;
72358
 
class WinDeclSpecs;
72359
 
class WinMemberExplSpec;
72360
 
class WinTypeKeywords;
 
89078
class ExtGnu;
72361
89079
class PragmaOnceUnitState;
72362
89080
class PragmaOnce;
72363
 
class CCExprResolve;
72364
 
class CExprResolve;
 
89081
class CMatchSyntax;
72365
89082
namespace Puma {
72366
89083
 
72367
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89084
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72368
89085
class CT_AnyExtension : public CTree, public CSemValue {
72369
 
#line 72370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89086
#line 89087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89087
  friend class ::CCExprResolve;
 
89088
  friend class ::CExprResolve;
72370
89089
  friend class ::WinIfExists;
72371
89090
  friend class ::WinImportHandler;
72372
89091
  friend class ::WinMacros;
72373
 
  friend class ::CMatchSyntax;
72374
 
  friend class ::ExtGnu;
 
89092
  friend class ::WinAsm;
 
89093
  friend class ::WinDeclSpecs;
 
89094
  friend class ::WinMemberExplSpec;
 
89095
  friend class ::WinTypeKeywords;
 
89096
  friend class ::WinFriend;
72375
89097
  friend class ::ExtAC;
72376
89098
  friend class ::ExtACBuilderCoupling;
72377
89099
  friend class ::ExtACSyntaxCoupling;
72378
89100
  friend class ::ExtACTree;
72379
89101
  friend class ::ExtACKeywords;
72380
 
  friend class ::WinAsm;
72381
 
  friend class ::WinDeclSpecs;
72382
 
  friend class ::WinMemberExplSpec;
72383
 
  friend class ::WinTypeKeywords;
 
89102
  friend class ::ExtGnu;
72384
89103
  friend class ::PragmaOnceUnitState;
72385
89104
  friend class ::PragmaOnce;
72386
 
  friend class ::CCExprResolve;
72387
 
  friend class ::CExprResolve;
 
89105
  friend class ::CMatchSyntax;
72388
89106
 
72389
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89107
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72390
89108
 
72391
89109
  CTree *sons[5]; // open, string, comma, cond, close
72392
89110
 
72393
89111
public:
72394
89112
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
72395
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
89113
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
89114
    AddSon (sons[3], c); AddSon (sons[4], cr); 
72396
89115
  }
 
89116
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72397
89117
  static const char *NodeId ();
 
89118
  /** Get the name of the node. Can be compared with NodeId(). */
72398
89119
  const char *NodeName () const { return NodeId (); }
 
89120
  /** Get the number of sons. */
72399
89121
  int Sons () const { return CTree::Sons (sons, 5); }
 
89122
  /** Get the n-th son.
 
89123
   *  \param n The index of the son.
 
89124
   *  \return The n-th son or NULL. */
72400
89125
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
89126
  /** Replace a son.
 
89127
   *  \param old_son The son to replace.
 
89128
   *  \param new_son The new son. */
72401
89129
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72402
89130
    CTree::ReplaceSon (sons, 5, old_son, new_son);
72403
89131
  }
72411
89139
};
72412
89140
 
72413
89141
 
72414
 
#line 72415 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89142
#line 89143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72415
89143
} // closed Puma
 
89144
class CCExprResolve;
 
89145
class CExprResolve;
72416
89146
class WinIfExists;
72417
89147
class WinImportHandler;
72418
89148
class WinMacros;
72419
 
class CMatchSyntax;
72420
 
class ExtGnu;
 
89149
class WinAsm;
 
89150
class WinDeclSpecs;
 
89151
class WinMemberExplSpec;
 
89152
class WinTypeKeywords;
 
89153
class WinFriend;
72421
89154
class ExtAC;
72422
89155
class ExtACBuilderCoupling;
72423
89156
class ExtACSyntaxCoupling;
72424
89157
class ExtACTree;
72425
89158
class ExtACKeywords;
72426
 
class WinAsm;
72427
 
class WinDeclSpecs;
72428
 
class WinMemberExplSpec;
72429
 
class WinTypeKeywords;
 
89159
class ExtGnu;
72430
89160
class PragmaOnceUnitState;
72431
89161
class PragmaOnce;
72432
 
class CCExprResolve;
72433
 
class CExprResolve;
 
89162
class CMatchSyntax;
72434
89163
namespace Puma {
72435
89164
 
72436
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89165
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72437
89166
class CT_AnyCondition : public CTree {
72438
 
#line 72439 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89167
#line 89168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89168
  friend class ::CCExprResolve;
 
89169
  friend class ::CExprResolve;
72439
89170
  friend class ::WinIfExists;
72440
89171
  friend class ::WinImportHandler;
72441
89172
  friend class ::WinMacros;
72442
 
  friend class ::CMatchSyntax;
72443
 
  friend class ::ExtGnu;
 
89173
  friend class ::WinAsm;
 
89174
  friend class ::WinDeclSpecs;
 
89175
  friend class ::WinMemberExplSpec;
 
89176
  friend class ::WinTypeKeywords;
 
89177
  friend class ::WinFriend;
72444
89178
  friend class ::ExtAC;
72445
89179
  friend class ::ExtACBuilderCoupling;
72446
89180
  friend class ::ExtACSyntaxCoupling;
72447
89181
  friend class ::ExtACTree;
72448
89182
  friend class ::ExtACKeywords;
72449
 
  friend class ::WinAsm;
72450
 
  friend class ::WinDeclSpecs;
72451
 
  friend class ::WinMemberExplSpec;
72452
 
  friend class ::WinTypeKeywords;
 
89183
  friend class ::ExtGnu;
72453
89184
  friend class ::PragmaOnceUnitState;
72454
89185
  friend class ::PragmaOnce;
72455
 
  friend class ::CCExprResolve;
72456
 
  friend class ::CExprResolve;
 
89186
  friend class ::CMatchSyntax;
72457
89187
 
72458
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89188
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72459
89189
 
72460
89190
  CTree *sons[3]; // arg1, arg2, arg3
72461
89191
 
72462
89192
public:
72463
89193
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
72464
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
89194
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
72465
89195
  }
 
89196
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72466
89197
  static const char *NodeId ();
 
89198
  /** Get the name of the node. Can be compared with NodeId(). */
72467
89199
  const char *NodeName () const { return NodeId (); }
 
89200
  /** Get the number of sons. */
72468
89201
  int Sons () const { return CTree::Sons (sons, 3); }
 
89202
  /** Get the n-th son.
 
89203
   *  \param n The index of the son.
 
89204
   *  \return The n-th son or NULL. */
72469
89205
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
89206
  /** Replace a son.
 
89207
   *  \param old_son The son to replace.
 
89208
   *  \param new_son The new son. */
72470
89209
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72471
89210
    CTree::ReplaceSon (sons, 3, old_son, new_son);
72472
89211
  }
72477
89216
 
72478
89217
#endif /* __CTree_h__ */
72479
89218
 
72480
 
#line 72481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72481
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
72482
 
 
72483
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72484
 
 
72485
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89219
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72486
89220
namespace Puma {
72487
89221
 
72488
89222
 
72489
89223
class ErrorSink;
72490
89224
 
72491
89225
 
72492
 
#line 72493 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89226
#line 89227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72493
89227
} // closed Puma
 
89228
class CCExprResolve;
 
89229
class CExprResolve;
72494
89230
class WinIfExists;
72495
89231
class WinImportHandler;
72496
89232
class WinMacros;
72497
 
class CMatchSyntax;
72498
 
class ExtGnu;
 
89233
class WinAsm;
 
89234
class WinDeclSpecs;
 
89235
class WinMemberExplSpec;
 
89236
class WinTypeKeywords;
 
89237
class WinFriend;
72499
89238
class ExtAC;
72500
89239
class ExtACBuilderCoupling;
72501
89240
class ExtACSyntaxCoupling;
72502
89241
class ExtACTree;
72503
89242
class ExtACKeywords;
72504
 
class WinAsm;
72505
 
class WinDeclSpecs;
72506
 
class WinMemberExplSpec;
72507
 
class WinTypeKeywords;
 
89243
class ExtGnu;
72508
89244
class PragmaOnceUnitState;
72509
89245
class PragmaOnce;
72510
 
class CCExprResolve;
72511
 
class CExprResolve;
72512
 
namespace Puma {
72513
 
 
72514
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89246
class CMatchSyntax;
 
89247
namespace Puma {
 
89248
 
 
89249
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89250
 
 
89251
#line 89252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89252
} // closed Puma
 
89253
 
 
89254
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
89255
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
89256
 
 
89257
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
89258
// This file is part of PUMA.
 
89259
// Copyright (C) 1999-2003  The PUMA developer team.
 
89260
//                                                                
 
89261
// This program is free software;  you can redistribute it and/or 
 
89262
// modify it under the terms of the GNU General Public License as 
 
89263
// published by the Free Software Foundation; either version 2 of 
 
89264
// the License, or (at your option) any later version.            
 
89265
//                                                                
 
89266
// This program is distributed in the hope that it will be useful,
 
89267
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
89268
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
89269
// GNU General Public License for more details.                   
 
89270
//                                                                
 
89271
// You should have received a copy of the GNU General Public      
 
89272
// License along with this program; if not, write to the Free     
 
89273
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
89274
// MA  02111-1307  USA                                            
 
89275
 
 
89276
#ifndef __ext_gnu_csem_decl_specs_ah__
 
89277
#define __ext_gnu_csem_decl_specs_ah__
 
89278
 
 
89279
 
 
89280
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
89281
namespace Puma {
 
89282
  
 
89283
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
89284
 
 
89285
}
 
89286
 
 
89287
#endif /* __ext_gnu_csem_decl_specs_ah__ */
 
89288
 
 
89289
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89290
#endif
 
89291
namespace Puma {
 
89292
 
 
89293
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72515
89294
class CSemDeclSpecs {
72516
 
#line 72517 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89295
#line 89296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89296
  friend class ::CCExprResolve;
 
89297
  friend class ::CExprResolve;
72517
89298
  friend class ::WinIfExists;
72518
89299
  friend class ::WinImportHandler;
72519
89300
  friend class ::WinMacros;
72520
 
  friend class ::CMatchSyntax;
72521
 
  friend class ::ExtGnu;
 
89301
  friend class ::WinAsm;
 
89302
  friend class ::WinDeclSpecs;
 
89303
  friend class ::WinMemberExplSpec;
 
89304
  friend class ::WinTypeKeywords;
 
89305
  friend class ::WinFriend;
72522
89306
  friend class ::ExtAC;
72523
89307
  friend class ::ExtACBuilderCoupling;
72524
89308
  friend class ::ExtACSyntaxCoupling;
72525
89309
  friend class ::ExtACTree;
72526
89310
  friend class ::ExtACKeywords;
72527
 
  friend class ::WinAsm;
72528
 
  friend class ::WinDeclSpecs;
72529
 
  friend class ::WinMemberExplSpec;
72530
 
  friend class ::WinTypeKeywords;
 
89311
  friend class ::ExtGnu;
72531
89312
  friend class ::PragmaOnceUnitState;
72532
89313
  friend class ::PragmaOnce;
72533
 
  friend class ::CCExprResolve;
72534
 
  friend class ::CExprResolve;
 
89314
  friend class ::CMatchSyntax;
72535
89315
 
72536
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89316
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72537
89317
 
72538
89318
 
72539
89319
  // initialization context
72560
89340
  // analyses the syntax tree nodes of the decl-spec sequence. Return false
72561
89341
  // if an error was detected. 
72562
89342
  
72563
 
#line 72564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72564
 
public: inline bool __exec_old_analyze_seq();
 
89343
#line 89344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89344
public: __attribute__((always_inline)) inline bool __exec_old_analyze_seq();
72565
89345
private:
72566
89346
 
72567
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89347
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72568
89348
bool analyze_seq ();
72569
89349
  
72570
89350
  // analyzes the current declaration specifier in the sequence and set some
72571
89351
  // attributes according to the result. Returns false if the specifier type
72572
89352
  // is unknown.
72573
89353
  
72574
 
#line 72575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72575
 
public: inline bool __exec_old_analyze(::Puma::CTree * spec);
 
89354
#line 89355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89355
public: __attribute__((always_inline)) inline bool __exec_old_analyze(::Puma::CTree * spec);
72576
89356
private:
72577
89357
 
72578
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89358
#line 60 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72579
89359
bool analyze (CTree *spec);
72580
89360
 
72581
89361
  // check functions (used after analyse_seq()
72582
89362
  bool check_prim_decl_specs (bool &have_type);
72583
89363
  
72584
 
#line 72585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72585
 
public: inline bool __exec_old_check_complex_decl_specs(bool & have_type);
 
89364
#line 89365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89365
public: __attribute__((always_inline)) inline bool __exec_old_check_complex_decl_specs(bool & have_type);
72586
89366
private:
72587
89367
 
72588
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89368
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72589
89369
bool check_complex_decl_specs (bool &have_type);  
72590
89370
  bool check_storage_class ();
72591
89371
  
72592
 
#line 72593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72593
 
public: inline bool __exec_old_check_signed_unsigned();
 
89372
#line 89373 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89373
public: __attribute__((always_inline)) inline bool __exec_old_check_signed_unsigned();
72594
89374
private:
72595
89375
 
72596
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89376
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72597
89377
bool check_signed_unsigned ();
72598
89378
  bool check_long_short (); 
72599
89379
  
72600
 
#line 72601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72601
 
public: inline bool __exec_old_check_finally();
 
89380
#line 89381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89381
public: __attribute__((always_inline)) inline bool __exec_old_check_finally();
72602
89382
private:
72603
89383
 
72604
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89384
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72605
89385
bool check_finally ();
72606
89386
  
72607
89387
  // type creation code
72608
89388
  
72609
 
#line 72610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72610
 
public: inline ::Puma::CTypeInfo * __exec_old_create_type();
 
89389
#line 89390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89390
public: __attribute__((always_inline)) inline ::Puma::CTypeInfo * __exec_old_create_type();
72611
89391
private:
72612
89392
 
72613
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89393
#line 71 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72614
89394
CTypeInfo *create_type ();
72615
89395
  CTypeInfo *create_qualifiers (CTypeInfo *type);
72616
89396
  
72617
89397
public:
72618
 
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *);
 
89398
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *, bool support_implicit_int = false);
72619
89399
  ~CSemDeclSpecs ();
72620
89400
 
72621
89401
  CTypeInfo *make_type () const;
72626
89406
  bool defUnion () const;
72627
89407
  bool defEnum () const;
72628
89408
   private:
 
89409
  typedef CSemDeclSpecs ExtGnuCSemDeclSpecs;
72629
89410
 
72630
 
#line 151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89411
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
72631
89412
 public :
72632
89413
int _typeofs ;
72633
89414
CT_GnuTypeof * _typeof_node ;
72634
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
89415
#line 85 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72635
89416
};
72636
89417
 
72637
89418
inline CSemDeclSpecs::~CSemDeclSpecs () 
72657
89438
 
72658
89439
#endif /* __c_sem_decl_specs_h__ */
72659
89440
 
72660
 
#line 72661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72661
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
72662
 
 
72663
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
72664
 
 
72665
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89441
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72666
89442
namespace Puma {
72667
89443
  class CCSyntax;
72668
89444
  class CSyntax;
72669
 
} // namespace Puma
72670
 
 
72671
 
 
72672
 
using namespace Puma;
 
89445
}
 
89446
 
72673
89447
 
72674
89448
namespace Puma {
72675
89449
  
72676
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72677
 
 
72678
 
  
72679
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72680
 
 
72681
 
  
72682
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72683
 
 
72684
 
  
72685
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72686
 
 
72687
 
  
72688
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72689
 
 
72690
 
  
72691
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72692
 
 
72693
 
  
72694
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72695
 
 
72696
 
  
72697
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72698
 
 
72699
 
  
72700
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72701
 
 
72702
 
  
72703
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89450
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89451
 
 
89452
  
 
89453
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89454
 
 
89455
  
 
89456
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89457
 
 
89458
  
 
89459
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89460
 
 
89461
  
 
89462
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89463
 
 
89464
  
 
89465
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89466
 
 
89467
  
 
89468
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89469
 
 
89470
  
 
89471
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89472
 
 
89473
  
 
89474
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89475
 
 
89476
  
 
89477
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72704
89478
 
72705
89479
}
72706
89480
 
72707
89481
 
72708
 
#line 72709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89482
#line 89483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89483
class CCExprResolve;
 
89484
class CExprResolve;
72709
89485
class WinIfExists;
72710
89486
class WinImportHandler;
72711
89487
class WinMacros;
72712
 
class CMatchSyntax;
 
89488
class WinAsm;
 
89489
class WinDeclSpecs;
 
89490
class WinMemberExplSpec;
 
89491
class WinTypeKeywords;
 
89492
class WinFriend;
72713
89493
class ExtAC;
72714
89494
class ExtACBuilderCoupling;
72715
89495
class ExtACSyntaxCoupling;
72716
89496
class ExtACTree;
72717
89497
class ExtACKeywords;
72718
 
class WinAsm;
72719
 
class WinDeclSpecs;
72720
 
class WinMemberExplSpec;
72721
 
class WinTypeKeywords;
72722
89498
class PragmaOnceUnitState;
72723
89499
class PragmaOnce;
72724
 
class CCExprResolve;
72725
 
class CExprResolve;
 
89500
class CMatchSyntax;
72726
89501
 
72727
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89502
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72728
89503
class ExtGnu {
72729
 
#line 72730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89504
#line 89505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72730
89505
 
72731
89506
public:
72732
89507
  static ExtGnu *aspectof () {
72738
89513
  }
72739
89514
private:
72740
89515
 
72741
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89516
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72742
89517
 
72743
 
#line 72744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89518
#line 89519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89519
  friend class ::CCExprResolve;
 
89520
  friend class ::CExprResolve;
72744
89521
  friend class ::WinIfExists;
72745
89522
  friend class ::WinImportHandler;
72746
89523
  friend class ::WinMacros;
72747
 
  friend class ::CMatchSyntax;
 
89524
  friend class ::WinAsm;
 
89525
  friend class ::WinDeclSpecs;
 
89526
  friend class ::WinMemberExplSpec;
 
89527
  friend class ::WinTypeKeywords;
 
89528
  friend class ::WinFriend;
72748
89529
  friend class ::ExtAC;
72749
89530
  friend class ::ExtACBuilderCoupling;
72750
89531
  friend class ::ExtACSyntaxCoupling;
72751
89532
  friend class ::ExtACTree;
72752
89533
  friend class ::ExtACKeywords;
72753
 
  friend class ::WinAsm;
72754
 
  friend class ::WinDeclSpecs;
72755
 
  friend class ::WinMemberExplSpec;
72756
 
  friend class ::WinTypeKeywords;
72757
89534
  friend class ::PragmaOnceUnitState;
72758
89535
  friend class ::PragmaOnce;
72759
 
  friend class ::CCExprResolve;
72760
 
  friend class ::CExprResolve;
 
89536
  friend class ::CMatchSyntax;
72761
89537
 
72762
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89538
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72763
89539
 
72764
89540
 
72765
89541
  // flags to enable/disable certain Gnu features
72772
89548
 
72773
89549
  // pointcut definitions
72774
89550
  
72775
 
#line 63 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72776
 
 
72777
 
  
72778
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72779
 
 
72780
 
  
72781
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72782
 
 
72783
 
  
72784
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72785
 
 
72786
 
  
72787
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89551
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89552
 
 
89553
  
 
89554
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89555
 
 
89556
  
 
89557
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89558
 
 
89559
  
 
89560
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89561
 
 
89562
  
 
89563
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89564
 
 
89565
  
 
89566
#line 67 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72788
89567
 
72789
89568
 
72790
89569
  // ----------------------------------------------------
72793
89572
 
72794
89573
  // structural extensions
72795
89574
  
72796
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72797
 
 
72798
 
  
72799
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72800
 
 
72801
 
 
72802
 
  // extended asm statement
72803
 
  
72804
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72805
 
 
72806
 
public: template<class JoinPoint> void __a0_after 
72807
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72808
 
 
72809
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72810
 
(JoinPoint *tjp, CSyntax *syntax)
72811
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72812
 
 {
72813
 
#line 72814 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72814
 
 
72815
 
  typedef typename JoinPoint::That __JP_That;
72816
 
  typedef typename JoinPoint::Target __JP_Target;
72817
 
  typedef typename JoinPoint::Result __JP_Result;
72818
 
 
72819
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72820
 
 
72821
 
    CTree *&result = *(CTree**)tjp->result ();
72822
 
    if (extended_asm && !result &&
72823
 
        ((__JP_That
72824
 
#line 82 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72825
 
*)syntax)->look_ahead (TOK_ASM) &&
72826
 
        ((__JP_That
72827
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72828
 
*)syntax)->parse (&__JP_That
72829
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72830
 
::gnu_asm_def)) {
72831
 
      result = ((__JP_That
72832
 
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72833
 
*)syntax)->builder().simple_decl ();
72834
 
    }
72835
 
  }
72836
 
#line 72837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72837
 
 
72838
 
private:
72839
 
 
72840
 
#line 86 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72841
 
 
72842
 
 
72843
 
  // extended asm statement
72844
 
  
72845
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72846
 
 
72847
 
public: template<class JoinPoint> void __a1_around 
72848
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72849
 
 
72850
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72851
 
(JoinPoint *tjp, CSyntax *syn)
72852
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72853
 
 {
72854
 
#line 72855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72855
 
 
72856
 
  typedef typename JoinPoint::That __JP_That;
72857
 
  typedef typename JoinPoint::Target __JP_Target;
72858
 
  typedef typename JoinPoint::Result __JP_Result;
72859
 
 
72860
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89575
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89576
 
 
89577
  
 
89578
#line 75 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89579
 
 
89580
 
 
89581
  // extended asm statement
 
89582
  
 
89583
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89584
 
 
89585
public: template<class JoinPoint> void __a0_around 
 
89586
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89587
 
 
89588
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89589
(JoinPoint *tjp, Puma::CSyntax *syn)
 
89590
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89591
 {
 
89592
#line 89593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89593
 
 
89594
  typedef typename JoinPoint::That __JP_That;
 
89595
  typedef typename JoinPoint::Target __JP_Target;
 
89596
  typedef typename JoinPoint::Result __JP_Result;
 
89597
 
 
89598
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72861
89599
 
72862
89600
    if (extended_asm)
72863
89601
      *tjp->result () = ((__JP_That
72864
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89602
#line 81 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72865
89603
*)syn)->gnu_asm_def ();
72866
89604
    else
72867
89605
      tjp->proceed ();
72868
89606
  }
72869
 
#line 72870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
72870
 
 
72871
 
private:
72872
 
 
72873
 
#line 95 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72874
 
 
 
89607
#line 89608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89608
 
 
89609
private:
 
89610
 
 
89611
#line 84 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89612
 
 
89613
 
 
89614
  // extended asm init declarator syntax
 
89615
  
 
89616
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89617
 
 
89618
public: template<class JoinPoint> void __a1_after 
 
89619
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89620
 
 
89621
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89622
(JoinPoint *tjp, Puma::CSyntax *syn)
 
89623
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89624
 {
 
89625
#line 89626 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89626
 
 
89627
  typedef typename JoinPoint::That __JP_That;
 
89628
  typedef typename JoinPoint::Target __JP_Target;
 
89629
  typedef typename JoinPoint::Result __JP_Result;
 
89630
 
 
89631
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89632
 
 
89633
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
89634
    if (extended_asm && !result &&
 
89635
        ((__JP_That
 
89636
#line 92 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89637
*)syn)->look_ahead (Puma::TOK_ASM))
 
89638
      result = ((__JP_That
 
89639
#line 93 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89640
*)syn)->gnu_asm_spec ();
 
89641
  }
 
89642
#line 89643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
89643
 
 
89644
private:
 
89645
 
 
89646
#line 94 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89647
 
 
89648
 
 
89649
//   // asm declaration specifiers
 
89650
//   advice within (derived (syntax ())) &&
 
89651
//          execution ("% Puma::%::init_simple_type_spec()") : after () {
 
89652
//     if (extended_asm)
 
89653
//       tjp->that ()->_simple_type_spec_1.set (Puma::TOK_ASM);
 
89654
//   }
 
89655
//   advice execution ("% Puma::CSyntax::rule_simple_type_spec()") : after () {
 
89656
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
89657
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
89658
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
89659
//       result = tjp->that ()->builder ().gnu_asm_spec ();
 
89660
//   }
 
89661
//   advice execution ("% Puma::CCSyntax::rule_simple_type_spec()") : after () {
 
89662
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
89663
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
89664
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
89665
//       result = tjp->that ()->semantic ().simple_type_spec ();
 
89666
//   }
 
89667
//   // make the analysis function aware of 'asm(...)'
 
89668
//   advice execution("bool Puma::%::analyze(...)") && within (csemdeclspecs ()) &&
 
89669
//          args (spec): after (Puma::CTree *spec) {
 
89670
//     bool &result = *tjp->result ();
 
89671
//     if (!result && spec->NodeName () == Puma::CT_GnuAsmSpec::NodeId ())
 
89672
//       result = true;
 
89673
//   }
72875
89674
 
72876
89675
  // ----------------------------------------------------
72877
89676
  // the 'restrict' keyword
72879
89678
 
72880
89679
  // extended cv qualifier
72881
89680
  
72882
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89681
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72883
89682
 
72884
89683
public: template<class JoinPoint> void __a2_after 
72885
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89684
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72886
89685
 
72887
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89686
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72888
89687
(JoinPoint *tjp)
72889
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89688
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72890
89689
 {
72891
 
#line 72892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89690
#line 89691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72892
89691
 
72893
89692
  typedef typename JoinPoint::That __JP_That;
72894
89693
  typedef typename JoinPoint::Target __JP_Target;
72895
89694
  typedef typename JoinPoint::Result __JP_Result;
72896
89695
 
72897
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89696
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72898
89697
 
72899
89698
    if (extended_cv_qual)
72900
 
      tjp->that ()->_cv_qual_1.set (TOK_RESTRICT);
 
89699
      tjp->that ()->_cv_qual_1.set (Puma::TOK_RESTRICT);
72901
89700
  }
72902
 
#line 72903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89701
#line 89702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72903
89702
 
72904
89703
private:
72905
89704
 
72906
 
#line 105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89705
#line 130 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72907
89706
 
72908
89707
 
72909
89708
  // -------------------------
72912
89711
 
72913
89712
  // pointcut definitions
72914
89713
  
72915
 
#line 112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89714
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72916
89715
 
72917
89716
  
72918
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89717
#line 138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72919
89718
 
72920
89719
 
72921
89720
  // structural extensions
72922
89721
  
72923
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72924
 
 
72925
 
  
72926
 
#line 117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72927
 
 
72928
 
  
72929
 
#line 118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89722
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89723
 
 
89724
  
 
89725
#line 142 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89726
 
 
89727
  
 
89728
#line 143 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72930
89729
 
72931
89730
 
72932
89731
  // extended primary expression syntax
72933
89732
  
72934
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89733
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72935
89734
 
72936
89735
public: template<class JoinPoint> void __a3_around 
72937
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89736
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72938
89737
 
72939
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89738
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72940
89739
(JoinPoint *tjp)
72941
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89740
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72942
89741
 {
72943
 
#line 72944 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89742
#line 89743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72944
89743
 
72945
89744
  typedef typename JoinPoint::That __JP_That;
72946
89745
  typedef typename JoinPoint::Target __JP_Target;
72947
89746
  typedef typename JoinPoint::Result __JP_Result;
72948
89747
 
72949
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89748
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72950
89749
 
72951
89750
    __JP_That
72952
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89751
#line 148 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72953
89752
 *syntax = tjp->that ();
72954
89753
    if (statement_exprs &&
72955
89754
        ((__JP_That
72956
 
#line 125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72957
 
*)syntax)->look_ahead (TOK_OPEN_ROUND) &&
 
89755
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89756
*)syntax)->look_ahead (Puma::TOK_OPEN_ROUND) &&
72958
89757
        ((__JP_That
72959
 
#line 126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72960
 
*)syntax)->look_ahead (TOK_OPEN_CURLY, 2)) {
72961
 
      CTree *&result = *(CTree**)tjp->result ();
 
89758
#line 151 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89759
*)syntax)->look_ahead (Puma::TOK_OPEN_CURLY, 2)) {
 
89760
      Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
72962
89761
      ((__JP_That
72963
 
#line 128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72964
 
*)syntax)->consume (); // skip the TOK_OPEN_ROUND
 
89762
#line 153 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89763
*)syntax)->consume (); // skip the Puma::TOK_OPEN_ROUND
72965
89764
      result =
72966
89765
        (((__JP_That
72967
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89766
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72968
89767
*)syntax)->parse (&__JP_That
72969
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89768
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72970
89769
::cmpd_stmt) &&
72971
89770
        ((__JP_That
72972
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72973
 
*)syntax)->parse (TOK_CLOSE_ROUND)) ?
 
89771
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89772
*)syntax)->parse (Puma::TOK_CLOSE_ROUND)) ?
72974
89773
        ((__JP_That
72975
 
#line 132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89774
#line 157 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72976
89775
*)syntax)->builder().gnu_statement_expr () : 0;
72977
89776
    }
72978
89777
    else
72979
89778
      tjp->proceed ();
72980
89779
  }
72981
 
#line 72982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89780
#line 89781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
72982
89781
 
72983
89782
private:
72984
89783
 
72985
 
#line 136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89784
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
72986
89785
 
72987
89786
 
72988
89787
  // ----------------------
72991
89790
 
72992
89791
  // structural extensions
72993
89792
  
72994
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72995
 
 
72996
 
  
72997
 
#line 144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
72998
 
 
72999
 
  
73000
 
#line 145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73001
 
 
73002
 
  
73003
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89793
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89794
 
 
89795
  
 
89796
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89797
 
 
89798
  
 
89799
#line 170 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89800
 
 
89801
  
 
89802
#line 171 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73004
89803
 
73005
89804
 
73006
89805
  // introduce new state into CSemDeclSpecs
73007
89806
  
73008
 
#line 149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73009
 
 
73010
 
  
73011
 
#line 154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89807
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73012
89808
 
73013
89809
 
73014
89810
  // syntax extension
73015
89811
  
73016
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89812
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73017
89813
 
73018
89814
public: template<class JoinPoint> void __a4_after 
73019
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89815
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73020
89816
 
73021
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89817
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73022
89818
(JoinPoint *tjp)
73023
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89819
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73024
89820
 {
73025
 
#line 73026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89821
#line 89822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73026
89822
 
73027
89823
  typedef typename JoinPoint::That __JP_That;
73028
89824
  typedef typename JoinPoint::Target __JP_Target;
73029
89825
  typedef typename JoinPoint::Result __JP_Result;
73030
89826
 
73031
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89827
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73032
89828
 
73033
89829
    if (typeof_keyword)
73034
 
      tjp->that ()->_simple_type_spec_1.set (TOK_TYPEOF);
 
89830
      tjp->that ()->_simple_type_spec_1.set (Puma::TOK_TYPEOF);
73035
89831
  }
73036
 
#line 73037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89832
#line 89833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73037
89833
 
73038
89834
private:
73039
89835
 
73040
 
#line 161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89836
#line 181 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73041
89837
 
73042
89838
  
73043
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89839
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73044
89840
 
73045
89841
public: template<class JoinPoint> void __a5_after 
73046
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89842
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73047
89843
 
73048
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89844
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73049
89845
(JoinPoint *tjp)
73050
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89846
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73051
89847
 {
73052
 
#line 73053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89848
#line 89849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73053
89849
 
73054
89850
  typedef typename JoinPoint::That __JP_That;
73055
89851
  typedef typename JoinPoint::Target __JP_Target;
73056
89852
  typedef typename JoinPoint::Result __JP_Result;
73057
89853
 
73058
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89854
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73059
89855
 
73060
 
    CTree *&result = *(CTree**)tjp->result ();
73061
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
89856
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
89857
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
73062
89858
        tjp->that ()->parse (&__JP_That
73063
 
#line 165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89859
#line 185 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73064
89860
::gnu_typeof))
73065
89861
      result = tjp->that ()->builder ().simple_type_spec ();
73066
89862
  }
73067
 
#line 73068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89863
#line 89864 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73068
89864
 
73069
89865
private:
73070
89866
 
73071
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89867
#line 187 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73072
89868
 
73073
89869
  
73074
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89870
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73075
89871
 
73076
89872
public: template<class JoinPoint> void __a6_after 
73077
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89873
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73078
89874
 
73079
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89875
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73080
89876
(JoinPoint *tjp)
73081
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89877
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73082
89878
 {
73083
 
#line 73084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89879
#line 89880 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73084
89880
 
73085
89881
  typedef typename JoinPoint::That __JP_That;
73086
89882
  typedef typename JoinPoint::Target __JP_Target;
73087
89883
  typedef typename JoinPoint::Result __JP_Result;
73088
89884
 
73089
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89885
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73090
89886
 
73091
 
    CTree *&result = *(CTree**)tjp->result ();
73092
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
89887
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
89888
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
73093
89889
        tjp->that ()->parse (&__JP_That
73094
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89890
#line 191 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73095
89891
::gnu_typeof))
73096
89892
      result = tjp->that ()->semantic ().simple_type_spec ();
73097
89893
  }
73098
 
#line 73099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89894
#line 89895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73099
89895
 
73100
89896
private:
73101
89897
 
73102
 
#line 173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89898
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73103
89899
 
73104
89900
 
73105
89901
  // initialize the new state before an analysis starts
73106
89902
  
73107
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89903
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73108
89904
 
73109
89905
public: void __a7_before 
73110
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89906
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73111
89907
 
73112
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73113
 
(CSemDeclSpecs &csd)
73114
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89908
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89909
(Puma::CSemDeclSpecs &csd)
 
89910
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73115
89911
 {
73116
89912
    csd._typeofs = 0;
73117
89913
    csd._typeof_node = 0;
73118
89914
  }
73119
 
#line 73120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89915
#line 89916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73120
89916
 
73121
89917
private:
73122
89918
 
73123
 
#line 180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89919
#line 200 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73124
89920
 
73125
89921
 
73126
89922
  // make the analysis function aware of 'typeof'
73127
89923
  
73128
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89924
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73129
89925
 
73130
89926
public: template<class JoinPoint> void __a8_after 
73131
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89927
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73132
89928
 
73133
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73134
 
(JoinPoint *tjp, CSemDeclSpecs &csd, CTree *spec)
73135
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89929
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89930
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, Puma::CTree *spec)
 
89931
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73136
89932
 {
73137
 
#line 73138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89933
#line 89934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73138
89934
 
73139
89935
  typedef typename JoinPoint::That __JP_That;
73140
89936
  typedef typename JoinPoint::Target __JP_Target;
73141
89937
  typedef typename JoinPoint::Result __JP_Result;
73142
89938
 
73143
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89939
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73144
89940
 
73145
89941
    bool &result = *tjp->result ();
73146
 
    if (!result && spec->NodeName () == CT_GnuTypeof::NodeId ()) {
 
89942
    if (!result && spec->NodeName () == Puma::CT_GnuTypeof::NodeId ()) {
73147
89943
      csd._typeofs++;      
73148
 
      csd._typeof_node = (CT_GnuTypeof*)spec;
 
89944
      csd._typeof_node = (Puma::CT_GnuTypeof*)spec;
73149
89945
      result = true;
73150
89946
    }
73151
89947
  }
73152
 
#line 73153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89948
#line 89949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73153
89949
 
73154
89950
private:
73155
89951
 
73156
 
#line 191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89952
#line 211 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73157
89953
 
73158
89954
  
73159
89955
  // make the check functions aware of 'typeof'
73160
89956
  
73161
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89957
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73162
89958
 
73163
89959
public: template<class JoinPoint> void __a9_after 
73164
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89960
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73165
89961
 
73166
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73167
 
(JoinPoint *tjp, CSemDeclSpecs &csd, bool &have_type)
73168
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89962
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89963
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, bool &have_type)
 
89964
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73169
89965
 {
73170
 
#line 73171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89966
#line 89967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73171
89967
 
73172
89968
  typedef typename JoinPoint::That __JP_That;
73173
89969
  typedef typename JoinPoint::Target __JP_Target;
73174
89970
  typedef typename JoinPoint::Result __JP_Result;
73175
89971
 
73176
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89972
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73177
89973
 
73178
89974
    bool &result = *tjp->result ();
73179
89975
    if (result && !have_type && csd._typeofs) {
73181
89977
      result    = true;
73182
89978
    }
73183
89979
  }
73184
 
#line 73185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89980
#line 89981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73185
89981
 
73186
89982
private:
73187
89983
 
73188
 
#line 202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89984
#line 222 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73189
89985
 
73190
89986
  
73191
89987
  
73192
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89988
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73193
89989
 
73194
89990
public: template<class JoinPoint> void __a10_after 
73195
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89991
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73196
89992
 
73197
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73198
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
73199
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89993
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
89994
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
89995
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73200
89996
 {
73201
 
#line 73202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
89997
#line 89998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73202
89998
 
73203
89999
  typedef typename JoinPoint::That __JP_That;
73204
90000
  typedef typename JoinPoint::Target __JP_Target;
73205
90001
  typedef typename JoinPoint::Result __JP_Result;
73206
90002
 
73207
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90003
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73208
90004
 
73209
90005
    bool &result = *tjp->result ();
73210
90006
    if (result) {
73211
 
      if ((csd._prim_map[CT_PrimDeclSpec::PDS_SIGNED] || 
73212
 
           csd._prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) &&
 
90007
      if ((csd._prim_map[Puma::CT_PrimDeclSpec::PDS_SIGNED] || 
 
90008
           csd._prim_map[Puma::CT_PrimDeclSpec::PDS_UNSIGNED]) &&
73213
90009
          csd._typeofs) {
73214
 
        *csd._err << sev_error << csd._dss->token ()->location () 
 
90010
        *csd._err << Puma::sev_error << csd._dss->token ()->location () 
73215
90011
                  << "`signed' or `unsigned' invalid for 'typeof'"
73216
 
                  << endMessage;
 
90012
                  << Puma::endMessage;
73217
90013
        result = false;
73218
90014
      }
73219
90015
    }
73220
90016
  }
73221
 
#line 73222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90017
#line 90018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73222
90018
 
73223
90019
private:
73224
90020
 
73225
 
#line 217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90021
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73226
90022
 
73227
90023
 
73228
90024
  
73229
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90025
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73230
90026
 
73231
90027
public: template<class JoinPoint> void __a11_after 
73232
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90028
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73233
90029
 
73234
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73235
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
73236
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90030
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90031
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
90032
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73237
90033
 {
73238
 
#line 73239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90034
#line 90035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73239
90035
 
73240
90036
  typedef typename JoinPoint::That __JP_That;
73241
90037
  typedef typename JoinPoint::Target __JP_Target;
73242
90038
  typedef typename JoinPoint::Result __JP_Result;
73243
90039
 
73244
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90040
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73245
90041
 
73246
90042
    bool &result = *tjp->result ();
73247
90043
    if (result && csd._typeofs > 0) {
73248
 
      *csd._err << sev_error << csd._dss->token ()->location () 
 
90044
      *csd._err << Puma::sev_error << csd._dss->token ()->location () 
73249
90045
                << "invalid type specified in declaration"
73250
 
                << endMessage;
 
90046
                << Puma::endMessage;
73251
90047
      result = false;
73252
90048
    }
73253
90049
  }
73254
 
#line 73255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90050
#line 90051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73255
90051
 
73256
90052
private:
73257
90053
 
73258
 
#line 228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90054
#line 248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73259
90055
 
73260
90056
 
73261
90057
  // make the type creation function aware of 'typeof'
73262
90058
  
73263
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90059
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73264
90060
 
73265
90061
public: template<class JoinPoint> void __a12_after 
73266
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90062
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73267
90063
 
73268
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73269
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
73270
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90064
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90065
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
90066
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73271
90067
 {
73272
 
#line 73273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90068
#line 90069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73273
90069
 
73274
90070
  typedef typename JoinPoint::That __JP_That;
73275
90071
  typedef typename JoinPoint::Target __JP_Target;
73276
90072
  typedef typename JoinPoint::Result __JP_Result;
73277
90073
 
73278
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90074
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73279
90075
 
73280
 
    CTypeInfo *&result = *tjp->result ();
 
90076
    Puma::CTypeInfo *&result = *tjp->result ();
73281
90077
    if (result->isUndefined () && csd._typeofs) {
73282
90078
      csd._typeofs--;
73283
90079
      if (csd._typeof_node->Type ()) {
73284
 
        result = CTypeInfo::Duplicate (csd._typeof_node->Type ());
 
90080
        result = Puma::CTypeInfo::Duplicate (csd._typeof_node->Type ());
73285
90081
      }
73286
90082
    }
73287
90083
  }
73288
 
#line 73289 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90084
#line 90085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73289
90085
 
73290
90086
private:
73291
90087
 
73292
 
#line 240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90088
#line 260 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73293
90089
 
73294
90090
  
73295
90091
  // ----------------------
73298
90094
 
73299
90095
  // structural extensions
73300
90096
  
73301
 
#line 247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90097
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73302
90098
 
73303
90099
 
73304
90100
  
73305
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90101
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73306
90102
 
73307
90103
public: template<class JoinPoint> void __a13_after 
73308
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90104
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73309
90105
 
73310
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90106
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73311
90107
(JoinPoint *tjp)
73312
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90108
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73313
90109
 {
73314
 
#line 73315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90110
#line 90111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73315
90111
 
73316
90112
  typedef typename JoinPoint::That __JP_That;
73317
90113
  typedef typename JoinPoint::Target __JP_Target;
73318
90114
  typedef typename JoinPoint::Result __JP_Result;
73319
90115
 
73320
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90116
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73321
90117
 
73322
90118
    if (gnu_builtins)
73323
90119
      tjp->that ()->define_gnu_builtins ();
73324
90120
  }
73325
 
#line 73326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90121
#line 90122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73326
90122
 
73327
90123
private:
73328
90124
 
73329
 
#line 253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90125
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73330
90126
 
73331
90127
 
73332
90128
  // ----------------------------------------------------
73334
90130
  // ----------------------------------------------------
73335
90131
 
73336
90132
  
73337
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90133
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73338
90134
 
73339
90135
public: template<class JoinPoint> void __a14_before 
73340
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90136
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73341
90137
 
73342
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90138
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73343
90139
(JoinPoint *tjp)
73344
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90140
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73345
90141
 {
73346
 
#line 73347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90142
#line 90143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73347
90143
 
73348
90144
  typedef typename JoinPoint::That __JP_That;
73349
90145
  typedef typename JoinPoint::Target __JP_Target;
73350
90146
  typedef typename JoinPoint::Result __JP_Result;
73351
90147
 
73352
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90148
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73353
90149
 
73354
90150
    if (std_hack) {
73355
 
      CStructure *&scope = *(CStructure**)tjp->arg (0);
 
90151
      Puma::CStructure *&scope = *(Puma::CStructure**)tjp->arg (0);
73356
90152
      bool &nested = *(bool*)tjp->arg (1);
73357
90153
      if (scope->Parent ()->GlobalScope () &&
73358
90154
          strcmp (scope->Name (), "std") == 0)
73359
90155
        nested = true;
73360
90156
    }
73361
90157
  }
73362
 
#line 73363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90158
#line 90159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73363
90159
 
73364
90160
private:
73365
90161
 
73366
 
#line 268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90162
#line 288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73367
90163
 
73368
90164
  
73369
90165
  // get the configuration and check whether the GNU mode is enabled
73370
90166
  
73371
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90167
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73372
90168
 
73373
90169
public: void __a15_before 
73374
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90170
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73375
90171
 
73376
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73377
 
(Config &config)
73378
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90172
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90173
(Puma::Config &config)
 
90174
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73379
90175
 {
73380
90176
    if (config.Option ("--gnu") || config.Option ("--gnu-2.95")) {
73381
90177
      extended_asm     = true;
73389
90185
    if (config.Option ("--gnu-2.95") || config.Option ("--gnu-std-hack"))
73390
90186
      std_hack = true;
73391
90187
  }
73392
 
#line 73393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
73393
 
 
73394
 
private:
73395
 
 
73396
 
#line 284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90188
#line 90189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90189
 
 
90190
private:
 
90191
 
 
90192
#line 304 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90193
 
 
90194
 
 
90195
  // --------------------------------------------------
 
90196
  // support for unnamed struct/union members
 
90197
  // --------------------------------------------------
 
90198
  
 
90199
  
 
90200
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90201
 
 
90202
public: template<class JoinPoint> void __a16_around 
 
90203
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90204
 
 
90205
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90206
(JoinPoint *tjp)
 
90207
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90208
 {
 
90209
#line 90210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90210
 
 
90211
  typedef typename JoinPoint::That __JP_That;
 
90212
  typedef typename JoinPoint::Target __JP_Target;
 
90213
  typedef typename JoinPoint::Result __JP_Result;
 
90214
 
 
90215
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90216
 
 
90217
    // 2: type_spec_seq                          ;
 
90218
    // 3: type_spec_seq  member_declarator_list  ;
 
90219
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
90220
    if (! (tjp->that ()->parse (&__JP_That
 
90221
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90222
::type_spec_seq) && 
 
90223
           tjp->that ()->opt(tjp->that ()->parse (&__JP_That
 
90224
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90225
::member_declarator_list)) && 
 
90226
           tjp->that ()->parse (Puma::TOK_SEMI_COLON))) {
 
90227
      result = (Puma::CTree*)0;
 
90228
    } else {
 
90229
      tjp->that ()->semantic ().finish_decl ();
 
90230
      result = tjp->that ()->builder ().member_decl (); 
 
90231
    }
 
90232
  }
 
90233
#line 90234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90234
 
 
90235
private:
 
90236
 
 
90237
#line 322 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73397
90238
 
73398
90239
 
73399
90240
protected:
73402
90243
    statement_exprs (false)
73403
90244
  {}
73404
90245
};
73405
 
#line 73406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
 
90246
#line 90247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
73406
90247
 
73407
90248
namespace AC {
73408
 
  template <class JoinPoint, class Binding>
73409
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp) {
73410
 
    typedef typename Binding::template Arg<0> Arg0;
73411
 
    ::ExtGnu::aspectof()->__a0_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
73412
 
  }
73413
 
  template <class JoinPoint, class Binding>
73414
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp) {
73415
 
    typedef typename Binding::template Arg<0> Arg0;
73416
 
    ::ExtGnu::aspectof()->__a1_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
73417
 
  }
73418
 
  template <class JoinPoint>
73419
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
 
90249
  template <class JoinPoint>
 
90250
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp) {
 
90251
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a0_around::template Arg<0> Arg0;
 
90252
    ::ExtGnu::aspectof()->__a0_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
90253
  }
 
90254
  template <class JoinPoint>
 
90255
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp) {
 
90256
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a1_after::template Arg<0> Arg0;
 
90257
    ::ExtGnu::aspectof()->__a1_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
90258
  }
 
90259
  template <class JoinPoint>
 
90260
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
73420
90261
    ::ExtGnu::aspectof()->__a2_after (tjp);
73421
90262
  }
73422
90263
  template <class JoinPoint>
73423
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
 
90264
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
73424
90265
    ::ExtGnu::aspectof()->__a3_around (tjp);
73425
90266
  }
73426
90267
  template <class JoinPoint>
73427
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
 
90268
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
73428
90269
    ::ExtGnu::aspectof()->__a4_after (tjp);
73429
90270
  }
73430
90271
  template <class JoinPoint>
73431
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
 
90272
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
73432
90273
    ::ExtGnu::aspectof()->__a5_after (tjp);
73433
90274
  }
73434
90275
  template <class JoinPoint>
73435
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
 
90276
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
73436
90277
    ::ExtGnu::aspectof()->__a6_after (tjp);
73437
90278
  }
73438
 
  template <class JoinPoint, class Binding>
73439
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
73440
 
    typedef typename Binding::template Arg<0> Arg0;
 
90279
  template <class JoinPoint>
 
90280
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
 
90281
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a7_before::template Arg<0> Arg0;
73441
90282
    ::ExtGnu::aspectof()->__a7_before ((Puma::CSemDeclSpecs &)Arg0::val (tjp));
73442
90283
  }
73443
 
  template <class JoinPoint, class Binding>
73444
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
73445
 
    typedef typename Binding::template Arg<0> Arg0;
73446
 
    typedef typename Binding::template Arg<1> Arg1;
 
90284
  template <class JoinPoint>
 
90285
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
 
90286
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<0> Arg0;
 
90287
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<1> Arg1;
73447
90288
    ::ExtGnu::aspectof()->__a8_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (Puma::CTree *)Arg1::val (tjp));
73448
90289
  }
73449
 
  template <class JoinPoint, class Binding>
73450
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
73451
 
    typedef typename Binding::template Arg<0> Arg0;
73452
 
    typedef typename Binding::template Arg<1> Arg1;
 
90290
  template <class JoinPoint>
 
90291
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
 
90292
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<0> Arg0;
 
90293
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<1> Arg1;
73453
90294
    ::ExtGnu::aspectof()->__a9_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (bool &)Arg1::val (tjp));
73454
90295
  }
73455
 
  template <class JoinPoint, class Binding>
73456
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
73457
 
    typedef typename Binding::template Arg<0> Arg0;
 
90296
  template <class JoinPoint>
 
90297
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
 
90298
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a10_after::template Arg<0> Arg0;
73458
90299
    ::ExtGnu::aspectof()->__a10_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
73459
90300
  }
73460
 
  template <class JoinPoint, class Binding>
73461
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
73462
 
    typedef typename Binding::template Arg<0> Arg0;
 
90301
  template <class JoinPoint>
 
90302
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
 
90303
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a11_after::template Arg<0> Arg0;
73463
90304
    ::ExtGnu::aspectof()->__a11_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
73464
90305
  }
73465
 
  template <class JoinPoint, class Binding>
73466
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
73467
 
    typedef typename Binding::template Arg<0> Arg0;
 
90306
  template <class JoinPoint>
 
90307
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
 
90308
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a12_after::template Arg<0> Arg0;
73468
90309
    ::ExtGnu::aspectof()->__a12_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
73469
90310
  }
73470
90311
  template <class JoinPoint>
73471
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
 
90312
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
73472
90313
    ::ExtGnu::aspectof()->__a13_after (tjp);
73473
90314
  }
73474
90315
  template <class JoinPoint>
73475
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
 
90316
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
73476
90317
    ::ExtGnu::aspectof()->__a14_before (tjp);
73477
90318
  }
73478
 
  template <class JoinPoint, class Binding>
73479
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
73480
 
    typedef typename Binding::template Arg<0> Arg0;
 
90319
  template <class JoinPoint>
 
90320
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
 
90321
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a15_before::template Arg<0> Arg0;
73481
90322
    ::ExtGnu::aspectof()->__a15_before ((Puma::Config &)Arg0::val (tjp));
73482
90323
  }
 
90324
  template <class JoinPoint>
 
90325
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp) {
 
90326
    ::ExtGnu::aspectof()->__a16_around (tjp);
 
90327
  }
73483
90328
73484
90329
 
73485
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90330
#line 329 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73486
90331
 
73487
90332
 
73488
90333
 
73492
90337
 
73493
90338
// add rules to the C Syntax
73494
90339
 
73495
 
#line 305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73496
 
 
73497
 
 
73498
 
 
73499
 
#line 315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73500
 
 
73501
 
 
73502
 
 
73503
 
#line 321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73504
 
 
73505
 
 
73506
 
 
73507
 
#line 327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73508
 
 
73509
 
 
73510
 
 
73511
 
#line 332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90340
#line 344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90341
 
 
90342
 
 
90343
 
 
90344
#line 352 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90345
 
 
90346
 
 
90347
 
 
90348
#line 362 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90349
 
 
90350
 
 
90351
 
 
90352
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90353
 
 
90354
 
 
90355
 
 
90356
#line 374 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90357
 
 
90358
 
 
90359
 
 
90360
#line 379 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73512
90361
 
73513
90362
 
73514
90363
// extend the C Builder
73515
90364
 
73516
 
#line 341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73517
 
 
73518
 
 
73519
 
 
73520
 
#line 355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73521
 
 
73522
 
 
73523
 
 
73524
 
#line 359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73525
 
 
73526
 
 
73527
 
 
73528
 
#line 364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90365
#line 389 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90366
 
 
90367
 
 
90368
 
 
90369
#line 394 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90370
 
 
90371
 
 
90372
 
 
90373
#line 408 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90374
 
 
90375
 
 
90376
 
 
90377
#line 412 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90378
 
 
90379
 
 
90380
 
 
90381
#line 417 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73529
90382
 
73530
90383
        
73531
90384
 
73532
 
#line 368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90385
#line 421 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73533
90386
 
73534
90387
 
73535
90388
// -------------------------
73538
90391
 
73539
90392
// C Builder extension
73540
90393
 
73541
 
#line 378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73542
 
 
73543
 
 
73544
 
 
73545
 
#line 382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90394
#line 431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90395
 
 
90396
 
 
90397
 
 
90398
#line 435 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73546
90399
 
73547
90400
 
73548
90401
// C semantic extension
73549
90402
 
73550
 
#line 388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90403
#line 441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73551
90404
 
73552
90405
 
73553
90406
// the necessary #include "..CSemVisitor.h" in CSemExpr.cc will is inserted
73554
90407
// manually (for now)!
73555
90408
 
73556
 
#line 422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90409
#line 475 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73557
90410
 
73558
90411
 
73559
90412
// C++ semantic extension
73560
90413
 
73561
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90414
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73562
90415
 
73563
90416
 
73564
90417
// the necessary #include "..CCSemVisitor.h" in CCSemExpr.cc will is inserted
73565
90418
// manually (for now)!
73566
90419
 
73567
 
#line 462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90420
#line 515 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73568
90421
 
73569
90422
 
73570
90423
// ----------------------
73573
90426
 
73574
90427
// add rules to the C Syntax for the Gnu Typeof syntax
73575
90428
 
73576
 
#line 472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73577
 
 
73578
 
 
73579
 
 
73580
 
#line 478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90429
#line 525 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90430
 
 
90431
 
 
90432
 
 
90433
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73581
90434
 
73582
90435
 
73583
90436
// add rules to the C Builder for the Gnu Typeof syntax
73584
90437
 
73585
 
#line 484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90438
#line 537 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73586
90439
 
73587
90440
 
73588
90441
// builder extension
73589
90442
 
73590
 
#line 497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90443
#line 550 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73591
90444
 
73592
90445
 
73593
90446
// C semantic extension
73594
90447
 
73595
 
#line 503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73596
 
 
73597
 
 
73598
 
 
73599
 
#line 521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90448
#line 556 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90449
 
 
90450
 
 
90451
 
 
90452
#line 574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73600
90453
 
73601
90454
 
73602
90455
// C++ semantic extension
73603
90456
 
73604
 
#line 527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73605
 
 
73606
 
 
73607
 
 
73608
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90457
#line 580 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90458
 
 
90459
 
 
90460
 
 
90461
#line 597 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73609
90462
 
73610
90463
 
73611
90464
 
73615
90468
 
73616
90469
// extend the C/C++ semantic
73617
90470
 
73618
 
#line 555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
73619
 
 
73620
 
 
73621
 
 
73622
 
#line 894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90471
#line 608 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
90472
 
 
90473
 
 
90474
 
 
90475
#line 947 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
73623
90476
 
73624
90477
 
73625
90478
 
73626
90479
#endif /* __ext_gnu_h__ */
73627
90480
 
73628
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
73629
 
#endif
73630
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__)
73631
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
73632
 
 
73633
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
73634
 
#endif
73635
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__)
73636
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
90481
#line 115 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
 
90482
#endif
 
90483
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
90484
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
90485
 
 
90486
#line 119 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
 
90487
#endif
 
90488
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
90489
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
90490
 
 
90491
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90492
// This file is part of PUMA.
 
90493
// Copyright (C) 1999-2003  The PUMA developer team.
 
90494
//                                                                
 
90495
// This program is free software;  you can redistribute it and/or 
 
90496
// modify it under the terms of the GNU General Public License as 
 
90497
// published by the Free Software Foundation; either version 2 of 
 
90498
// the License, or (at your option) any later version.            
 
90499
//                                                                
 
90500
// This program is distributed in the hope that it will be useful,
 
90501
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
90502
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
90503
// GNU General Public License for more details.                   
 
90504
//                                                                
 
90505
// You should have received a copy of the GNU General Public      
 
90506
// License along with this program; if not, write to the Free     
 
90507
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
90508
// MA  02111-1307  USA                                            
 
90509
 
 
90510
#ifndef __CMatchSyntax_ah__
 
90511
#define __CMatchSyntax_ah__
 
90512
 
 
90513
 
 
90514
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CWildcardTokens.h"
 
90515
// This file is part of PUMA.
 
90516
// Copyright (C) 1999-2003  The PUMA developer team.
 
90517
//                                                                
 
90518
// This program is free software;  you can redistribute it and/or 
 
90519
// modify it under the terms of the GNU General Public License as 
 
90520
// published by the Free Software Foundation; either version 2 of 
 
90521
// the License, or (at your option) any later version.            
 
90522
//                                                                
 
90523
// This program is distributed in the hope that it will be useful,
 
90524
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
90525
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
90526
// GNU General Public License for more details.                   
 
90527
//                                                                
 
90528
// You should have received a copy of the GNU General Public      
 
90529
// License along with this program; if not, write to the Free     
 
90530
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
90531
// MA  02111-1307  USA                                            
 
90532
 
 
90533
#ifndef __C_WILDCARD_TOKENS__
 
90534
#define __C_WILDCARD_TOKENS__
 
90535
 
 
90536
namespace Puma {
 
90537
 
 
90538
 
 
90539
enum CWildcardTokens {
 
90540
  TOK_WC_AND = 500,
 
90541
  TOK_WC_OR,
 
90542
  TOK_WC_XOR,
 
90543
  TOK_WC_SEQ,
 
90544
  TOK_WC_IF,
 
90545
  TOK_WC_ELIF,
 
90546
  TOK_WC_ENDIF,
 
90547
  TOK_WC_NOT,
 
90548
  TOK_WC_EXACT,
 
90549
  TOK_WC_FIRST,
 
90550
  TOK_WC_LAST,
 
90551
  TOK_WC_LEAF,
 
90552
  TOK_WC_PRUNE,
 
90553
  TOK_WC_COLLECT,
 
90554
  TOK_WC_NODENAME,
 
90555
  TOK_WC_ELEMENT,
 
90556
 
 
90557
  TOK_DO_EXPR,
 
90558
  TOK_DO_EXPR_LIST,
 
90559
  TOK_DO_ID_EXPR,
 
90560
  TOK_DO_IDENTIFIER,
 
90561
  TOK_DO_DECL_SPEC,
 
90562
  TOK_DO_DECL_SPEC_SEQ,
 
90563
  TOK_DO_INIT_DECLARATOR_LIST,
 
90564
  TOK_DO_INIT_DECLARATOR,
 
90565
  TOK_DO_DECLARATOR,
 
90566
  TOK_DO_INIT,
 
90567
  TOK_DO_ARG_DECL_SEQ,
 
90568
  TOK_DO_FCT_BODY,
 
90569
  TOK_DO_CLASS_SPEC,
 
90570
  TOK_DO_MEMBER_SPEC,
 
90571
  TOK_DO_MEMBER_DECL,
 
90572
  TOK_DO_BASE_CLAUSE,
 
90573
  TOK_DO_CTOR_INIT,
 
90574
  TOK_DO_MEM_INIT,
 
90575
  TOK_DO_STMT,
 
90576
  TOK_DO_STMT_SEQ,
 
90577
 
 
90578
  TOK_ANY_EXPR,
 
90579
  TOK_ANY_EXPR_LIST,
 
90580
  TOK_ANY_ID_EXPR,
 
90581
  TOK_ANY_IDENTIFIER,
 
90582
  TOK_ANY_DECL_SPEC,
 
90583
  TOK_ANY_DECL_SPEC_SEQ,
 
90584
  TOK_ANY_INIT_DECLARATOR_LIST,
 
90585
  TOK_ANY_INIT_DECLARATOR,
 
90586
  TOK_ANY_DECLARATOR,
 
90587
  TOK_ANY_INIT,
 
90588
  TOK_ANY_ARG_DECL_SEQ,
 
90589
  TOK_ANY_FCT_BODY,
 
90590
  TOK_ANY_CLASS_SPEC,
 
90591
  TOK_ANY_MEMBER_SPEC,
 
90592
  TOK_ANY_MEMBER_DECL,
 
90593
  TOK_ANY_BASE_CLAUSE,
 
90594
  TOK_ANY_CTOR_INIT,
 
90595
  TOK_ANY_MEM_INIT,
 
90596
  TOK_ANY_STMT,
 
90597
  TOK_ANY_STMT_SEQ,
 
90598
  
 
90599
  TOK_IS_CLASS,
 
90600
  TOK_IS_ENUM,
 
90601
  TOK_IS_TYPEDEF
 
90602
};
 
90603
 
 
90604
 
 
90605
} // namespace Puma
 
90606
 
 
90607
#endif /* __WILDCARD_TOKENS__ */
 
90608
 
 
90609
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90610
namespace Puma {
 
90611
  class CSyntax;
 
90612
  class CCSyntax;
 
90613
  class CBuilder;
 
90614
  class CSemantic;
 
90615
  class Container;
 
90616
  class CTree;
 
90617
  class CStrLiteral;
 
90618
  class CT_Any;
 
90619
  class CT_AnyList;
 
90620
  class CT_AnyExtension;
 
90621
  class CT_AnyCondition;
 
90622
  class CT_SimpleName;
 
90623
} // namespace Puma
 
90624
 
 
90625
 
 
90626
namespace Puma {
 
90627
  
 
90628
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90629
 
 
90630
  
 
90631
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90632
 
 
90633
  
 
90634
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90635
 
 
90636
}
 
90637
 
 
90638
 
 
90639
#line 90640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90640
class CCExprResolve;
 
90641
class CExprResolve;
 
90642
class WinIfExists;
 
90643
class WinImportHandler;
 
90644
class WinMacros;
 
90645
class WinAsm;
 
90646
class WinDeclSpecs;
 
90647
class WinMemberExplSpec;
 
90648
class WinTypeKeywords;
 
90649
class WinFriend;
 
90650
class ExtAC;
 
90651
class ExtACBuilderCoupling;
 
90652
class ExtACSyntaxCoupling;
 
90653
class ExtACTree;
 
90654
class ExtACKeywords;
 
90655
class ExtGnu;
 
90656
class PragmaOnceUnitState;
 
90657
class PragmaOnce;
 
90658
 
 
90659
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90660
class CMatchSyntax {
 
90661
#line 90662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90662
 
 
90663
public:
 
90664
  static CMatchSyntax *aspectof () {
 
90665
    static CMatchSyntax __instance;
 
90666
    return &__instance;
 
90667
  }
 
90668
  static CMatchSyntax *aspectOf () {
 
90669
    return aspectof ();
 
90670
  }
 
90671
private:
 
90672
 
 
90673
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90674
 
 
90675
#line 90676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90676
  friend class ::CCExprResolve;
 
90677
  friend class ::CExprResolve;
 
90678
  friend class ::WinIfExists;
 
90679
  friend class ::WinImportHandler;
 
90680
  friend class ::WinMacros;
 
90681
  friend class ::WinAsm;
 
90682
  friend class ::WinDeclSpecs;
 
90683
  friend class ::WinMemberExplSpec;
 
90684
  friend class ::WinTypeKeywords;
 
90685
  friend class ::WinFriend;
 
90686
  friend class ::ExtAC;
 
90687
  friend class ::ExtACBuilderCoupling;
 
90688
  friend class ::ExtACSyntaxCoupling;
 
90689
  friend class ::ExtACTree;
 
90690
  friend class ::ExtACKeywords;
 
90691
  friend class ::ExtGnu;
 
90692
  friend class ::PragmaOnceUnitState;
 
90693
  friend class ::PragmaOnce;
 
90694
 
 
90695
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90696
 
 
90697
  
 
90698
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90699
 
 
90700
  
 
90701
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90702
  
 
90703
  
 
90704
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90705
 
 
90706
  
 
90707
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90708
 
 
90709
 
 
90710
protected:
 
90711
  // flag to enable/disable parsing match expressions
 
90712
  bool match_expr;
 
90713
 
 
90714
protected:
 
90715
  CMatchSyntax () : match_expr (false) {}
 
90716
  
 
90717
  // introduce wildcard rules to CSyntax and CCSyntax
 
90718
  
 
90719
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90720
 
 
90721
  
 
90722
#line 67 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90723
 
 
90724
 
 
90725
  // extend CBuilder
 
90726
  
 
90727
#line 70 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90728
 
 
90729
 
 
90730
  // extend CSemantic
 
90731
  
 
90732
#line 85 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90733
 
 
90734
 
 
90735
  // let first parse wildcards before parsing anything else
 
90736
  
 
90737
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90738
 
 
90739
public: template<class JoinPoint> void __a0_around 
 
90740
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90741
 
 
90742
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90743
(JoinPoint *tjp)
 
90744
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90745
 {
 
90746
#line 90747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90747
 
 
90748
  JoinPoint *&thisJoinPoint = tjp;
 
90749
 
 
90750
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90751
 
 
90752
#line 90753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90753
 
 
90754
  typedef typename JoinPoint::That __JP_That;
 
90755
  typedef typename JoinPoint::Target __JP_Target;
 
90756
  typedef typename JoinPoint::Result __JP_Result;
 
90757
 
 
90758
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90759
 
 
90760
    if (match_expr &&
 
90761
        thisJoinPoint->that ()->parse (&__JP_That
 
90762
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90763
::wildcards)) 
 
90764
      *(Puma::CTree**)thisJoinPoint->result () = 
 
90765
        thisJoinPoint->that ()->builder ().get_node (); 
 
90766
    else 
 
90767
      thisJoinPoint->action ().trigger (); 
 
90768
  }
 
90769
#line 90770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90770
 
 
90771
protected:
 
90772
 
 
90773
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90774
 
 
90775
 
 
90776
  // extend the syntax to parse ANYs
 
90777
 
 
90778
  
 
90779
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90780
 
 
90781
public: template<class JoinPoint> void __a1_around 
 
90782
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90783
 
 
90784
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90785
(JoinPoint *tjp)
 
90786
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90787
 {
 
90788
#line 90789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90789
 
 
90790
  JoinPoint *&thisJoinPoint = tjp;
 
90791
 
 
90792
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90793
 
 
90794
#line 90795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90795
 
 
90796
  typedef typename JoinPoint::That __JP_That;
 
90797
  typedef typename JoinPoint::Target __JP_Target;
 
90798
  typedef typename JoinPoint::Result __JP_Result;
 
90799
 
 
90800
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90801
 
 
90802
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_EXPR)) {
 
90803
      thisJoinPoint->that ()->parse (&__JP_That
 
90804
#line 103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90805
::wc_extension); 
 
90806
      *(Puma::CTree**)thisJoinPoint->result () = 
 
90807
        thisJoinPoint->that ()->builder ().any (); 
 
90808
    } else 
 
90809
      thisJoinPoint->action ().trigger (); 
 
90810
  }
 
90811
#line 90812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90812
 
 
90813
protected:
 
90814
 
 
90815
#line 108 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90816
 
 
90817
 
 
90818
  
 
90819
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90820
 
 
90821
public: template<class JoinPoint> void __a2_around 
 
90822
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90823
 
 
90824
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90825
(JoinPoint *tjp)
 
90826
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90827
 {
 
90828
#line 90829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90829
 
 
90830
  JoinPoint *&thisJoinPoint = tjp;
 
90831
 
 
90832
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90833
 
 
90834
#line 90835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90835
 
 
90836
  typedef typename JoinPoint::That __JP_That;
 
90837
  typedef typename JoinPoint::Target __JP_Target;
 
90838
  typedef typename JoinPoint::Result __JP_Result;
 
90839
 
 
90840
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90841
 
 
90842
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_EXPR_LIST)) {
 
90843
      thisJoinPoint->that ()->parse (&__JP_That
 
90844
#line 113 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90845
::wc_extension); 
 
90846
      *(Puma::CTree**)thisJoinPoint->result () = 
 
90847
        thisJoinPoint->that ()->builder ().any_list (); 
 
90848
    } else 
 
90849
      thisJoinPoint->action ().trigger (); 
 
90850
  }
 
90851
#line 90852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90852
 
 
90853
protected:
 
90854
 
 
90855
#line 118 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90856
 
 
90857
 
 
90858
  
 
90859
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90860
 
 
90861
public: template<class JoinPoint> void __a3_around 
 
90862
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90863
 
 
90864
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90865
(JoinPoint *tjp)
 
90866
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90867
 {
 
90868
#line 90869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90869
 
 
90870
  JoinPoint *&thisJoinPoint = tjp;
 
90871
 
 
90872
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90873
 
 
90874
#line 90875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90875
 
 
90876
  typedef typename JoinPoint::That __JP_That;
 
90877
  typedef typename JoinPoint::Target __JP_Target;
 
90878
  typedef typename JoinPoint::Result __JP_Result;
 
90879
 
 
90880
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90881
 
 
90882
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_ID_EXPR)) {
 
90883
      thisJoinPoint->that ()->parse (&__JP_That
 
90884
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90885
::wc_extension); 
 
90886
      *(Puma::CTree**)thisJoinPoint->result () = 
 
90887
        thisJoinPoint->that ()->builder ().any (); 
 
90888
    } else 
 
90889
      thisJoinPoint->action ().trigger (); 
 
90890
  }
 
90891
#line 90892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90892
 
 
90893
protected:
 
90894
 
 
90895
#line 128 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90896
 
 
90897
 
 
90898
  
 
90899
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90900
 
 
90901
public: template<class JoinPoint> void __a4_around 
 
90902
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90903
 
 
90904
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90905
(JoinPoint *tjp)
 
90906
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90907
 {
 
90908
#line 90909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90909
 
 
90910
  JoinPoint *&thisJoinPoint = tjp;
 
90911
 
 
90912
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90913
 
 
90914
#line 90915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90915
 
 
90916
  typedef typename JoinPoint::That __JP_That;
 
90917
  typedef typename JoinPoint::Target __JP_Target;
 
90918
  typedef typename JoinPoint::Result __JP_Result;
 
90919
 
 
90920
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90921
 
 
90922
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_IDENTIFIER)) {
 
90923
      thisJoinPoint->that ()->parse (&__JP_That
 
90924
#line 133 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90925
::wc_extension); 
 
90926
      *(Puma::CTree**)thisJoinPoint->result () = 
 
90927
        thisJoinPoint->that ()->builder ().any (); 
 
90928
    } else 
 
90929
      thisJoinPoint->action ().trigger (); 
 
90930
  }
 
90931
#line 90932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90932
 
 
90933
protected:
 
90934
 
 
90935
#line 138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90936
 
 
90937
 
 
90938
  
 
90939
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90940
 
 
90941
public: template<class JoinPoint> void __a5_after 
 
90942
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90943
 
 
90944
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90945
(JoinPoint *tjp)
 
90946
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90947
 {
 
90948
#line 90949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90949
 
 
90950
  typedef typename JoinPoint::That __JP_That;
 
90951
  typedef typename JoinPoint::Target __JP_Target;
 
90952
  typedef typename JoinPoint::Result __JP_Result;
 
90953
 
 
90954
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90955
 
 
90956
      tjp->that ()->_decl_spec_1.set (Puma::TOK_ANY_DECL_SPEC);
 
90957
  }
 
90958
#line 90959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90959
 
 
90960
protected:
 
90961
 
 
90962
#line 143 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90963
 
 
90964
  
 
90965
  
 
90966
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90967
 
 
90968
public: template<class JoinPoint> void __a6_after 
 
90969
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90970
 
 
90971
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90972
(JoinPoint *tjp)
 
90973
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90974
 {
 
90975
#line 90976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90976
 
 
90977
  typedef typename JoinPoint::That __JP_That;
 
90978
  typedef typename JoinPoint::Target __JP_Target;
 
90979
  typedef typename JoinPoint::Result __JP_Result;
 
90980
 
 
90981
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90982
 
 
90983
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
90984
    if (match_expr && !result &&
 
90985
        tjp->that ()->parse (Puma::TOK_ANY_DECL_SPEC) &&
 
90986
        tjp->that ()->parse (&__JP_That
 
90987
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90988
::wc_extension)) {
 
90989
      result = tjp->that ()->builder().any ();
 
90990
    }
 
90991
  }
 
90992
#line 90993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
90993
 
 
90994
protected:
 
90995
 
 
90996
#line 153 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
90997
 
 
90998
 
 
90999
  
 
91000
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91001
 
 
91002
public: template<class JoinPoint> void __a7_around 
 
91003
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91004
 
 
91005
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91006
(JoinPoint *tjp)
 
91007
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91008
 {
 
91009
#line 91010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91010
 
 
91011
  JoinPoint *&thisJoinPoint = tjp;
 
91012
 
 
91013
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91014
 
 
91015
#line 91016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91016
 
 
91017
  typedef typename JoinPoint::That __JP_That;
 
91018
  typedef typename JoinPoint::Target __JP_Target;
 
91019
  typedef typename JoinPoint::Result __JP_Result;
 
91020
 
 
91021
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91022
 
 
91023
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_DECL_SPEC_SEQ)) {
 
91024
      thisJoinPoint->that ()->parse (&__JP_That
 
91025
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91026
::wc_extension); 
 
91027
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91028
        thisJoinPoint->that ()->builder ().any_list (); 
 
91029
    } else 
 
91030
      thisJoinPoint->action ().trigger (); 
 
91031
  }
 
91032
#line 91033 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91033
 
 
91034
protected:
 
91035
 
 
91036
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91037
 
 
91038
 
 
91039
  
 
91040
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91041
 
 
91042
public: template<class JoinPoint> void __a8_around 
 
91043
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91044
 
 
91045
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91046
(JoinPoint *tjp)
 
91047
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91048
 {
 
91049
#line 91050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91050
 
 
91051
  JoinPoint *&thisJoinPoint = tjp;
 
91052
 
 
91053
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91054
 
 
91055
#line 91056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91056
 
 
91057
  typedef typename JoinPoint::That __JP_That;
 
91058
  typedef typename JoinPoint::Target __JP_Target;
 
91059
  typedef typename JoinPoint::Result __JP_Result;
 
91060
 
 
91061
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91062
 
 
91063
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT_DECLARATOR_LIST)) {
 
91064
      thisJoinPoint->that ()->parse (&__JP_That
 
91065
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91066
::wc_extension); 
 
91067
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91068
        thisJoinPoint->that ()->builder ().any_list (); 
 
91069
    } else 
 
91070
      thisJoinPoint->action ().trigger (); 
 
91071
  }
 
91072
#line 91073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91073
 
 
91074
protected:
 
91075
 
 
91076
#line 173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91077
 
 
91078
 
 
91079
  
 
91080
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91081
 
 
91082
public: template<class JoinPoint> void __a9_around 
 
91083
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91084
 
 
91085
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91086
(JoinPoint *tjp)
 
91087
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91088
 {
 
91089
#line 91090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91090
 
 
91091
  JoinPoint *&thisJoinPoint = tjp;
 
91092
 
 
91093
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91094
 
 
91095
#line 91096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91096
 
 
91097
  typedef typename JoinPoint::That __JP_That;
 
91098
  typedef typename JoinPoint::Target __JP_Target;
 
91099
  typedef typename JoinPoint::Result __JP_Result;
 
91100
 
 
91101
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91102
 
 
91103
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT_DECLARATOR)) {
 
91104
      thisJoinPoint->that ()->parse (&__JP_That
 
91105
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91106
::wc_extension); 
 
91107
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91108
        thisJoinPoint->that ()->builder ().any (); 
 
91109
    } else 
 
91110
      thisJoinPoint->action ().trigger (); 
 
91111
  }
 
91112
#line 91113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91113
 
 
91114
protected:
 
91115
 
 
91116
#line 183 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91117
 
 
91118
 
 
91119
  
 
91120
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91121
 
 
91122
public: template<class JoinPoint> void __a10_around 
 
91123
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91124
 
 
91125
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91126
(JoinPoint *tjp)
 
91127
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91128
 {
 
91129
#line 91130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91130
 
 
91131
  JoinPoint *&thisJoinPoint = tjp;
 
91132
 
 
91133
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91134
 
 
91135
#line 91136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91136
 
 
91137
  typedef typename JoinPoint::That __JP_That;
 
91138
  typedef typename JoinPoint::Target __JP_Target;
 
91139
  typedef typename JoinPoint::Result __JP_Result;
 
91140
 
 
91141
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91142
 
 
91143
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_DECLARATOR)) {
 
91144
      thisJoinPoint->that ()->parse (&__JP_That
 
91145
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91146
::wc_extension); 
 
91147
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91148
        thisJoinPoint->that ()->builder ().any (); 
 
91149
    } else 
 
91150
      thisJoinPoint->action ().trigger (); 
 
91151
  }
 
91152
#line 91153 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91153
 
 
91154
protected:
 
91155
 
 
91156
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91157
 
 
91158
 
 
91159
  
 
91160
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91161
 
 
91162
public: template<class JoinPoint> void __a11_around 
 
91163
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91164
 
 
91165
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91166
(JoinPoint *tjp)
 
91167
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91168
 {
 
91169
#line 91170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91170
 
 
91171
  JoinPoint *&thisJoinPoint = tjp;
 
91172
 
 
91173
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91174
 
 
91175
#line 91176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91176
 
 
91177
  typedef typename JoinPoint::That __JP_That;
 
91178
  typedef typename JoinPoint::Target __JP_Target;
 
91179
  typedef typename JoinPoint::Result __JP_Result;
 
91180
 
 
91181
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91182
 
 
91183
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT)) {
 
91184
      thisJoinPoint->that ()->parse (&__JP_That
 
91185
#line 198 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91186
::wc_extension); 
 
91187
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91188
        thisJoinPoint->that ()->builder ().any (); 
 
91189
    } else 
 
91190
      thisJoinPoint->action ().trigger (); 
 
91191
  }
 
91192
#line 91193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91193
 
 
91194
protected:
 
91195
 
 
91196
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91197
 
 
91198
 
 
91199
  
 
91200
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91201
 
 
91202
public: template<class JoinPoint> void __a12_around 
 
91203
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91204
 
 
91205
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91206
(JoinPoint *tjp)
 
91207
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91208
 {
 
91209
#line 91210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91210
 
 
91211
  JoinPoint *&thisJoinPoint = tjp;
 
91212
 
 
91213
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91214
 
 
91215
#line 91216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91216
 
 
91217
  typedef typename JoinPoint::That __JP_That;
 
91218
  typedef typename JoinPoint::Target __JP_Target;
 
91219
  typedef typename JoinPoint::Result __JP_Result;
 
91220
 
 
91221
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91222
 
 
91223
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_ARG_DECL_SEQ)) {
 
91224
      thisJoinPoint->that ()->parse (&__JP_That
 
91225
#line 208 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91226
::wc_extension); 
 
91227
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91228
        thisJoinPoint->that ()->builder ().any_list (); 
 
91229
    } else 
 
91230
      thisJoinPoint->action ().trigger (); 
 
91231
  }
 
91232
#line 91233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91233
 
 
91234
protected:
 
91235
 
 
91236
#line 213 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91237
 
 
91238
 
 
91239
  
 
91240
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91241
 
 
91242
public: template<class JoinPoint> void __a13_around 
 
91243
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91244
 
 
91245
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91246
(JoinPoint *tjp)
 
91247
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91248
 {
 
91249
#line 91250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91250
 
 
91251
  JoinPoint *&thisJoinPoint = tjp;
 
91252
 
 
91253
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91254
 
 
91255
#line 91256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91256
 
 
91257
  typedef typename JoinPoint::That __JP_That;
 
91258
  typedef typename JoinPoint::Target __JP_Target;
 
91259
  typedef typename JoinPoint::Result __JP_Result;
 
91260
 
 
91261
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91262
 
 
91263
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_FCT_BODY)) {
 
91264
      thisJoinPoint->that ()->parse (&__JP_That
 
91265
#line 218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91266
::wc_extension); 
 
91267
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91268
        thisJoinPoint->that ()->builder ().any (); 
 
91269
    } else 
 
91270
      thisJoinPoint->action ().trigger (); 
 
91271
  }
 
91272
#line 91273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91273
 
 
91274
protected:
 
91275
 
 
91276
#line 223 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91277
 
 
91278
 
 
91279
  
 
91280
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91281
 
 
91282
public: template<class JoinPoint> void __a14_around 
 
91283
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91284
 
 
91285
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91286
(JoinPoint *tjp)
 
91287
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91288
 {
 
91289
#line 91290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91290
 
 
91291
  JoinPoint *&thisJoinPoint = tjp;
 
91292
 
 
91293
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91294
 
 
91295
#line 91296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91296
 
 
91297
  typedef typename JoinPoint::That __JP_That;
 
91298
  typedef typename JoinPoint::Target __JP_Target;
 
91299
  typedef typename JoinPoint::Result __JP_Result;
 
91300
 
 
91301
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91302
 
 
91303
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_CLASS_SPEC)) {
 
91304
      thisJoinPoint->that ()->parse (&__JP_That
 
91305
#line 228 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91306
::wc_extension); 
 
91307
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91308
        thisJoinPoint->that ()->builder ().any (); 
 
91309
    } else 
 
91310
      thisJoinPoint->action ().trigger (); 
 
91311
  }
 
91312
#line 91313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91313
 
 
91314
protected:
 
91315
 
 
91316
#line 233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91317
 
 
91318
 
 
91319
  
 
91320
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91321
 
 
91322
public: template<class JoinPoint> void __a15_around 
 
91323
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91324
 
 
91325
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91326
(JoinPoint *tjp)
 
91327
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91328
 {
 
91329
#line 91330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91330
 
 
91331
  JoinPoint *&thisJoinPoint = tjp;
 
91332
 
 
91333
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91334
 
 
91335
#line 91336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91336
 
 
91337
  typedef typename JoinPoint::That __JP_That;
 
91338
  typedef typename JoinPoint::Target __JP_Target;
 
91339
  typedef typename JoinPoint::Result __JP_Result;
 
91340
 
 
91341
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91342
 
 
91343
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEMBER_SPEC)) {
 
91344
      thisJoinPoint->that ()->parse (&__JP_That
 
91345
#line 238 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91346
::wc_extension); 
 
91347
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91348
        thisJoinPoint->that ()->builder ().any_list (); 
 
91349
    } else 
 
91350
      thisJoinPoint->action ().trigger (); 
 
91351
  }
 
91352
#line 91353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91353
 
 
91354
protected:
 
91355
 
 
91356
#line 243 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91357
 
 
91358
 
 
91359
  
 
91360
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91361
 
 
91362
public: template<class JoinPoint> void __a16_around 
 
91363
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91364
 
 
91365
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91366
(JoinPoint *tjp)
 
91367
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91368
 {
 
91369
#line 91370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91370
 
 
91371
  JoinPoint *&thisJoinPoint = tjp;
 
91372
 
 
91373
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91374
 
 
91375
#line 91376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91376
 
 
91377
  typedef typename JoinPoint::That __JP_That;
 
91378
  typedef typename JoinPoint::Target __JP_Target;
 
91379
  typedef typename JoinPoint::Result __JP_Result;
 
91380
 
 
91381
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91382
 
 
91383
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEMBER_DECL)) {
 
91384
      thisJoinPoint->that ()->parse (&__JP_That
 
91385
#line 248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91386
::wc_extension); 
 
91387
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91388
        thisJoinPoint->that ()->builder ().any (); 
 
91389
    } else 
 
91390
      thisJoinPoint->action ().trigger (); 
 
91391
  }
 
91392
#line 91393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91393
 
 
91394
protected:
 
91395
 
 
91396
#line 253 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91397
 
 
91398
 
 
91399
  
 
91400
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91401
 
 
91402
public: template<class JoinPoint> void __a17_around 
 
91403
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91404
 
 
91405
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91406
(JoinPoint *tjp)
 
91407
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91408
 {
 
91409
#line 91410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91410
 
 
91411
  JoinPoint *&thisJoinPoint = tjp;
 
91412
 
 
91413
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91414
 
 
91415
#line 91416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91416
 
 
91417
  typedef typename JoinPoint::That __JP_That;
 
91418
  typedef typename JoinPoint::Target __JP_Target;
 
91419
  typedef typename JoinPoint::Result __JP_Result;
 
91420
 
 
91421
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91422
 
 
91423
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_STMT)) {
 
91424
      thisJoinPoint->that ()->parse (&__JP_That
 
91425
#line 258 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91426
::wc_extension); 
 
91427
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91428
        thisJoinPoint->that ()->builder ().any (); 
 
91429
    } else 
 
91430
      thisJoinPoint->action ().trigger (); 
 
91431
  }
 
91432
#line 91433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91433
 
 
91434
protected:
 
91435
 
 
91436
#line 263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91437
 
 
91438
 
 
91439
  
 
91440
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91441
 
 
91442
public: template<class JoinPoint> void __a18_around 
 
91443
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91444
 
 
91445
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91446
(JoinPoint *tjp)
 
91447
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91448
 {
 
91449
#line 91450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91450
 
 
91451
  JoinPoint *&thisJoinPoint = tjp;
 
91452
 
 
91453
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91454
 
 
91455
#line 91456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91456
 
 
91457
  typedef typename JoinPoint::That __JP_That;
 
91458
  typedef typename JoinPoint::Target __JP_Target;
 
91459
  typedef typename JoinPoint::Result __JP_Result;
 
91460
 
 
91461
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91462
 
 
91463
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_STMT_SEQ)) {
 
91464
      thisJoinPoint->that ()->parse (&__JP_That
 
91465
#line 268 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91466
::wc_extension); 
 
91467
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91468
        thisJoinPoint->that ()->builder ().any_list (); 
 
91469
    } else 
 
91470
      thisJoinPoint->action ().trigger (); 
 
91471
  }
 
91472
#line 91473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91473
 
 
91474
protected:
 
91475
 
 
91476
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91477
 
 
91478
 
 
91479
  
 
91480
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91481
 
 
91482
public: template<class JoinPoint> void __a19_around 
 
91483
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91484
 
 
91485
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91486
(JoinPoint *tjp)
 
91487
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91488
 {
 
91489
#line 91490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91490
 
 
91491
  JoinPoint *&thisJoinPoint = tjp;
 
91492
 
 
91493
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91494
 
 
91495
#line 91496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91496
 
 
91497
  typedef typename JoinPoint::That __JP_That;
 
91498
  typedef typename JoinPoint::Target __JP_Target;
 
91499
  typedef typename JoinPoint::Result __JP_Result;
 
91500
 
 
91501
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91502
 
 
91503
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_BASE_CLAUSE)) {
 
91504
      thisJoinPoint->that ()->parse (&__JP_That
 
91505
#line 278 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91506
::wc_extension); 
 
91507
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91508
        thisJoinPoint->that ()->builder ().any_list (); 
 
91509
    } else 
 
91510
      thisJoinPoint->action ().trigger (); 
 
91511
  }
 
91512
#line 91513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91513
 
 
91514
protected:
 
91515
 
 
91516
#line 283 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91517
 
 
91518
 
 
91519
  
 
91520
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91521
 
 
91522
public: template<class JoinPoint> void __a20_around 
 
91523
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91524
 
 
91525
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91526
(JoinPoint *tjp)
 
91527
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91528
 {
 
91529
#line 91530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91530
 
 
91531
  JoinPoint *&thisJoinPoint = tjp;
 
91532
 
 
91533
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91534
 
 
91535
#line 91536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91536
 
 
91537
  typedef typename JoinPoint::That __JP_That;
 
91538
  typedef typename JoinPoint::Target __JP_Target;
 
91539
  typedef typename JoinPoint::Result __JP_Result;
 
91540
 
 
91541
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91542
 
 
91543
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_CTOR_INIT)) {
 
91544
      thisJoinPoint->that ()->parse (&__JP_That
 
91545
#line 288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91546
::wc_extension); 
 
91547
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91548
        thisJoinPoint->that ()->builder ().any (); 
 
91549
    } else 
 
91550
      thisJoinPoint->action ().trigger (); 
 
91551
  }
 
91552
#line 91553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91553
 
 
91554
protected:
 
91555
 
 
91556
#line 293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91557
 
 
91558
 
 
91559
  
 
91560
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91561
 
 
91562
public: template<class JoinPoint> void __a21_around 
 
91563
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91564
 
 
91565
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91566
(JoinPoint *tjp)
 
91567
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91568
 {
 
91569
#line 91570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91570
 
 
91571
  JoinPoint *&thisJoinPoint = tjp;
 
91572
 
 
91573
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91574
 
 
91575
#line 91576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91576
 
 
91577
  typedef typename JoinPoint::That __JP_That;
 
91578
  typedef typename JoinPoint::Target __JP_Target;
 
91579
  typedef typename JoinPoint::Result __JP_Result;
 
91580
 
 
91581
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91582
 
 
91583
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEM_INIT)) {
 
91584
      thisJoinPoint->that ()->parse (&__JP_That
 
91585
#line 298 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91586
::wc_extension); 
 
91587
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91588
        thisJoinPoint->that ()->builder ().any (); 
 
91589
    } else 
 
91590
      thisJoinPoint->action ().trigger (); 
 
91591
  }
 
91592
#line 91593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91593
 
 
91594
protected:
 
91595
 
 
91596
#line 303 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91597
 
 
91598
 
 
91599
  // extend the syntax to be able to parse match trees
 
91600
 
 
91601
  
 
91602
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91603
 
 
91604
public: template<class JoinPoint> void __a22_around 
 
91605
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91606
 
 
91607
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91608
(JoinPoint *tjp)
 
91609
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91610
 {
 
91611
#line 91612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91612
 
 
91613
  JoinPoint *&thisJoinPoint = tjp;
 
91614
 
 
91615
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91616
 
 
91617
#line 91618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91618
 
 
91619
  typedef typename JoinPoint::That __JP_That;
 
91620
  typedef typename JoinPoint::Target __JP_Target;
 
91621
  typedef typename JoinPoint::Result __JP_Result;
 
91622
 
 
91623
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91624
 
 
91625
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_TYPEDEF)) {
 
91626
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91627
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
91628
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
91629
    } else 
 
91630
      thisJoinPoint->action ().trigger (); 
 
91631
  }
 
91632
#line 91633 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91633
 
 
91634
protected:
 
91635
 
 
91636
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91637
 
 
91638
 
 
91639
  
 
91640
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91641
 
 
91642
public: template<class JoinPoint> void __a23_around 
 
91643
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91644
 
 
91645
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91646
(JoinPoint *tjp)
 
91647
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91648
 {
 
91649
#line 91650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91650
 
 
91651
  JoinPoint *&thisJoinPoint = tjp;
 
91652
 
 
91653
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91654
 
 
91655
#line 91656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91656
 
 
91657
  typedef typename JoinPoint::That __JP_That;
 
91658
  typedef typename JoinPoint::Target __JP_Target;
 
91659
  typedef typename JoinPoint::Result __JP_Result;
 
91660
 
 
91661
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91662
 
 
91663
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_CLASS)) {
 
91664
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91665
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
91666
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
91667
    } else 
 
91668
      thisJoinPoint->action ().trigger (); 
 
91669
  }
 
91670
#line 91671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91671
 
 
91672
protected:
 
91673
 
 
91674
#line 325 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91675
 
 
91676
 
 
91677
  
 
91678
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91679
 
 
91680
public: template<class JoinPoint> void __a24_around 
 
91681
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91682
 
 
91683
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91684
(JoinPoint *tjp)
 
91685
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91686
 {
 
91687
#line 91688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91688
 
 
91689
  JoinPoint *&thisJoinPoint = tjp;
 
91690
 
 
91691
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91692
 
 
91693
#line 91694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91694
 
 
91695
  typedef typename JoinPoint::That __JP_That;
 
91696
  typedef typename JoinPoint::Target __JP_Target;
 
91697
  typedef typename JoinPoint::Result __JP_Result;
 
91698
 
 
91699
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91700
 
 
91701
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_ENUM)) {
 
91702
      *(Puma::CTree**)thisJoinPoint->result () = 
 
91703
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
91704
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
91705
    } else 
 
91706
      thisJoinPoint->action ().trigger (); 
 
91707
  }
 
91708
#line 91709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91709
 
 
91710
protected:
 
91711
 
 
91712
#line 335 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91713
 
 
91714
 
 
91715
  // configure parsing match expressions
 
91716
  
 
91717
  
 
91718
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91719
 
 
91720
public: void __a25_before 
 
91721
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91722
 
 
91723
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91724
(Puma::Config &config)
 
91725
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91726
 {
 
91727
    match_expr = (config.Option ("--match-expr"));
 
91728
  }
 
91729
#line 91730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91730
 
 
91731
protected:
 
91732
 
 
91733
#line 342 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91734
 
 
91735
};
 
91736
#line 91737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Syntax.cc"
 
91737
 
 
91738
namespace AC {
 
91739
  template <class JoinPoint>
 
91740
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp) {
 
91741
    ::CMatchSyntax::aspectof()->__a0_around (tjp);
 
91742
  }
 
91743
  template <class JoinPoint>
 
91744
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp) {
 
91745
    ::CMatchSyntax::aspectof()->__a1_around (tjp);
 
91746
  }
 
91747
  template <class JoinPoint>
 
91748
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp) {
 
91749
    ::CMatchSyntax::aspectof()->__a2_around (tjp);
 
91750
  }
 
91751
  template <class JoinPoint>
 
91752
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp) {
 
91753
    ::CMatchSyntax::aspectof()->__a3_around (tjp);
 
91754
  }
 
91755
  template <class JoinPoint>
 
91756
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp) {
 
91757
    ::CMatchSyntax::aspectof()->__a4_around (tjp);
 
91758
  }
 
91759
  template <class JoinPoint>
 
91760
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp) {
 
91761
    ::CMatchSyntax::aspectof()->__a5_after (tjp);
 
91762
  }
 
91763
  template <class JoinPoint>
 
91764
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp) {
 
91765
    ::CMatchSyntax::aspectof()->__a6_after (tjp);
 
91766
  }
 
91767
  template <class JoinPoint>
 
91768
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp) {
 
91769
    ::CMatchSyntax::aspectof()->__a7_around (tjp);
 
91770
  }
 
91771
  template <class JoinPoint>
 
91772
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp) {
 
91773
    ::CMatchSyntax::aspectof()->__a8_around (tjp);
 
91774
  }
 
91775
  template <class JoinPoint>
 
91776
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp) {
 
91777
    ::CMatchSyntax::aspectof()->__a9_around (tjp);
 
91778
  }
 
91779
  template <class JoinPoint>
 
91780
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp) {
 
91781
    ::CMatchSyntax::aspectof()->__a10_around (tjp);
 
91782
  }
 
91783
  template <class JoinPoint>
 
91784
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp) {
 
91785
    ::CMatchSyntax::aspectof()->__a11_around (tjp);
 
91786
  }
 
91787
  template <class JoinPoint>
 
91788
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp) {
 
91789
    ::CMatchSyntax::aspectof()->__a12_around (tjp);
 
91790
  }
 
91791
  template <class JoinPoint>
 
91792
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp) {
 
91793
    ::CMatchSyntax::aspectof()->__a13_around (tjp);
 
91794
  }
 
91795
  template <class JoinPoint>
 
91796
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp) {
 
91797
    ::CMatchSyntax::aspectof()->__a14_around (tjp);
 
91798
  }
 
91799
  template <class JoinPoint>
 
91800
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp) {
 
91801
    ::CMatchSyntax::aspectof()->__a15_around (tjp);
 
91802
  }
 
91803
  template <class JoinPoint>
 
91804
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp) {
 
91805
    ::CMatchSyntax::aspectof()->__a16_around (tjp);
 
91806
  }
 
91807
  template <class JoinPoint>
 
91808
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp) {
 
91809
    ::CMatchSyntax::aspectof()->__a17_around (tjp);
 
91810
  }
 
91811
  template <class JoinPoint>
 
91812
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp) {
 
91813
    ::CMatchSyntax::aspectof()->__a18_around (tjp);
 
91814
  }
 
91815
  template <class JoinPoint>
 
91816
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp) {
 
91817
    ::CMatchSyntax::aspectof()->__a19_around (tjp);
 
91818
  }
 
91819
  template <class JoinPoint>
 
91820
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp) {
 
91821
    ::CMatchSyntax::aspectof()->__a20_around (tjp);
 
91822
  }
 
91823
  template <class JoinPoint>
 
91824
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp) {
 
91825
    ::CMatchSyntax::aspectof()->__a21_around (tjp);
 
91826
  }
 
91827
  template <class JoinPoint>
 
91828
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp) {
 
91829
    ::CMatchSyntax::aspectof()->__a22_around (tjp);
 
91830
  }
 
91831
  template <class JoinPoint>
 
91832
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp) {
 
91833
    ::CMatchSyntax::aspectof()->__a23_around (tjp);
 
91834
  }
 
91835
  template <class JoinPoint>
 
91836
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp) {
 
91837
    ::CMatchSyntax::aspectof()->__a24_around (tjp);
 
91838
  }
 
91839
  template <class JoinPoint>
 
91840
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp) {
 
91841
    typedef typename JoinPoint::Binding_CMatchSyntax_CMatchSyntax_a25_before::template Arg<0> Arg0;
 
91842
    ::CMatchSyntax::aspectof()->__a25_before ((Puma::Config &)Arg0::val (tjp));
 
91843
  }
 
91844
 
91845
 
 
91846
#line 343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91847
 
 
91848
 
 
91849
// introduce wildcard rules to CSyntax
 
91850
 
 
91851
#line 356 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91852
 
 
91853
 
 
91854
// introduce wildcard rules to CCSyntax
 
91855
 
 
91856
#line 362 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91857
 
 
91858
 
 
91859
// extend CBuilder
 
91860
 
 
91861
#line 378 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91862
 
 
91863
 
 
91864
 
 
91865
#line 400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91866
 
 
91867
         
 
91868
 
 
91869
#line 414 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91870
 
 
91871
 
 
91872
 
 
91873
#line 420 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91874
 
 
91875
 
 
91876
 
 
91877
#line 426 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91878
 
 
91879
 
 
91880
 
 
91881
#line 432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91882
 
 
91883
 
 
91884
 
 
91885
#line 437 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91886
 
 
91887
 
 
91888
/*****************************************************************************/
 
91889
/*                                                                           */
 
91890
/*                              wildcard rules                               */
 
91891
/*                                                                           */
 
91892
/*****************************************************************************/
 
91893
 
 
91894
 
 
91895
#line 449 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91896
 
 
91897
 
 
91898
 
 
91899
#line 470 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91900
 
 
91901
 
 
91902
 
 
91903
#line 477 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91904
 
 
91905
 
 
91906
 
 
91907
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91908
 
 
91909
 
 
91910
 
 
91911
#line 487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91912
 
 
91913
 
 
91914
 
 
91915
#line 494 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91916
 
 
91917
 
 
91918
 
 
91919
#line 510 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91920
 
 
91921
            
 
91922
 
 
91923
#line 523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91924
 
 
91925
 
 
91926
 
 
91927
#line 532 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91928
 
 
91929
 
 
91930
 
 
91931
#line 540 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91932
 
 
91933
 
 
91934
 
 
91935
#line 550 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91936
 
 
91937
 
 
91938
 
 
91939
#line 563 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91940
 
 
91941
 
 
91942
 
 
91943
#line 569 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91944
 
 
91945
 
 
91946
 
 
91947
#line 575 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
91948
 
 
91949
 
 
91950
#endif /* __CMatchSyntax_ah__ */
 
91951
 
 
91952
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Syntax.cc"
 
91953
#endif
 
91954
#endif
 
91955
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
91956
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
91957
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
73637
91958
#include "ExtACBuilderH.ah"
73638
91959
#endif
73639
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__)
73640
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
91960
#endif
 
91961
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
91962
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
91963
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
73641
91964
#include "ExtACBuilderCC.ah"
73642
91965
#endif
73643
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__)
73644
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
91966
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
91967
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
91968
#include "ExtACTree.ah"
 
91969
#endif
 
91970
#endif
 
91971
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
91972
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
91973
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
73645
91974
#include "ExtACSyntaxH.ah"
73646
91975
#endif
73647
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__)
73648
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
91976
#endif
 
91977
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
91978
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
91979
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
73649
91980
#include "ExtACSyntaxCC.ah"
73650
91981
#endif
73651
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__)
73652
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
73653
 
 
73654
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
73655
 
#endif
73656
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__)
73657
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
73658
 
 
73659
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
73660
 
// This file is part of PUMA.
73661
 
// Copyright (C) 1999-2003  The PUMA developer team.
73662
 
//                                                                
73663
 
// This program is free software;  you can redistribute it and/or 
73664
 
// modify it under the terms of the GNU General Public License as 
73665
 
// published by the Free Software Foundation; either version 2 of 
73666
 
// the License, or (at your option) any later version.            
73667
 
//                                                                
73668
 
// This program is distributed in the hope that it will be useful,
73669
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
73670
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
73671
 
// GNU General Public License for more details.                   
73672
 
//                                                                
73673
 
// You should have received a copy of the GNU General Public      
73674
 
// License along with this program; if not, write to the Free     
73675
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
73676
 
// MA  02111-1307  USA                                            
73677
 
 
73678
 
#ifndef __ext_ac_keywords_ah__
73679
 
#define __ext_ac_keywords_ah__
73680
 
 
73681
 
 
73682
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
73683
 
 
73684
 
#line 73685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
73685
 
 
73686
 
#ifndef __ac_fwd_ExtACKeywords__
73687
 
#define __ac_fwd_ExtACKeywords__
73688
 
class ExtACKeywords;
73689
 
namespace AC {
73690
 
  template <class JoinPoint, class Binding>
73691
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
73692
 
  template <class JoinPoint, class Binding>
73693
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
73694
 
  template <class JoinPoint>
73695
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
73696
 
}
73697
 
#endif
73698
 
 
73699
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
73700
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
73701
 
#endif
73702
 
 
73703
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
73704
 
// This file is part of PUMA.
73705
 
// Copyright (C) 1999-2003  The PUMA developer team.
73706
 
//                                                                
73707
 
// This program is free software;  you can redistribute it and/or 
73708
 
// modify it under the terms of the GNU General Public License as 
73709
 
// published by the Free Software Foundation; either version 2 of 
73710
 
// the License, or (at your option) any later version.            
73711
 
//                                                                
73712
 
// This program is distributed in the hope that it will be useful,
73713
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
73714
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
73715
 
// GNU General Public License for more details.                   
73716
 
//                                                                
73717
 
// You should have received a copy of the GNU General Public      
73718
 
// License along with this program; if not, write to the Free     
73719
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
73720
 
// MA  02111-1307  USA                                            
73721
 
 
73722
 
#ifndef __CProject_h__
73723
 
#define __CProject_h__
73724
 
 
73725
 
// Special project derivation for C++ sources.
73726
 
 
73727
 
#include "Puma/Config.h"
73728
 
#include "Puma/Project.h"
73729
 
#include "Puma/CScanner.h"
73730
 
#include "Puma/ErrorStream.h"
73731
 
 
73732
 
namespace Puma {
73733
 
 
73734
 
 
73735
 
class Source;
73736
 
class CTypeInfo;
73737
 
 
73738
 
 
73739
 
#line 73740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
73740
 
} // closed Puma
73741
 
class WinIfExists;
73742
 
class WinImportHandler;
73743
 
class WinMacros;
73744
 
class CMatchSyntax;
73745
 
class ExtGnu;
73746
 
class ExtAC;
73747
 
class ExtACBuilderCoupling;
73748
 
class ExtACSyntaxCoupling;
73749
 
class ExtACTree;
73750
 
class ExtACKeywords;
73751
 
class WinAsm;
73752
 
class WinDeclSpecs;
73753
 
class WinMemberExplSpec;
73754
 
class WinTypeKeywords;
73755
 
class PragmaOnceUnitState;
73756
 
class PragmaOnce;
73757
 
class CCExprResolve;
73758
 
class CExprResolve;
73759
 
namespace Puma {
73760
 
 
73761
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
73762
 
class CProject : public Project {
73763
 
#line 73764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
73764
 
  friend class ::WinIfExists;
73765
 
  friend class ::WinImportHandler;
73766
 
  friend class ::WinMacros;
73767
 
  friend class ::CMatchSyntax;
73768
 
  friend class ::ExtGnu;
73769
 
  friend class ::ExtAC;
73770
 
  friend class ::ExtACBuilderCoupling;
73771
 
  friend class ::ExtACSyntaxCoupling;
73772
 
  friend class ::ExtACTree;
73773
 
  friend class ::ExtACKeywords;
73774
 
  friend class ::WinAsm;
73775
 
  friend class ::WinDeclSpecs;
73776
 
  friend class ::WinMemberExplSpec;
73777
 
  friend class ::WinTypeKeywords;
73778
 
  friend class ::PragmaOnceUnitState;
73779
 
  friend class ::PragmaOnce;
73780
 
  friend class ::CCExprResolve;
73781
 
  friend class ::CExprResolve;
73782
 
 
73783
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
73784
 
 
73785
 
  Config _config;
73786
 
  CScanner _scanner;
73787
 
 
73788
 
public:
73789
 
  CProject (ErrorStream &e);
73790
 
 
73791
 
  // Constructor: Add some source directories.
73792
 
  CProject (ErrorStream &, const char *defs, 
73793
 
               const char *decls = (const char*)0); 
73794
 
 
73795
 
  // Constructor: Setup preprocessor configuration according to
73796
 
  // command line parameter and the global config file and
73797
 
  // add some source directories.
73798
 
  CProject (ErrorStream &, int &argc, char **&argv, 
73799
 
            const char *defs = (const char*)0, 
73800
 
            const char *decls = (const char*)0);
73801
 
 
73802
 
public: // Project configuration 
73803
 
  // Get the preprocessor configuration.
73804
 
  Config &config ();
73805
 
 
73806
 
  // Configure the project from the command line or a file.
73807
 
  virtual void configure (Config &);
73808
 
 
73809
 
  // Add a new file to the project.
73810
 
  Unit *addFile (Filename file);
73811
 
 
73812
 
public: // Scanner interface
73813
 
  // Get the scanner.
73814
 
  CScanner &scanner ();
73815
 
 
73816
 
  // Scan the file `file' or the source if given. When
73817
 
  // scanning a source the resulting unit gets the name `file'.
73818
 
  
73819
 
#line 73820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
73820
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
73821
 
 
73822
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
73823
 
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
73824
 
                          bool isFile = true);
73825
 
        
73826
 
  // Scan a string. The resulting unit gets the name `name'.
73827
 
  // (and will not be registered at the unit manager!)
73828
 
  virtual Unit *scanString (const char *str, 
73829
 
                            const char *name = (const char*)0);
73830
 
 
73831
 
public: // Miscellaneous Functions
73832
 
 
73833
 
  // Give the filename needed to include a particular header file
73834
 
  Filename getInclString (Filename filename);
73835
 
 
73836
 
private:
73837
 
  // Map the type string from --size-type and --ptrdiff-type
73838
 
  // to real Puma type.
73839
 
  CTypeInfo *mapType (const char *) const;
73840
 
};
73841
 
 
73842
 
inline Config &CProject::config () 
73843
 
 { return _config; }
73844
 
inline CScanner &CProject::scanner () 
73845
 
 { return _scanner; }
73846
 
 
73847
 
 
73848
 
} // namespace Puma
73849
 
 
73850
 
#endif /* __CProject_h__ */
73851
 
 
73852
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
73853
 
// This file is part of PUMA.
73854
 
// Copyright (C) 1999-2003  The PUMA developer team.
73855
 
//                                                                
73856
 
// This program is free software;  you can redistribute it and/or 
73857
 
// modify it under the terms of the GNU General Public License as 
73858
 
// published by the Free Software Foundation; either version 2 of 
73859
 
// the License, or (at your option) any later version.            
73860
 
//                                                                
73861
 
// This program is distributed in the hope that it will be useful,
73862
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
73863
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
73864
 
// GNU General Public License for more details.                   
73865
 
//                                                                
73866
 
// You should have received a copy of the GNU General Public      
73867
 
// License along with this program; if not, write to the Free     
73868
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
73869
 
// MA  02111-1307  USA                                            
73870
 
 
73871
 
#ifndef __FileUnit__
73872
 
#define __FileUnit__
73873
 
 
73874
 
// Special Unit for files. Knows its last save location and the
73875
 
// absolute path of the corresponding file.
73876
 
 
73877
 
 
73878
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
73879
 
namespace Puma {
73880
 
 
73881
 
 
73882
 
class Project;
73883
 
 
73884
 
 
73885
 
#line 73886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
73886
 
} // closed Puma
73887
 
class WinIfExists;
73888
 
class WinImportHandler;
73889
 
class WinMacros;
73890
 
class CMatchSyntax;
73891
 
class ExtGnu;
73892
 
class ExtAC;
73893
 
class ExtACBuilderCoupling;
73894
 
class ExtACSyntaxCoupling;
73895
 
class ExtACTree;
73896
 
class ExtACKeywords;
73897
 
class WinAsm;
73898
 
class WinDeclSpecs;
73899
 
class WinMemberExplSpec;
73900
 
class WinTypeKeywords;
73901
 
class PragmaOnceUnitState;
73902
 
class PragmaOnce;
73903
 
class CCExprResolve;
73904
 
class CExprResolve;
73905
 
namespace Puma {
73906
 
 
73907
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
73908
 
class FileUnit : public Unit {
73909
 
#line 73910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
73910
 
  friend class ::WinIfExists;
73911
 
  friend class ::WinImportHandler;
73912
 
  friend class ::WinMacros;
73913
 
  friend class ::CMatchSyntax;
73914
 
  friend class ::ExtGnu;
73915
 
  friend class ::ExtAC;
73916
 
  friend class ::ExtACBuilderCoupling;
73917
 
  friend class ::ExtACSyntaxCoupling;
73918
 
  friend class ::ExtACTree;
73919
 
  friend class ::ExtACKeywords;
73920
 
  friend class ::WinAsm;
73921
 
  friend class ::WinDeclSpecs;
73922
 
  friend class ::WinMemberExplSpec;
73923
 
  friend class ::WinTypeKeywords;
73924
 
  friend class ::PragmaOnceUnitState;
73925
 
  friend class ::PragmaOnce;
73926
 
  friend class ::CCExprResolve;
73927
 
  friend class ::CExprResolve;
73928
 
 
73929
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
73930
 
 
73931
 
  char *_lastLocation; 
73932
 
  char *_absolutePath;
73933
 
  
73934
 
  Project *_project;
73935
 
  bool _isBelow;
73936
 
 
73937
 
public:
73938
 
  FileUnit ();
73939
 
  FileUnit (Unit &);
73940
 
  FileUnit (const List &);
73941
 
  virtual ~FileUnit ();
73942
 
            
73943
 
  virtual void name (const char *);        
73944
 
  void setLocation (const char *);    
73945
 
        
73946
 
  char *lastLocation () const;
73947
 
  char *absolutePath () const;
73948
 
  bool isFile () const;
73949
 
  
73950
 
  // Generates the absolute pathname to the file.
73951
 
  static char *absolutePath (const char *);
73952
 
  static char *resolvePath (const char *);
73953
 
  
73954
 
  // File belongs to given project?
73955
 
  bool belongsTo (Project &);
73956
 
};
73957
 
 
73958
 
inline FileUnit::FileUnit () : 
73959
 
  Unit (), 
73960
 
  _lastLocation ((char*)0), 
73961
 
  _absolutePath ((char*)0),
73962
 
  _project (0),
73963
 
  _isBelow (false)
73964
 
 {}
73965
 
inline FileUnit::FileUnit (Unit &unit) : 
73966
 
  Unit (unit), 
73967
 
  _lastLocation ((char*)0), 
73968
 
  _absolutePath ((char*)0),
73969
 
  _project (0),
73970
 
  _isBelow (false)
73971
 
 {}
73972
 
inline FileUnit::FileUnit (const List &list) : 
73973
 
  Unit (list), 
73974
 
  _lastLocation ((char*)0), 
73975
 
  _absolutePath ((char*)0),
73976
 
  _project (0),
73977
 
  _isBelow (false)  
73978
 
 {}
73979
 
inline FileUnit::~FileUnit () 
73980
 
 { if (_lastLocation) delete[] _lastLocation; 
73981
 
   if (_absolutePath) delete[] _absolutePath; }
73982
 
            
73983
 
inline char *FileUnit::lastLocation () const 
73984
 
 { return _lastLocation; }
73985
 
inline char *FileUnit::absolutePath () const 
73986
 
 { return _absolutePath; }
73987
 
inline bool FileUnit::isFile () const 
73988
 
 { return true; }
73989
 
 
73990
 
 
73991
 
} // namespace Puma
73992
 
 
73993
 
#endif /* __FileUnit__ */
73994
 
 
73995
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
73996
 
using namespace Puma;
73997
 
 
73998
 
// *****************************************
73999
 
// AspectC++ keyword handling in the scanner
74000
 
// *****************************************
74001
 
 
74002
 
#line 74003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
74003
 
class WinIfExists;
74004
 
class WinImportHandler;
74005
 
class WinMacros;
74006
 
class CMatchSyntax;
74007
 
class ExtGnu;
74008
 
class ExtAC;
74009
 
class ExtACBuilderCoupling;
74010
 
class ExtACSyntaxCoupling;
74011
 
class ExtACTree;
74012
 
class WinAsm;
74013
 
class WinDeclSpecs;
74014
 
class WinMemberExplSpec;
74015
 
class WinTypeKeywords;
74016
 
class PragmaOnceUnitState;
74017
 
class PragmaOnce;
74018
 
class CCExprResolve;
74019
 
class CExprResolve;
74020
 
 
74021
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74022
 
class ExtACKeywords {
74023
 
#line 74024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
74024
 
 
74025
 
public:
74026
 
  static ExtACKeywords *aspectof () {
74027
 
    static ExtACKeywords __instance;
74028
 
    return &__instance;
74029
 
  }
74030
 
  static ExtACKeywords *aspectOf () {
74031
 
    return aspectof ();
74032
 
  }
74033
 
private:
74034
 
 
74035
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74036
 
 
74037
 
#line 74038 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
74038
 
  friend class ::WinIfExists;
74039
 
  friend class ::WinImportHandler;
74040
 
  friend class ::WinMacros;
74041
 
  friend class ::CMatchSyntax;
74042
 
  friend class ::ExtGnu;
74043
 
  friend class ::ExtAC;
74044
 
  friend class ::ExtACBuilderCoupling;
74045
 
  friend class ::ExtACSyntaxCoupling;
74046
 
  friend class ::ExtACTree;
74047
 
  friend class ::WinAsm;
74048
 
  friend class ::WinDeclSpecs;
74049
 
  friend class ::WinMemberExplSpec;
74050
 
  friend class ::WinTypeKeywords;
74051
 
  friend class ::PragmaOnceUnitState;
74052
 
  friend class ::PragmaOnce;
74053
 
  friend class ::CCExprResolve;
74054
 
  friend class ::CExprResolve;
74055
 
 
74056
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74057
 
 
74058
 
 
74059
 
  bool _prj_keywords;
74060
 
  CProject *_project; // active project
74061
 
  
74062
 
protected:
74063
 
  ExtACKeywords () : _prj_keywords (false) {}
74064
 
public:
74065
 
  // allow/forbid AspectC++ keywords in normal project files
74066
 
  void prj_keywords (bool kw) { _prj_keywords = kw; }
74067
 
  
74068
 
  
74069
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74070
 
 
74071
 
public: void __a0_before 
74072
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74073
 
 
74074
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74075
 
(CProject &project)
74076
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74077
 
 {
74078
 
    _project = &project;
74079
 
  }
74080
 
  
74081
 
  
74082
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74083
 
 
74084
 
public: template<class JoinPoint> void __a1_before 
74085
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74086
 
 
74087
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74088
 
(JoinPoint *tjp, Unit &unit)
74089
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74090
 
 {
74091
 
#line 74092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
74092
 
 
74093
 
  typedef typename JoinPoint::That __JP_That;
74094
 
  typedef typename JoinPoint::Target __JP_Target;
74095
 
  typedef typename JoinPoint::Result __JP_Result;
74096
 
 
74097
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74098
 
 
74099
 
    if (!unit.isFile ())
74100
 
      return;
74101
 
      
74102
 
    bool ac_kw = _prj_keywords;
74103
 
    // in external files the AspectC++ keywords are always identifiers
74104
 
    if (!((FileUnit*)&unit)->belongsTo (*_project)) {
74105
 
      ac_kw = false;
74106
 
    }
74107
 
    // in aspect headers keywords are keywords
74108
 
    else if (unit.name () &&
74109
 
      strcmp (unit.name () + strlen (unit.name ()) - 3, ".ah") == 0) {
74110
 
      ac_kw = true;
74111
 
    }
74112
 
    // finally the right flag
74113
 
    tjp->that ()->allow_aspectc (ac_kw);
74114
 
  }
74115
 
  
74116
 
  
74117
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74118
 
 
74119
 
public: template<class JoinPoint> void __a2_before 
74120
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74121
 
 
74122
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74123
 
(JoinPoint *tjp)
74124
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74125
 
 {
74126
 
#line 74127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
74127
 
 
74128
 
  typedef typename JoinPoint::That __JP_That;
74129
 
  typedef typename JoinPoint::Target __JP_Target;
74130
 
  typedef typename JoinPoint::Result __JP_Result;
74131
 
 
74132
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74133
 
 
74134
 
    _project = tjp->that ();
74135
 
  }
74136
 
};
74137
 
#line 74138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Syntax.cc"
74138
 
 
74139
 
namespace AC {
74140
 
  template <class JoinPoint, class Binding>
74141
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
74142
 
    typedef typename Binding::template Arg<0> Arg0;
74143
 
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
74144
 
  }
74145
 
  template <class JoinPoint, class Binding>
74146
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
74147
 
    typedef typename Binding::template Arg<0> Arg0;
74148
 
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
74149
 
  }
74150
 
  template <class JoinPoint>
74151
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
74152
 
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
74153
 
  }
74154
 
74155
 
 
74156
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
74157
 
  
74158
 
 
74159
 
#endif /* __ext_ac_keywords_ah__ */
74160
 
 
74161
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
74162
 
#endif
74163
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
74164
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
74165
 
#include "TraceSyntax.ah"
74166
 
#endif
74167
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__)
74168
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
74169
 
#include "WinAsm.ah"
74170
 
#endif
74171
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
74172
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
74173
 
#include "WinDeclSpecs.ah"
74174
 
#endif
74175
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
74176
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
74177
 
#include "WinMemberExplSpec.ah"
74178
 
#endif
74179
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
74180
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
74181
 
#include "WinTypeKeywords.ah"
74182
 
#endif
74183
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
74184
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
74185
 
 
74186
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Syntax.cc"
74187
 
#endif
74188
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
74189
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
91982
#endif
 
91983
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
91984
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
91985
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
91986
#include "ExtACTree.ah"
 
91987
#endif
 
91988
#endif
 
91989
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
91990
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
91991
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
91992
#include "ExtACKeywords.ah"
 
91993
#endif
 
91994
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
91995
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
91996
#include "PragmaOnceUnitState.ah"
 
91997
#endif
 
91998
#endif
 
91999
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
92000
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
92001
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
92002
#include "ExtACTree.ah"
 
92003
#endif
 
92004
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
92005
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
92006
#include "ExtGnu.ah"
 
92007
#endif
 
92008
#endif
 
92009
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
92010
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
92011
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
92012
#include "ExtACTree.ah"
 
92013
#endif
 
92014
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
92015
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
92016
#include "ExtGnuCSemDeclSpecs.ah"
 
92017
#endif
 
92018
#endif
 
92019
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
92020
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
92021
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
92022
#include "PragmaOnceUnitState.ah"
 
92023
#endif
 
92024
#endif
 
92025
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
92026
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
92027
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
92028
#include "PragmaOnceUnitState.ah"
 
92029
#endif
 
92030
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
92031
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
74190
92032
#include "PragmaOnce.ah"
74191
92033
#endif
74192
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__)
74193
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
74194
 
#include "CCExprResolveH.ah"
74195
 
#endif
74196
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__)
74197
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
74198
 
#include "CCExprResolveCC.ah"
74199
 
#endif
74200
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__)
74201
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
74202
 
#include "CExprResolveH.ah"
74203
 
#endif
74204
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__)
74205
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
74206
 
#include "CExprResolveCC.ah"
74207
 
#endif
74208
 
/*** end of aspect includes ***/
74209
 
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
74210
 
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_Syntax_cc__
74211
 
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_Syntax_cc__
 
92034
#endif
 
92035
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
92036
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
92037
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
92038
#include "TraceSyntax.ah"
 
92039
#endif
 
92040
#endif
 
92041
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
92042
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
92043
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
92044
#include "CMatchSyntax.ah"
 
92045
#endif
 
92046
#endif
 
92047
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
92048
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_Syntax_cc__
 
92049
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_Syntax_cc__